应急响应:日志分析
记一下之前打玄机靶场学到的东西
日志文件:
apache日志:/var/log/apache2/access.log
但是由于日志轮替的存在,access.log是最新的日志,可能内容较少,上一个日志的内容在access.log.1
系统日志:/var/log
/auth.log登录和认证的日志
/messages系统启动和服务日志
/dmesg内核消息
/kern.log检查计划任务
/daemon用户(组)的变动
注:查log如果只有当前账户的log的话一定要检查.log.1文件!
使用工具简化搜索过程:
apache日志审查:
检查访问最多次数的IP:
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -1
1. awk '{print $1}' /var/log/apache2/access.log:
○ awk 是一个文本处理工具,这里用来提取日志文件中每行的第一个字段(通常是 IP 地址)。
○ print $1 表示打印每行的第一个字段。
2. sort:
○ 将提取的 IP 地址进行排序。
3. uniq -c:
○ 统计排序后每个 IP 地址出现的次数。uniq -c 需要输入是有序的,所以前面用了 sort。
4. sort -nr:
○ 将统计结果按次数从大到小排序。-n 表示按数值排序,-r 表示逆序。
5. head -1:
○ 输出排序后结果的第一行,即访问次数最多的 IP 地址和对应的次数。
grep "/index.php" /var/log/apache2/access.log | wc -l
这里使用/index.php与index.php有区别,但是不知道区别在哪
1. wc -l:
a. wc:单词计数命令,用于统计字数、行数等。
b. -l:选项,表示统计行数
同理可以获得黑客访问的次数,这里仍有两种不同的命令,结果会产生微小的偏差
grep "要查的IP" /var/log/apache2/access.log.1 | wc
- grep "要查的IP" access.log.1 | cut -d' ' -f1 | sort | uniq -c
- cut -d' ' -f1:
○ 使用空格作为分隔符,提取每一行的第一个字段(通常是IP地址)。 - sort:
○ 对提取出的IP地址进行排序。 - uniq -c:
○ 统计每个唯一IP地址出现的次数。
- cut -d' ' -f1:
按照时间戳查找同理:
grep "03/Aug/2023:08" /var/log/apache2/access.log | cut -d' ' -f1 | sort | uniq -c | wc -l