WEB日志分析
一、日志介绍
- 此文章不考虑日志被删除的情况
- 删除日志需要管理员权限,且删除日志本身也会留下日志
- 删除日志的操作会被日志记录设备告警
- 删除只能删除在受害机器上的日志,日志设备中的日志不会受影响
1.1、为什么要使用日志
- 可以在故障刚刚发生的时就向用户发送警告信息
- 可以用来决定故障的根本原因或缩小系统攻击范围
1.2、分析日志的意义
- 如今各式各样的漏洞层出不穷,五花八门的入侵工具更是令人眼花缭乱,稍微懂点网络知识的人都可以利用各种入侵工具进行入侵
- 虽然经过精心配置的服务器可以抵御大部分入侵,但伴随着新漏洞的出现,也不能保证一台服务器长时间不会被入侵,所以如何检测入侵者行动以保证服务器安全性就会显得十分重要
- 通过日志,可以分析出各种网络可疑行为、违规操作、敏感信息,协助定位安全事件源头和调查取证,防范和发现计算机网络犯罪活动
1.3、常见的中间件漏洞
- apache
- tomcat
- IIS
- Weblogic
- JBoss
- Nginx
1.4、中间件日志的关键点
- 对访问时间进行统计,可以得到服务器在某些时间段的访问情况
- 对IP进行统计,可以得到用户的分布情况
- 对请求URL的统计,可以的得到网站页面关注情况
- 对错误请求的统计,可以更正有问题的页面
二、apache日志
2.1、日志存放的位置
2.1.1 Windows中
- apache日志存放位置
- 一般都保存在apache安装目录的log子目录中
Windows中日志是有有段时间延迟的,如果迟迟不出来,可以重启一下子再查看。
其中access.log是访问日志,安全人员看这个
error.log是报错日志,这个主要是运维人员看的。
- 如果使用phpstudy进行复现的话,需要手动开启访问日志
- common 和combined的区别是
- common记录只是大概记录日志
- combined是详细记录
把注释符删掉报错即可
2.1.2、Linux中
默认位置:
cd /var/log/apache2 |
也可以使用find命令
find / -name "access.log" 2>/dev/null |
2.2、日志分类
- 错误日志(errors.log)
- 访问日志(access.log)
- 传输日志(已弃用)
- Cookie日志(已弃用)
2.2.1、访问日志
access.log为访问日志,记录对所有对apache服务器进行请求的访问
- 远程主机IP:表明访问网站的是谁
- 空白(Email):为了避免用户的邮箱被垃圾邮件骚扰,第二项用”-“取代
- 空白(登录名):记录浏览者进行身份验证时提供的名字
- 请求时间:[] 中的内容是时间,最后的+0800表示服务器所处时区位于UTC之后8小时
- 方法+资源+协议:服务器收到的是一个什么样的请求,格式为 “方法 资源 协议”
- 状态代码:请求是否成功,或是遇到了什么样的错误
- 发送字节数:表示发送给客户端的字节数,告诉我们传输是否被打断
2.2.2、错误日志
- error_log错误日志记录了服务器运行期间的遇到的各种错误信息,以及一些普通的诊断信息,比如服务器何时开启,合适关闭等
- 错误日志的一般格式
- apache默认情况下在发生warn及以上事件时会记录,这个级别在配置文件中可以进行修改
linux中
- debug:最详细的日志级别,记录所有调试信息,通常只在开发和测试环境中使用。
- info:记录有关正常操作的信息,例如服务器启动和停止、模块加载等。
- notice:记录需要注意但不是错误的事件,例如非致命性的配置问题或客户端请求的异常情况。
- warn:记录警告信息,表示可能存在问题,但不会影响系统的正常运行。
- error:记录错误信息,表示出现了某种错误,但仍然可以继续运行。
- crit:记录严重错误信息,表示出现了严重问题,需要立即采取措施解决。
- alert:记录需要立即采取行动的事件,例如硬件故障或安全漏洞。
- emerg:记录紧急事件,表示系统已经无法正常运行,需要立即采取行动。
2.3、Linux查看日志常用的命令
- 查看IP
cat access.log | awk '{print $1}' |
- 查看访问前十的IP地址,以便查找攻击源
cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10 |
- 显示指定时间以后的日志
cat access.log |awk '$4>="[1/Jan/2020:00:00:00"' |
查看某一时间内的IP连接情况
grep "2020:05" access.log | awk '{print $4}' | sort | uniq -c | sort -nr
查看指定IP做了什么
cat access.log | grep "192.168.43.1" | awk '{print $1}' | sort | uniq -c | sort -nr | less |
- 查看访问量最高的文件
tail -n 10000 access.log | awk '{print $7}' | sort | uniq -c | sort -nr | less |
三、工具扫描后的日志
3.1、dirsearch 扫描
dirsearch扫描工具的流量特征
可以根据扫描的文件目录进行防护
也可以根据UA头进行防护
Chrome/87.00.4280浏览器内核版本比较低,限制浏览器内核版本都比较高了
3.2、sqlmap扫描
- sqlmap扫描的流量特征
- ua头后面会有sqlmap网址,非常明显
四、IIS日志
- IIS日志提供了一套相当有效的管理机制,并且提供了一套强大的日志文件系统
- 通过对日志文件的检测,可以找出疑问的痕迹,得到网站的访问,操作记录,以及系统的问题所在
- IIS日志记录了网站服务器接收,处理请求以及运行错误等各种原始信息
- 即它可以记录访问者的一举一动,不管访问者时访问网站还是上传文件,不管是成功还是失败都可以记录
4.1、Windows server如何安装ISS服务器
注意:要手动选上IIS,默认是不勾选的
然后一直下一步进行安装就行了
4.2、IIS日志
- IIS7.5:%SystemDrive%\inetpub\logs\LogFiles
- IIS6.0:%systemroot%\system32\logfiles\w3svc1
控制面板 ==》管理工具==》Internet Information Services (IIS)管理器
- 对应解释
- 访问时间:2024-03-13
- 服务器IP地址:127.0.0.1
- 执行的操作:GET /
- 访问的端口:80
- 攻击机的IP:127.0.0.1
- 浏览器的类型:Mozilla/5.0+
- 系统相关信息:(Windows+NT+10.0;+Win64;+x64;+rv:74.0)
- 操作代码状态:200 (正常)
- Windows状态代码:0 (操作成功完成)
五、日志分析工具
5.1、360星图
使用前需要在配置文件中指定一下日志的目录
运行bat时使用管理员权限,否则将会报错
如果想要分析linux服务器中的日志,可以把linux服务器中的日志下载下来到windows中,在进行指定路径分析。
5.2、http Logs Viewer
与360星图相比需要手动进行分析