应急响应中常见的日志收集

转发自:FREEBUF专栏
原文链接:https://www.freebuf.com/column/227843.html

0x01 简介

在发生网页篡改、服务器被植入挖矿木马等安全攻击事件时,日志能协助进行安全事件还原,能尽快找到事件发生的时间、原因等,所以日志收集还是很重要的。本文整理了部分常见中间件、数据库、操作系统的日志收集方法。

0x02 中间件日志

2.1 apache

apache日志一般分为 access_log 和 error_log 两种

可以通过查看 httpd.conf 文件查看 apache 日志路径:

grep -i"CustomLog" /etc/httpd/conf/httpd.conf

grep -i”ErrorLog” /etc/httpd/conf/httpd.conf

access_log:访问日志,记录所有对 apache 服务器进行请求的访问
error_log:错误日志,记录下任何错误的处理请求,通常服务器出现什么错误,可对该日志进行查看

2.2 nginx

nginx的日志主要分为 access.log、error.log 两种,可通过查看 nginx.conf 文件来查找相关日志路径,如下图

$locate nginx.conf
/etc/nginx/nginx.conf

#error.log,主要记录一些错误信息
grep -i"error.log" /etc/nginx/nginx.conf

access.log:主要记录访问日志,记录访问客户端ip地址、访问时间、访问页面等信息

grep -i"access.log" /etc/nginx/nginx.conf

2.3 iis

查看日志文件位置:

打开文件夹下其中一个名为ex170910.log,日志内容具体如下,包括访问域名时间、ip、访问url等信息:

2.4 weblogic

weblogic在安装结束后默认开启了日志记录功能,默认配置情况下,weblogic会有3种日志,分别是 accesslog , Server log 和 domain log, WebLogic8.x 和 9 及以后的版本目录结构有所不同。

WebLogic 8.x版本:

access log路径如下:

$MW_HOME\user_projects\domains\<domain_name>\<server_name>\access.log

server log路径如下:

$MW_HOME\user_projects\domains\<domain_name>\<server_name>\<server_name>.log

domain log路径如下:

$MW_HOME\user_projects\domains\<domain_name>\<domain_name>.log

其中:

$MW_HOME是 WebLogic 的安装目录
<domain_name>是域的实际名称,是在创建域的时候指定的
<server_name>是 Server 的实际名称,是在创建 Server 的时候指定的
<adminserver_name>是 Admin Server 的实际名称,是在创建 Admin Server 的时候指定的。

WebLogic 9及以后版本:

access log路径如下:

$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log

server log路径如下:

$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\<server_name>.log

domain log路径如下:

$MW_HOME\user_projects\domains\<domain_name>\servers\<adminserver_name>\logs\<domain_name>.log

access.log:主要记录http请求,默认情况下日志记录处于启用状态,服务器将http请求保存在单独的日志文件中,日志格式如下,主要记录了http请求请求ip地址、请求时间、访问页面、响应状态等信息:

server log:主要用于服务器的一般日志记录,比如 weblogic 的启动、关闭、部署应用等相关记录,日志格式:依次为时间戳,严重程度,子系统,计算机名,服务器名,线程ID。其后消息正文中的行仅表示记录的一次例外并显示该例外的堆栈跟踪式如下

domain log:主要记录了一个 domain 的运行情况,一个 domain 中的各个 weblogic server 可以把它们的一些信息(如:严重错误)发送到 Admin Server 上,Admin Server 把这些信息传递到 domain.log 上

2.5 tomcat

tomcat日志默认路径:在安装目录下的logs文件夹下:

如果在安装中默认修改了日志存储位置,可在 conf/logging.properties 文件中查看

tomcat日志一般分为 catalina.out 、localhost 、 manager 、localhost_access_log 4种格式日志。

catalina.out:运行中的日志,主要记录运行中产生的一些信息,尤其是一些异常错误日志信息

localhost_access_log:主要记录访问日志信息,记录访问的的时间、ip地址等信息,也是应急中经常用到的日志信息

此部分日志可通过查看 server.xml 文件的如下内容,来确定是否启用了访问日志记录

catalina.Y-M-D.log:是 tomcat 自己运行的一些日志,这些日志还会输出到catalina.out,但是应用向 console 输出的日志不会输出到 catalina.{yyyy-MM-dd}.log

