基本信息
webshell通常指JSP、ASP、PHP等网页脚本文件形式存在的一种服务器可执行文件,是一种网页后门,攻击者入侵后,通常将后门文件网站服务器Web目录下正常的网页文件混在一起,使用浏览器或专用客户端进行连接得到了服务器操作环境,达到控制网站的目的。
常见的webshell脚本
php:<?php$a=exec($_GET["input"]);echo$a;?>
jsp:<%Runtime.getRuntime().exec(request.getParameter("));%>
asp:<%evalrequest("cmd")%>
Webshell 的用途
1.站长工具
一般是通过浏览器来对网站所在的服务器进行运维管理。作用演变为在线编辑文件、上传和下载文件、数据库操作、执行命令。
2.持续远程控制
当攻击者通过手段完成Webshell植入时,为了防止其他攻击者再次利用,则会修改网站漏洞,达到网站被其单独、持续控制。而Webshell本身所拥有的密码验证可以确保其在未收到暴力破解工具攻击下,只能单独使用。
3.权限提升
Webshell的执行权限与web服务器运行权限息息相关,当前Web服务器是root权限 则webshell也是root权限。一般为普通用户权限,为进一步控制,采取计划任务、内核漏洞等方法来获取root权限。
4.极强的隐蔽性
部分恶意网页脚本可以嵌套在正常网页中运行,且不容易被查杀 ,上传成功后,被视为所在服务的一部分,流量传输也通过web服务本身进行,所以隐蔽性强。
检测方法
1)基于流量检测
基于流量的webshell检测方便部署,还可通过流量镜像直接分析原始信息。基于payload行为分析,不仅对可知的webshell进行检测,可识别未知、伪装性强的webshell,对它的访问特征(IP/UA/Cookie)、payload检测、path特征、时间特征,以时间为索引,可还原攻击事件。
2)基于文件检测
我们通过检测文件是否加密(混淆处理) ,创建Webshell样本hash库,可对比分析可疑文件。对文件的创建时间、修改时间、文件权限等进行检测,以确认是否为Webshell
3)基于日志检测
对常见的多种日志进行分析,可帮助我们有效识别Webshell的上传行为等。通过综合分析,可回溯整个攻击过程
初步判断
1.了解事件表现
1)网页被篡改、存在非管理员设置内容。
2)出现攻击者恶意篡改网页或者网页被植入暗链的现象
3)安全设备报警,或被上级部门通报遭遇webshell。
2.判断事件发生时间
查看webshell的创建时间,结合异常现象发生的时间,定位大致的时间发生时间段
3.判断系统架构
查看系统本身是否存在漏洞,包括服务器、CMS、框架、数据库、脚本语言、业务架构等
4.临时处置
删除检测到的Webshell文件,对文件进行备份,方便后续取证溯源。
对系统进行隔离,防止影响其他系统的。
Webshell排查
=windows排查=
可利用工具进行查询
D盾扫描,对可疑文件内容进行审查;端口进程查看、base64解码,以及克隆用户检测,文件监控。
河马Webshell查杀拥有海量Webshell样本和自主查杀技术,采用传统特征+云端大数据双引擎的查杀技术,支持多种操作系统。
Linux
可以使用河马webshell 查杀工具,也可以手工搜索特征。
利用这个find命令。
Web日志排查:
Windows:
常见的web中间件默认日志路径:
- Apache:apache\log\error.log、apache\log\access.log
- IIS: C:\inetpub\logs\LogFiles 、 C:\WINDOWS\system32\LogFiles
- Toncat : tomcat\access_log 要根据查询到的webshell文件创建时间前后搜索并对可疑内容做进一步分析取证。
Linux
常见的web中间件默认日志路径
- Apache : /etc/httpd/logs/access_log; /var/log/httpd/access_log
- Nginx: /usr/nginx/logs
同理定位时间段可疑日志记录,linux可以使用检索命令。
系统排查
windows
用户信息排查
1)用户排查
net user
2)隐藏用户排查
lusrvwr.msc
3)克隆用户排查
注册表的SAM下查询F值
4)网络连接排查
netstat -ano
进程、服务、启动项排查
1)进程
2)服务排查
3) 任务计划排查
任务计划日志存放于: C:\WINDOWS\System32\Tasks
taskschd.msc //任务计划程序
文件排查:
需要对各个盘符敏感目录排查
1)temp相关目录
常见路径:
- C:\Windows\temp
- C:\Users\Administrator\AppData\Local\temp
一般在非系统system32或system64目录下的svchost.exe基本上都是恶意文件。命名特殊文件也需要重点排查,打开查看内容或用威胁情报/微步等进行文件检测。
2)recent相关目录
目录路径:
- C:\Documents and Settings\Administrator\recent
- C:\Documents and Settin
Linux
用户信息排查
cat /etc/passwd 查看系统用户信息
awk -F: '{if ($3==0)print $1}' /etc/passwd //查看UID为0的用户
cat /etc/passwd | grep -v "nologin" | grep -v "false" //查看能够登陆的用户
awk -F: 'length($2)==0 {print $1}' /etc/shadow //查看是否存在空口令用户
`
进程、服务、网络连接排查
ps aux/ps ef (可查看父进程) //查看系统进程
kill -9 PID //结束PID 对应进程
netstat -antpl //查看网络连接、端口、进程以及PID
ls -lah /proc/PID //根据PID查看对应可执行程序
rm -rf FileName //删除进程
如果存在用户无法删除,可查看文件是否存在i属性
lsatter FileName //查看文件属性
chatter -i FileName //移除i属性
lsof -p PID //查看对应可执行程序
lsof -i:port //查看指定端口对应的可执行程序
top //查看CPU、内存等
chkconfig --list //查看系统运行服务
运行级别
0关机;1单用户(找回密码);2多用户无网络服务;3多用户有网络服务;4保留;5图形化界面;6重启
7个运行级别分别对应7个目录,即/etc/rc[0-6].d就是/rc.d/rc[0-6].d的软链接。
/etc/rc.d下的init.d存放一些脚本,类型Windows注册表;rc.local文件会在用户登录之前读取。
因此需要重点关注这些目录:
rookit排查
Rootkit自身也是木马后门或恶意程序的一类,特殊恶意软件,功能是安装目标上隐藏自身及指定的文件、进程和网络连接等信息。
日志排查
Windows系统排查
Linux 系统排查
日志位置一般在/var/log目录下
数据库日志排查
Mysql日志排查
windows
linux
清除加固
1)处置时先断网,清理发现的webshell
2)如果网站被挂黑链接或者被篡改首页,删除篡改内容,审计源码
3)系统排查后,及时清理系统中隐藏的后门及攻击者操作内容,若存咋rootkit类后门,建议重装系统
4)对排查过程中发现的漏洞利用点进行修补,切断攻击路径,必要时可以做黑盒渗透测试
5)操作处置完成,重新恢复网站运行
Webshell防御方法
1)配置必要的防火墙,开启防火墙策略
2)对服务器进行安全加固
3)加强权限管理,对敏感目录进行权限设置,限制上传目录的脚本执行权限,不允许配置执行权限
4)安装webshell检测工具
5)排查程序存在的漏洞并及时修补
6)时长备份数据库重要文件
7)日常维护
8)采用白名单机制上传文件,上传目录权限遵循最小权限原则
版权归原作者 大智工程师 所有, 如有侵权,请联系我们删除。