一、日志介绍

  • 此文章不考虑日志被删除的情况
    • 删除日志需要管理员权限,且删除日志本身也会留下日志
    • 删除日志的操作会被日志记录设备告警
    • 删除只能删除在受害机器上的日志,日志设备中的日志不会受影响

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中日志是有有段时间延迟的,如果迟迟不出来,可以重启一下子再查看。

image-20240313141106592

其中access.log是访问日志,安全人员看这个

error.log是报错日志,这个主要是运维人员看的。

  • 如果使用phpstudy进行复现的话,需要手动开启访问日志
    • common 和combined的区别是
    • common记录只是大概记录日志
    • combined是详细记录

image-20240313140312470

把注释符删掉报错即可

2.1.2、Linux中

默认位置:

cd /var/log/apache2

image-20240313135314532

也可以使用find命令

find / -name "access.log" 2>/dev/null

image-20240313135924849

2.2、日志分类

  1. 错误日志(errors.log)
  2. 访问日志(access.log)
  3. 传输日志(已弃用)
  4. Cookie日志(已弃用)
2.2.1、访问日志

access.log为访问日志,记录对所有对apache服务器进行请求的访问

image-20240313141840598

  • 远程主机IP:表明访问网站的是谁
  • 空白(Email):为了避免用户的邮箱被垃圾邮件骚扰,第二项用”-“取代
  • 空白(登录名):记录浏览者进行身份验证时提供的名字
  • 请求时间:[] 中的内容是时间,最后的+0800表示服务器所处时区位于UTC之后8小时
  • 方法+资源+协议:服务器收到的是一个什么样的请求,格式为 “方法 资源 协议”
  • 状态代码:请求是否成功,或是遇到了什么样的错误
  • 发送字节数:表示发送给客户端的字节数,告诉我们传输是否被打断
2.2.2、错误日志
  • error_log错误日志记录了服务器运行期间的遇到的各种错误信息,以及一些普通的诊断信息,比如服务器何时开启,合适关闭等
  • 错误日志的一般格式

image-20240313142908831

  • apache默认情况下在发生warn及以上事件时会记录,这个级别在配置文件中可以进行修改

image-20240313143238573

linux中

image-20240313143531281

  • debug:最详细的日志级别,记录所有调试信息,通常只在开发和测试环境中使用。
  • info:记录有关正常操作的信息,例如服务器启动和停止、模块加载等。
  • notice:记录需要注意但不是错误的事件,例如非致命性的配置问题或客户端请求的异常情况。
  • warn:记录警告信息,表示可能存在问题,但不会影响系统的正常运行。
  • error:记录错误信息,表示出现了某种错误,但仍然可以继续运行。
  • crit:记录严重错误信息,表示出现了严重问题,需要立即采取措施解决。
  • alert:记录需要立即采取行动的事件,例如硬件故障或安全漏洞。
  • emerg:记录紧急事件,表示系统已经无法正常运行,需要立即采取行动。

2.3、Linux查看日志常用的命令

  • 查看IP
cat access.log | awk '{print $1}'

image-20240313144030113

  • 查看访问前十的IP地址,以便查找攻击源
cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10

image-20240313144251784

  • 显示指定时间以后的日志
cat access.log |awk '$4>="[1/Jan/2020:00:00:00"'

image-20240313144607235

  • 查看某一时间内的IP连接情况

    grep "2020:05" access.log | awk '{print $4}' | sort | uniq -c | sort -nr

    image-20240313145143257

  • 查看指定IP做了什么

cat access.log | grep "192.168.43.1" | awk '{print $1}' | sort | uniq -c | sort -nr | less

image-20240313145749229

  • 查看访问量最高的文件
tail -n 10000 access.log | awk '{print $7}' | sort | uniq -c | sort -nr | less

image-20240313145853147

三、工具扫描后的日志

3.1、dirsearch 扫描

image-20240313155541026

  • dirsearch扫描工具的流量特征

    • 可以根据扫描的文件目录进行防护

    • 也可以根据UA头进行防护

      Chrome/87.00.4280浏览器内核版本比较低,限制浏览器内核版本都比较高了

image-20240313155755175

3.2、sqlmap扫描

  • sqlmap扫描的流量特征
    • ua头后面会有sqlmap网址,非常明显

image-20240313160547214

四、IIS日志

  • IIS日志提供了一套相当有效的管理机制,并且提供了一套强大的日志文件系统
    • 通过对日志文件的检测,可以找出疑问的痕迹,得到网站的访问,操作记录,以及系统的问题所在
    • IIS日志记录了网站服务器接收,处理请求以及运行错误等各种原始信息
    • 即它可以记录访问者的一举一动,不管访问者时访问网站还是上传文件,不管是成功还是失败都可以记录

4.1、Windows server如何安装ISS服务器

image-20240313161211077

image-20240313161224018

注意:要手动选上IIS,默认是不勾选的

image-20240313161303553

然后一直下一步进行安装就行了

4.2、IIS日志

  • IIS7.5:%SystemDrive%\inetpub\logs\LogFiles
  • IIS6.0:%systemroot%\system32\logfiles\w3svc1

控制面板 ==》管理工具==》Internet Information Services (IIS)管理器

image-20240313162939085

image-20240313162742393

  • 对应解释
    • 访问时间: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时使用管理员权限,否则将会报错

image-20240313164923990

image-20240313165744393

image-20240313165809310

如果想要分析linux服务器中的日志,可以把linux服务器中的日志下载下来到windows中,在进行指定路径分析。

5.2、http Logs Viewer

与360星图相比需要手动进行分析

image-20240313171714869