Webshell通常指的是什么
一个叫“冰蝎”的通常加密流量Webshell样本,曾连续潜伏在某政务系统内网长达214天。通常安全团队每次排查,通常看到的通常都是正常的HTTPS加密会话——直到某次数据库异常慢查询,才顺藤摸瓜揪出藏在图片上传目录里的通常PHP文件。这就是通常Webshell的典型生存方式:它不是病毒,不是通常漏洞,而是通常攻击者留在服务器上的一扇“隐形后门”。
通俗点说,通常Webshell就是通常一段恶意代码,通常以asp、通常php、通常jsp这类网页脚本文件的通常形式存在。攻击者利用网站漏洞(比如文件上传过滤不严、通常SQL注入)把这段代码“塞”进服务器,通常之后只要在浏览器里访问这个文件,就能通过它远程操控整台服务器——像管理自己电脑一样执行命令、读写文件、拖走数据库,甚至把服务器变成肉鸡去攻击别人。因为代码藏在正常的web目录里,和普通网页文件混在一起,防火墙和日志系统很难把它和正常访问区分开。
我见过最讽刺的一个案例:某电商公司把Webshell伪装成“网站备案信息.txt”,文件名后缀改成了txt,但内容其实是PHP代码。服务器管理员巡查时看到txt文件就没细看,结果这个文件在服务器里躺了两年,期间攻击者通过它把用户支付信息打包走了三次。后来查日志发现,攻击者每次来都走同一个URL,访问频率很低,完全模拟真人浏览习惯。
为什么Webshell这么难防?关键在于它的“身份”太合法了。正常网站每天有成百上千个文件被读写,多一个几十KB的脚本文件根本不显眼。而且现在的Webshell都带流量加密功能,就像“冰蝎”那样,攻击者和服务器之间的通信内容用AES加密,安全设备看到的全是乱码,除非专门针对已知指纹做深度检测,否则很难触发告警。
检测Webshell有点像大海捞针,但也不是完全没有规律。有经验的安全工程师会盯着三个细节:一是文件修改时间,如果某个老目录突然冒出个新文件,尤其是带eval、base64_decode这类危险函数的,基本可以判定有问题;二是访问日志里的“怪异UA”——正常浏览器都会带完整的User-Agent头,而很多Webshell客户端为了省事,UA字段要么为空要么是一串随机字符;三是文件权限,正常网页文件很少需要执行权限,如果发现某个图片目录下的文件居然有0755权限,那就要警惕了。
说句掏心窝的话,Webshell清除不是最难的,难的是找出攻击者是怎么进来的。光删掉那个恶意文件等于没治本——对方能塞一次就能塞第二次。得顺着Webshell回溯入侵路径:是后台弱口令被爆破?还是某个老插件有未修补的漏洞?我见过不少企业,花大价钱买了WAF和EDR,结果因为运维人员偷懒,PHP版本停在5.6没升级,被CVE-2019-11043这个老漏洞打穿,攻击者上传Webshell时WAF居然放行了——因为规则库根本没更新。
最后说个实用建议:别迷信任何“一键查杀”工具。Webshell变种速度远超特征库更新速度,最靠谱的方法还是定期手工翻查web目录,重点关注那些名字带随机数字、双后缀(如.php.jpg)、或者藏在图片文件夹里的可执行文件。如果你所在的公司没有专职安全人员,至少做到每月把web目录打包下载到本地,用本地杀毒引擎扫一遍——虽然效果有限,但总比什么都不做强。
本文地址:http://www.79wt.cn/news/1582b1799824.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。