一、Windwos日志
1. 分类
- 事件日志
- IIS日志
- FTP日志
- 数据库日志
- 邮件服务日志
2. 事件日志
(1). 介绍
a. 概念
- 以特定的数据结构存储内容,内容包括系统、安全、应用程序的记录
b. 元素
- 9种,分别是:日期/事件、事件类型、用户类型、计算机、事件ID、来源、类别、描述、数据
c. 存放位置
C:\Windows\system32\winevt\logs\
d. 打开方式
- win + R => 运行窗口输入
eventvwr.msc
(2). 分析要点
(3). 分类
a. 应用日志
①概念
- 包括应用程序或系统程序记录的事件,主要记录程序运行方面的事件
②日志位置
- %SystemRoot%\System32\Winevt\Logs\Application.evtx
b. 系统日志
①概念
- 记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据对是错误等
②日志位置
- %SystemRoot%\System32\Winevt\Logs\System.evtx
c. 安全日志
①概念
- 包含安全性相关的时间,如用户权限变更、登录及注销,文件、文件夹访问,打印等信息
②日志位置
- %SystemRoot%\System32\Winevt\Logs\Security.evtx
d. 转发事件
(4). 事件级别
总共有5个事件级别
(5). 事件ID
a. 定义
- Windows的日志以事件ID来表示具体发生的动作行为
- 查询网址:https://docs.microsoft.com/en-us/windows/security/threat-protection/ , 搜索
event + id
进行查询
b. 常见事件ID
| 事件ID | 说明 |
| ——– | ——————– |
| 4634 | 注销成功 |
| 4624 | 账号成功登录 |
| 4625 | 账号登录失败 |
| 4720 | 创建用户 |
| 4726 | 删除用户 |
| 4672 | 使用超级用户登录 |
| 4647 | 用户启动的注销 |
c. 登录类型
| 类型ID | 描述 | 说明 | 典型情况 |
| —— | ———- | ————————– | ————————————————– |
| 2 | 本地交互式 | 用户在本地登录 | 使用域、本地账户登录 |
| 3 | 网络方式 | 从网络访问主机 | 访问共享文件夹 |
| 4 | 批处理 | 作为批处理登录 | 指定计划任务时指定的某个具体账户来运行 |
| 5 | 服务 | 以服务方式登录 | 在指定服务器运行时以本地系统账户、具体某个账户运行 |
| 8 | 网络明文 | 密码在网络上明文传输 | FTP登录 |
| 10 | 远程交互 | 通过中断服务、远程桌面访问 | 本地mstsc客户端远程登录 |
(6). 常见事件日志分析
a. 用户登录/注销
判断哪个用户尝试进行登录,分析被控制用户的使用情况
b. 远程访问(RDP)
c. 无线网络接入
①相关概念
- 分析系统访问过那些关联的无线网络、VPN等
- 日志位置:Microsoft-Windows-NetworkProfile-Operational
- 从vista及2008引入了WLAN-AutoConfig日志
②事件ID
| 事件ID | 说明 |
| —— | ———- |
| 10000 | 网络已连接 |
| 10001 | 网络已断开 |
d. USB移动介质
①相关概念
- 分析那些硬件设备什么时候安装到系统中
②事件ID
| 事件ID | 说明 |
| ———– | ————————– |
| 20001&20003 | 即插即用驱动安装(系统日志) |
| 4663 | 移动设备访问成功(安全日志) |
| 4656 | 移动设备访问失败(安全日志) |
③日志位置
| 描述 | 位置 |
| ————- | ———————————- |
| 注册表 | UserPnP/DeviceInstall |
| WinXP/Win2003 | c:\\Windows\Setupapi.log
|
| Win7以上 | c:\\Windows\INF\setupapi.dev.log
|
(7). 分析工具
a. Microsoft LogParser
- https://www.microsoft.com/en-us/download/details.aspx?id=24659
- 通过
Win+R
运行窗口打开
①语法
- -i:指定文件类型
- -o:输出方式
- EXTRACT_TOKEN()函数
②使用
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM C:\security.evtx where EventID=4624"
b. Event Log Explorer
- https://event-log-explorer.en.softonic.com/
3. IIS日志
4. FTP日志
5. 数据库日志
6. 邮件服务日志
二、Linux日志
1. 分类
默认日志位置:
/var/log
(1). 内核及系统日志
- 由系统服务rsyslog统一管理,日志格式基本相似,默认日志守护进程为rsyslog
a. 系统日志
- 主要程序:
/sbin/rsyslog
- 主配置文件:
/etc/rsyrslog.conf
、/etc/rsyslog.d
b. 内核日志
(2). 用户日志
- 记录系统用户登录及退出系统的相关信息
(3). 程序日志
- 由相应的应用程序进行独立管理,如:web服务、ftp服务
2. 日志信息
(1). 优先级
(2). 日志类型
3. 常见日志
(1). 日志文件
(2). 分类
a. 用户最后一次信息
①默认日志位置
/var/log/lastlog
②命令查看
lastlog
b. 登录用户信息
①默认日志位置
/var/log/utmp
②命令查看
who #访问utmp记录,显示当前正在登陆的用户信息
w #显示的信息更详细
c. 所有登录用户信息
①默认日志位置
/var/log/wtmp
②命令查看
last #显示自文件第一次创建以来所有登录过的用户
ac #统计登录的总时长
ac [用户名] #统计某用户登录的总时长
d. 登录失败
①默认日志位置
/var/log/btmp
②命令查看
lastb #记录登录失败的用户名、时间以及远程IP地址
e. 系统日志信息
①默认日志位置
/var/log/messages
②命令查看
- 查看入侵用户的企图或成功入侵的信息,具体包括:时间、地点、任务、事件等等
#记录内核信息、各种服务的公共消息、报错信息等
egrep -ri 'error|warn' /var/log/messages
f. 安全日志
①默认日志位置
/var/log/secure
②命令查看
- 记录安全相关的信息,比如哪些用户登录服务器的相关信息,sshd会将失败登录的信息记录在这里
- 如果该文件很大,说明有人在破解root用户密码
cat /var/log/secure
g. 系统启动日志
①默认日志位置
/var/log/boot.log
②命令查看
- 可以查看服务启动成功或失败相关信息
cat /var/log/boot.log
4. 分析技巧
默认日志位置:
/var/log/secure
定位有多少IP在爆破主机的root账号
grep "Failed password for root" /var/log/secure | awk '{print $11}'|sort|uniq -c|sort -nr|more
定位有哪些IP在爆破
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" | uniq -c
爆破用户名字典是什么
grep "Failed password" /var/log/secure | perl -e 'while($_=<>){/for.(.*?) from/; print "$1\n";}' | uniq -c | sort -nr
定位有多少IP在爆破成功主机的root账号
grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破成功
grep "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
三、中间件日志分析
1. 关键点
- 对访问时间进行统计,可以得到服务器在某些时间段的访问情况
- 对IP进行统计,可以得到用户的分布情况
- 对请求URL的统计,可以得到网站页面关注情况
- 对错误请求的统计,可以更正有问题的页面
2. Apache
(1). 日志格式
a. 默认存放位置
| 系统 | 存放位置 |
| ——- | —————————- |
| Windows | Apache安装目录的logs子目录中 |
| Linux | /usr/local/apache/logs |
b. 日志类型
①访问日志
②错误日志
③传输日志
④Cookie日志
(2). 访问日志
access_log
,记录所有对apache服务器进行请求的访问
a. 格式
(3). 错误日志
error_log
,记录了服务器运行期间遇到的各种错误(至少warn等级)
a. 格式
(4). 日志分析
查看IP
cat access_log | awk '{print $1}'
显示访问前10位的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.108.1 | awk '{print $1"\t"$8"\t"$11}' | sort | uniq -c | sort -nr | more
查看最近访问量最高的文件
cat access_log | tail -n 10000 | awk '{print $7}' | sort | uniq -c | sort -nr | more
四、数据库日志分析
/var/run/mysqld/
1. 错误日志
- 定位mysql启动和运行中的一些问题
(1). 命令查看
#进入mysql命令行
show global variables like '%log_error%';
(2). 配置文件查看
#查找配置文件
cat my.cnf
2. 查询日志
- 记录增删改查信息,
默认关闭
(1). 命令查看
#进入mysql命令行
show variables like '%general_log%';
(2). 开启查询日志
#mysql命令行中
set global general_log = on;
3. 慢查询日志
- 记录
时间超过10s
的查询语句,精确到毫秒
(1). 命令查看
#mysql命令行中
show global variables like '%slow%';
(2). 格式
- 用户、查询耗时、sql语句、结果集数量
4. 二进制日志
- 也叫做变更日志,主要用于记录修改数据、有可能改变数据的mysql语句,以事件的形式保存
(1). 命令查看
#mysql命令行中
show variables like 'log_bin';
#查看某条bin-log语句
#语法
show binlog events [int 'log_file'] [from position] [limit,[offset],row_count]
#实例
show binlog events in 'mysql-bin.000001' from 106 limit 4\G;
show binlog events;
(2). 配置文件查看
#出现以下内容
server-id = 1
log-bin = mysql-bin #开启二进制日志