localhost.Y-M-D.log:程序异常没有被捕获的时候抛出的地方,Tomcat下内部代码丢出的日志(jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件!)应用初始化(listener,filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,而这些未处理异常最终会导致应用无法启动。

manager.Y-M-D.log:管理日志

0x03 数据库日志

3.1 mysql

status:查看当前数据库状态

mysql的日志主要分为以下几种:

Slow QueryLog*:记录Mysql 慢查询的日志;
GenaralQuery Log:记录mysql的日常日志,包括查询、修改、更新等的每条sql;
ErrorLog:记录Mysql运行过程中的Error、Warning、Note等信息,系统出错或者某条记录出问题可以查看Error日志;
Binary Log:二进制日志,包含一些事件,这些事件描述了数据库的改动,如建表、数据改动等,主要用于备份恢复、回滚操作等;

show variables like ‘log_%‘;

可见mysql默认只是开启了错误日志,错误日志内容如下:

此处重点分析GenaralQuery Log,也是应急中经常会查看到的,其他日志类型可查看大牛已经整理好的详细笔记,链接如下:
https://www.jianshu.com/p/db19a1d384bc

通过开启日志,来记录所有查询和执行的sql语句:

set GLOBAL general_log='ON’;
SHOW VARIABLES LIKE 'general_log%';

general_log:日志功能是否开启,默认关闭OFF
general_log_file:日志文件保存位置

到对应路径下查看日志内容如下,会记录当前针对数据库所做的所有操作

3.2 sqlserver

SQL Server 日志记录了完整的 SQL Server 数据库运行的状态信息,并以消息的形式记录系统级、应用级操作。可以使用 SQL Server Management Studio 中的日志文件查看器来访问有关在以下日志中捕获的错误和事件的信息:

SQL Server Management Studio连接sqlserver数据库,查看与常规 SQL Server 活动相关的日志,具体步骤如下:

1.在对象资源管理器中,展开 “管理”

2.执行下列任一操作:

(1)右键单击“SQL Server 日志”,指向“查看” ,然后单击“SQL Server 日志” 或“SQLServer 和 Windows 日志” 。

(2)展开“SQL Server 日志” ,右键单击任何日志文件,然后单击“查看 SQL Server 日志” 。 还可以双击任何日志文件,日志格式如下:

查询最近一次启动sqlserver时间:

select sqlserver_start_time fromsys.dm_os_sys_info;

历史sql记录查询:SQLServer并没有这样的实现,只有sys.dm_exec_query_stats缓存了一部分 (sql server服务开启后执行的语句,某些不被缓存执行计划的语句并不记录)。

这个视图主要是对执行计划的统计,包含消耗成本,运行次数等等,并没有session,user,每次被执行的时间等信息:

启动sql server 审计功能,会记录所有的操作记录,可以通过查看 Audits 来查看日志的存储路径

Sqlserver开启日志审计功能可参考:https://blog.51cto.com/gaowenlong/1908381

3.3 oracle

Oracle日志文件分为两种:重做日志文件(redo log file)、归档日志文件,其中重做日志文件主要记录了数据库的操作过程,可以在进行数据库恢复时,将重做日志文件在还原的数据库上进行执行,以达到数据库的最新状态。

Oracle数据库默认只是对数据库的登录情况记录,但是不对数据库的查询记录统计

可通过 show parameter audit ,查看审计功能是否开启

None:是默认值,不做审计;

DB:将 audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;

audit_file_dest 为存放的日志路径,可查看adump下相关文件,内容如下:

DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;

OS:将audit trail 记录在操作系统文件中,文件名由audit_file_dest参数指定;

开启审计功能:

alter system set audit_sys_operations=TRUEscope=spfile;
alter system set audit_trail=db,extendedscope=spfile;

重启实例即可:

开启后会把审计内容记录到 sys 库的AUD$表中

修改将日志文件记录在操作系统中:

alter system set audit_trail='OS'scope=spfile;

Audit_file_dest 即为日志保存的具体路径。

关于日志的详细配置可以参考:http://blog.itpub.net/31397003/viewspace-2145164/

0x04 操作系统日志

4.1 windows日志

查看windows日志方法:开始->运行->输入 eventvwr

Windows的日志以事件id来标识具体发生的动作行为,可通过微软查询具体id对应的操作;关于windows日志查看内容,可参考如下链接:

https://www.freebuf.com/vuls/175560.html

4.2 linux日志

通过查看 /etc/rsyslog.conf ,可查看相关系统日志配置情况:

linux系统日志一般存放在 /var/log/ 目录下:

在这里筛选出几个比较重要且明显的日志:

/var/log/lastlog:最近几次成功登录事件和最后一次不成功登录事件

lastlog 文件在每次有用户登录时被查询,可以使用 lastlog 命令检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog 的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示Never logged 。注意需要以 root 身份运行该命令。

/var/log/secure:记录用户登录认证过程中的事件信息

secure 是应急中最常用的文件,主要记录系统存取数据的文件,如POP3、ssh、telnet、ftp等相关记录,从日志中可看出系统服务是否遭受到安全威胁,从如下日志中可看到ftp服务一直在被破解。

/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件

wtmp日志记录了用户的登录、退出、重启等情况,可以查看系统是否存在异常用户登录,判断攻击者是否已经登录服务器,由于wtmp日志为二进制文件,所以利用用 last 命令查看:

last -t 20190426120950

查看这个时间之前的日志:

/var/log/utmp:记录当前登录的每个用户的详细信息

utmp日志记录当前用户的一些信息,由于utmp日志文件同样为二进制文件,可通过w、who命令查看

原文地址:https://www.cnblogs.com/-mo-/p/12382225.html

时间: 2024-11-01 20:56:32

应急响应中常见的日志收集的相关文章

阿里云服务器 Linux系统中常见的日志介绍

云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 crontab 任务调度是否实际执行,执行过程是否发生错误,以及 /etc/crontab 文件是否有语法错误或编写错误. /var/log/dmesg可以在 dmesg 文件中检查系统在开机时候内核检测过程所产生的各项信息,包括系统的设备信息,以及在启动和操作过程中系统记录的任何错误和问题的信息.通过 d

云服务器 ECS Linux 系统中常见的日志文件介绍

云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 crontab 任务调度是否实际执行,执行过程是否发生错误,以及 /etc/crontab 文件是否有语法错误或编写错误. /var/log/dmesg 可以在 dmesg 文件中检查系统在开机时候内核检测过程所产生的各项信息,包括系统的设备信息,以及在启动和操作过程中系统记录的任何错误和问题的信息.通过

Shell 中常见的日志统计方法

前面我发布过"Hadoop兮,杀鸡别用牛刀,python+shell实现一般日志文件的查询.统计", 需要结合python, 可能还是有一定的门槛, 现将shell部分剥离出来. 举例一些最基本的日志统计方法. (1)查看文件 more crawler.log 查看crawler.log日志 tail -n 100 crawler.log 查看crawler.log的最后100行 (2)匹配统计 cat *.log | grep "ERROR" |wc -l 统计在

一些关于Linux入侵应急响应的碎碎念

近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个字,顺藤摸瓜.我们常常需要找到比较关键的信息后通过一些指令查询或者分析日志,逐步分析黑客的具体步骤. 入侵后需要被关注的Linux系统日志 var/log/cron 记录crontab命令是否被正确的执行,一般会被黑客删除 var/log/lastlog 记录登录的用户,可以使用命令lastlog查

Linux应急响应姿势浅谈

一.前记 无论是甲方还是乙方的同学,应急响应可能都是家常便饭,你可能经常收到如下反馈: 运维同事 --> 服务器上存在可疑进程,系统资源占用高: 网络同事 --> 监控发现某台服务器对外大量发包: .... 不要着急,喝一杯82年的美年达压压惊,希望本文可以对你有所帮助. 二.排查流程 0x01 Web服务 一般如果网络边界做好控制,通常对外开放的仅是Web服务,那么需要先找到Webshell,可以通过如下途径: 1)检查最近创建的php.jsp文件和上传目录 例如要查找24小时内被修改的JS

