「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》
今天很暴躁,因为睡眠被打扰了。
一个朋友大半夜打我电话,说她云服务器被人黑了,甩给我个截图。
我一看,下午六点就被打了,你大半夜才给我打电话,反射弧是不是有点忒长了。
她当时就急眼了,说找了官方客服,客服甩给她一套方案(检查端口啥的),她照着流程查了半天啥也没查到,客服就让她重置系统。
她跟客服吵了半天(估计是没吵赢),气不过,就来找了我。
我向来是个热心肠的人,赶紧远程过去把后门删了,从日志里找到传后门IP给它封掉。
这里跟大家分享一下被上传后门(webshell)的应急思路。
webshell应急响应
- 一、webshell是什么?
- 二、webshell分类
- 三、webshell处置流程
- 四、Web日志解析
- 1、IIS日志
- 2、Apache日志
一、webshell是什么?
webshell是一种代码执行环境,通常以asp、php、jsp等网页文件形式存在。
黑客通常会webshell文件上传到服务器web目录下,作为后门文件,使用浏览器或专用客户端连接,从而控制网站服务器。
二、webshell分类
按照脚本类型可以分为jsp、asp、php三种。
1)jsp(Java Server Pages)常搭配Java语言,将动态的Java代码嵌入到静态的HTML页面中,文件名是 xx.jsp
。
(一句话木马)代码示例:
<%Runtime.getRuntime().exec(request.getParameter("shell"));%>
2)asp(Active Server Pages)常用于小型页面应用的开发,一些古老的网站仍在使用,文件名是 xx.asp
和 xx.apsx
。
(一句话木马)代码示例:
<%eval request("shell")%>
3)php(Hypertext Preprocessor)是世界上最好的语言,文件名是 xx.php
。
(一句话木马)代码示例:
<?php @eval($_GET["shell"]); ?>
三、webshell处置流程
1)根据webshell文件的创建时间,判断攻击时间。
2)排查攻击时间前后的网站web日志,寻找攻击路径。
3)针对攻击路径的接口,排查网站存在的漏洞。
4)复现漏洞,还原攻击路径。
5)清除webshell文件,修复漏洞。
四、Web日志解析
常见的Web日志有两种:W3C日志格式 和 NCSA日志格式。
W3C日志格式主要在IIS中应用;Apache、Tomcat、Nginx等Web容器主要使用NCSA格式。这里以IIS和Apache为例,讲解一下两种日志的格式。
1、IIS日志
默认位置:%systemroot%\system32\logfiles\
,
比如:C:\WINDOWS\system32\LogFiles\W3SVC20110218
日志文件:ex+年份的末两位数字+月份+日期 .log
比如2010年7月30日的日志:ex100730.log
默认每天一个日志。
IIS采用W3C日志格式,可按需勾选记录的字段。
日志文件内容如下图,前几行记录版本和日志创建时间。
核心字段解释(从左到右):
- 2002-07-18 09:53:52:请求时间
- 10.152.8.17 - 10.152.8.2 80:客户端IP访问了服务器IP的80端口。
- GET:请求方式
- /index.htm:请求URL
- -:200:响应状态码
- 客户端UA信息
2、Apache日志
默认位置(Linux):/usr/local/apache/logs
默认位置(Windows):Apache安装目录/logs/
日志文件(Linux):access_log
、error_log
日志文件(Windows):access.log
、error_log
access记录网站访问日志,error记录服务器运行的错误日志。
访问日志通常是下面这种格式:
192.168.115.5 - - [01/Apr/2018:10:37:19 +0800] "GET / HTTP/1.1" 200 45
核心字段解释:
- 192.168.115.5:请求IP(访问网站的IP)
- -:E-mail,此处为空。
- -:登录名,此处为空。
- [01/Apr/2018:10:37:19 +0800]:请求时间
- “GET / HTTP/1.1”:请求方式和协议
- 200:响应状态码
- 45:字节数