0x0 背景
由于参加最近特殊多人活动的原因,很多渗透攻击武器也进行了对应的更新。冰蝎出了3.0版本、甚至还有好几个beta版本;还朋友圈还出了一个据说比冰蝎3.0还厉害的神器”哥斯拉”全部类型的shell均过市面所有静态查杀、流量加密过市面全部流量waf、自带的插件是冰蝎、蚁剑不能比拟的;看名字就很厉害的样子,看描述更是功能强大 不禁内心一阵酸爽。
丰富了自己部分武器库之后很多白帽子喜悦之情溢于言表,身边很多小伙伴甚至都开始在本地开始测试了;几家欢喜几家愁,总一些人的快乐终究是建立在一些人的痛苦之上的,生活真的是残酷了;这个节骨点更新大家品大家细品,很多安全公司的小伙伴可能又得彻夜分析,楼下小超市的方便面又得卖断货。
0x1 技术背景
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后;Webshell的技术问题也是老生常谈了,各个论坛上面的安全技术分析还是比较丰富,大马小马一句话,菜刀冰蝎哥斯拉(还漏了蚁剑);从攻防角度来看在多数的攻击场景下按照killchain的思路与实际步骤来看,一次完成的webshell攻击基本上都绕不过以下4个阶段 主要可以分为:
- webshell制作(武器化WEAPONIZATION) 无论怎么样首先的生成一个webshell,很多webshell管理工具是配套使用的直接生成就好,或者自定义改改默认配置,常规的一句话notepad就可以搞定。生成出来只是具备了这个功能,不做一下免杀估计本地的随便一个杀毒软件直接就删除了,详细的免杀绕过后面再讨论。
- Weshell投递(交付DELIVERY) webshell的投递方式普遍以文件上传为主、主流的方式还包括一些文件写入、主动下载、命令执行写入等方式,花里胡哨的姿势很多。投递过程应该是整个过程中的最关键的部分也是难度最大的一部分,因为过程中会面临很多的对抗机制,往往需要结合具体场景多次尝试测试。
- webshell访问(利用EXPLOITATION) 将脚本上传到对应的服务器上面之后就进入了关键的一步:如何正确快速的访问到指定的webshell文件。
- webshell执行(ACTIONS ON OBJECTIVES ) 使用工具或者直接通过访问访问到对应的webshell执行,就可以随心所欲的操作受害者主机。包括不局限于执行系统命令、探测内网、读取敏感文件、反弹shell、添加用户、清理痕迹、横向移动等操作。
后续剖析讨论一下在每个阶段当中包含的一些攻击手法与常规的识别方法。
0x2 制作免杀
常规一句话直接用记事本就可以直接解决,简单的同时也非常容易被查杀,这一类木马的特征实在太明显了比如常见的eval() assert()之类的函数肯定是一抓一个准。传统的检测方式基于对webshell内容的检测里面最简单的就是字符匹配、正则匹配或者词袋模型 ,这种木马肯定是检测出率100%的。
此类检出场景最多出现在基于终端的文件检测比如大家熟知的D盾、安全狗等产品主要是从文件本身出发。还有另外一个场景就是目前出现最多的防火墙、UTM之类的产品虽然是网关类设备,大多数场景下也是根据内容进行识别检测的,所以本质上都没什么差异。
为了应对此类检