Android日志收集功能设计和实施报告(总)

几乎所有的应用程序开发者都知道"用户体验"重视,为了增强用户体验是从全面的监测和报告制度密不可分,在这些日志(控制Crash报告)是主要的问题跟踪和解决工具. 日志上报系统.首先看一下类图: 整个日志监控上报大体分为例如以下几个部分: 封装控制系统原生Log,然后依据不同的级别分别输出到Logcat和文件里,主要有类LogcatLog和FileLog实现. 收集手机其它信息,在将log上报到server时一同上报,这些信息包含Settings信息.DropBox打印的log.应用的Sh

kubernetes-平台日志收集(ELK)

使用ELK Stack收集Kubernetes平台中日志与可视化 K8S系统的组件日志 K8S Cluster里面部署的应用程序日志 日志系统: ELK安装 安装jdk [[email protected] ~]# yum install java-1.8.0-openjdk [[email protected] ~]# java -version openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_

k8s集群日志收集

k8s集群日志收集 收集哪些日志K8S系统的组件日志K8S Cluster里面部署的应用程序日志 日志方案 Filebeat+ELK        Filebeat(日志采集工具)+Logstach(数据处理引擎)+Elasticserch(数据存储.全文检索.分布式搜索引擎)+Kibana(展示数据.绘图.搜索)        3 容器中的日志怎么收集       收集方案:Pod中附加专用日志收集的容器优点:低耦合缺点:每个Pod启动一个日志收集代理,增加资源消耗和运维维护成本       

网站数据统计分析中的日志收集原理及其实现

> 网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析.百度统计 和 腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于javascript的.本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统. 1.数据收集原理分析 简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页.点击某按钮.将商品加入购物车等)及行为附加数据(如某下单行为产生的订单金额等).早期的网站统计往往只收