前言
webshell在应急中占了很大的比例,本篇文章就来看看当遇到webshell时如何进行应急响应。
Webshell通常指以JSP、ASP、PHP等网页脚本文件形式存在的一种服务器可执行文件,一般带有文件操作、命令执行功能,是一种网页后门。攻击者在入侵一个网站后,通常会将Webshell后门文件与网站服务器Web目录下正常的网页文件混在一起,使用浏览器或专用客户端进行连接,从而得到一个服务器操作环境,以达到控制网站服务器的目的。
造成webshell的原因
1)系统中存在任意文件上传
2)反序列化漏洞
3)命令执行
4)SQL注入
等等
webshell告警方式
1)HIDS(主要)
2)日志异常告警
3)流量检测设备
常规处置方式
在我们发现webshell的告警时,可以按照下面的步骤进行处理。
1)确认告警内容
根据告警内容,判断本次告警是否误报以及其影响范围。
判断的依据主要就是文件的内容。
2)确认入侵时间以及上传文件内容
通过在网站目录中发现的Webshell文件的创建时间,判断攻击者实施攻击的时间范围,以便后续依据此时间进行溯源分析、追踪攻击者的活动路径。
拿到上传的文件名,后续可根据该文件名查找攻击者的访问记录。
3)web日志分析
对访问网站的Web日志进行分析,重点关注已知的入侵时间前后的日志记录,从而寻找攻击者的攻击路径,以及所利用的漏洞。
根据文件名查找访问记录以及可疑的IP,在根据IP去查找其它的访问记录。
4)找到漏洞点
通过日志中发现的问题,针对攻击者活动路径,可排查网站中存在的漏洞,并进行分析。
5)漏洞复现
对已发现的漏洞进行漏洞复现,从而还原攻击者的活动路径。
6)漏洞修复
清除已发现的Webshell文件,并修复漏洞。为避免再次受到攻击,网站管理员应定期对网站服务器进行全面的安全检查,及时安装相关版本补丁,修复已存在的漏洞等。
常用webshell扫描工具
D盾
D盾是目前流行的Web查杀工具,使用方便,包含如下功能:
(1)Webshell查杀、可疑文件隔离;
(2)端口进程查看、base64解码,以及克隆用户检测等;
(3)文件监控。
河马Webshell查杀
河马Webshell查杀拥有海量Webshell样本和自主查杀技术,采用传统特征+云端大数据双引擎的查杀技术,支持多种操作系统。
火绒安全软件--木马病毒查杀工具
webshell应急常用命令
查找相关的文件
find ./ -name "*.php"|xargs grep "move_upload_file" 查找PHP中具有上传的文件
find /var/www/ -name "*.php" |xargs egrep 'assert|phpspy|eval' 查找具有命令执行的php文件
find /var/www -ctime 0 查找web目录下当天创建的所有文件
从日志中进行分析
一般可以从web访问日志中找到入侵的蛛丝马迹
查询某个IP访问了那些页面:grep ^111.111.111.111 log_file| awk '{print $1,$7}'
查询访问某个页面的IP:grep "878134c1.php" access_log | awk '{print $1}'|sort -n |uniq
查看当天有多少个IP访问:awk '{print $1}' access_log |sort|uniq -c|wc -l
查看某一个页面别访问的次数:grep "/index.php" log_file | wc -l
列出当天访问次数最多的IP:cut -d- -f 1 log_file|uniq -c | sort -rn | head -20
将某个IP访问的页面数进行从小到大排序:awk '{++S[$1]} END {for (a in S) print S[a],a}' access_log | sort -n
一次应急操作指南
在应急响应时,首先应判断系统是否存在植入Webshell的可能。根据事件发生的时间进行排查,对攻击路径进行溯源分析。如果网站被植入暗链或出现单击链接跳转到其他网站(如博彩网站、色情网站等)的情况,应首先排查网站首页相关js,查看是否被植入了恶意跳转的js。若网站首页被篡改或有其他被攻击的现象,则应根据网站程序信息,如程序目录、文件上传目录、war包部署目录,使用工具(如D盾)和搜索关键词(如eval、base64_decode、assert)方式,定位到Webshell文件并清除。然后根据日志进行溯源分析,同时除了进行Web应用层排查,还应对系统层进行全面排查,防止攻击者在获取Webshell后执行了其他的权限维持操作。可以从以下几个方向进行初步排查,分别包括Webshell排查、Web日志分析、系统排查、日志排查、网络流量排查。最后进行清除加固。
1)预判告警真实性
收到HIDS的告警,机器上存在webshell文件,应急人员应首先判断告警的真实性
打开该文件发现存在eval函数并执行了命令,判断是真实的后门告警
2)获取相关信息
从该告警中可以获取到的信息:
1)时间:2024-07-26 02:21:34
2)后门文件所在位置:/xxxxx/xx.php
3)web日志排查
接下来需要对web日志进行排查,以查找攻击路径及失陷愿意原因。
常见日志文件路径如下
首先根据文件名称进行查找相关的访问记录
find . *.log|xargs grep xx.php
在根据查找的IP排查相关的访问记录,看是否能找到相应的入侵点。
可以根据发现Webshell的时间、系统异常的时间或Webshell查杀工具定位到木马的时间对相关时间段日志进行分析。
最终发现了漏洞点,为系统内存在上传漏洞
4)系统排查
攻击者上传Webshell后,往往还会执行进一步的操作,如提权、添加用户、写入系统后门等,实现持久化驻留。因此,还需要对系统进行排查,主要排查内容如下。
(1)用户信息排查使用【cat/etc/passwd】命令,可查看系统用户信息,与管理员确认是否存在未知新增用户。发现未知admin用户,具备root权限,因此需要进行重点排查。
排查中需要关注UID为0的用户,因为在一般情况下只有root用户的UID为0,其他用户的UID如果设置为0,即拥有root权限,需要重点排查。但需要注意的是,UID为0的用户也不一定都是可疑用户,如Freebsd默认存在toor用户,且UID为0,toor 在BSD官网的解释为root替代用户,属于可信的。
(2)进程、服务、网络连接排查
(1)在Linux系统中,可以使用【ps aux】命令查看系统进程
还有一些其它的排查项,如定时任务,启动项,加载的模块等等,这里就不一一列举了。
webshell应急案例
https://blog.csdn.net/qq\_50765147/article/details/136614996
https://blog.csdn.net/m0\_60571842/article/details/137352323