玄机——第一章应急响应-Linux日志分析

发布于:2025-07-03 ⋅ 阅读:(22) ⋅ 点赞:(0)

玄机——应急响应简单类题练习

第一章应急响应-Linux日志分析

步骤 #1

1.分析题目

有多少IP在爆破主机SSH的root帐号,如果有多个使用",“分割

  1. 日志中记录身份验证(登录、身份认证等等)的日志记录一般在/var/log/auth.log里面。

  2. 而IP尝试爆破主机SSH的root账户,经了解一般的SSH尝试登录的记录在/var/log/auth.log.1/里。

  3. 然后爆破是有多次失败的尝试,那么就要筛选出登录失败的日志条目,用grep的命令语句可以进行搜索。

  4. 找出这些日志条目之后就要提取出进行爆破的IP地址,经过搜索了解,SSH 登录失败日志中IP地址一般在第十一列,那么就可以用命令 awk '{print $11}'来进行提取。

2.解题

在log目录里面查看日志文件,输入命令

cd /var/log    #进入log文件夹
ls -l          #列出log文件夹中的日志文件

发现确实有auth.log以及auth.log.1的日志文件,那么对这些进行处理。
在这里插入图片描述

输入命令:

cat /var/log/auth.log.1 /var/log/auth.log| grep -a "Failed password for root" | awk '{print $11}' |sort | uniq -c | sort -nr
cat /var/log/auth.log.1 /var/log/auth.log        #获取这两个文件的内容
cat /var/log/auth.lo*                            #获取文件为/var/llog/auth.lo形式的文件
#两者作用在该题相同

grep -a 这个命令,即使文件中包含二进制数据(如压缩内容、特殊编码字符等),-a 也会强制 grep 逐行读取内容,而不会跳过或报错,比起直接用grep去搜要更精准一些。

uniq -c* uniq命令删去重复行,-c 计算每一行出现的次数。

sort -nr sort用于排序,-n 按照数值排序, -r降序排序。

在这里插入图片描述

那么按照题目要求的顺序,flag为 flag{192.168.200.2,19.168.200.31,192.168.200.32}

3.参考文章

玄机——第一章 应急响应-Linux日志分析 wp

步骤 #2

1.分析题目

SSH爆破成功登录的IP是多少,如果有多个使用”,“分割

  1. 还是SSH那么仍然在auth.log.1 auth.log文件中进行分析。

  2. 成功登陆,了解到成功登录的IP的日志中有"Accepted password for root" 的字眼,那么就可以用grep -a 的命令搜索这个字符串。

2.解题
#输入以下命令
zgrep -a "Accepted password for root" /var/lolg/auth.log.1 | awk '{print $11}' | sort | uniq -c | sort -nr

zgrep -a 这个一般用于auth.log.1, 因为这个日志文件有时会是压缩文件的格式,而这个命令可以打开这个格式的文件。

在这里插入图片描述

那么flag为 flag{192.168.200.2}

3.参考文章

玄机——第一章 应急响应-Linux日志分析 wp

步骤 #3

爆破用户名字典是什么?如果有多个使用","分割

1.分析题目

爆破用户名字典是什么?如果有多个使用,分割

  1. 爆破用户名字典 查找发现是攻击者用来尝试登录系统的用户名列表,通常与密码字典配合使用。一个典型的SSH失败登录日志条目,如May 15 10:23:45 server sshd[1234]: Failed password for invalid_user from 192.168.1.100 port 54322 ssh2,它的用户名是位于for 和 from之间,那么可以根据这个特点从for 和from之间提取用户名。
2.解题

第一种

zgrep -a "Failed password" /var/log/auth.log.1 | grep -o 'for .* from' | uniq -c | sort -nr

grep -o 'for .* from' 用来提取包含"for"和"from"的片段

第二种

zgrep -a "Failed password" /var/log/auth.log.1 |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

用Perl脚本从每一行提取出失败登录尝试的用户名

while($_=<>) 逐行读取;

/for(.*?) from/; print "$1\n";}' 对每一行进行正则匹配并输出结果

在这里插入图片描述

则flag为 flag{user,hello,root,test3,test2.test1}

参考文章

玄机——第一章 应急响应-Linux日志分析 wp

步骤 #4

1.分析题目

成功登录 root 用户的 IP 一共爆破了多少次

  1. 成功登录,那么含有"Accepted password"的字眼
  2. 对IP进行去重
2.解题

结合步骤1和步骤2

cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr                 

在这里插入图片描述

则flag为 flag{4}

步骤 #5

1.分析题目

黑客登陆主机后新建了一个后门用户,用户名是多少

  1. 又是进行主机登录那么还是和auth.log和auth.log.1有关
  2. 新建用户,查找发现新建用户常用useradd,那么就查找相关字符
2.解题
zgrep -a "useradd" /var/log/auth.log.1 | uniq -c | sort -nr

在这里插入图片描述

然后发现最后面的用户名text2很明显就是后门用户

则flag为 flag{text2}


网站公告

今日签到

点亮在社区的每一天
去签到