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

1
2
3
4
5
6
7
账号root密码linuxrz
ssh root@IP
1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
3.爆破用户名字典是什么?如果有多个使用","分割
4.登陆成功的IP共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少

1.有多少IP在爆破主机ssh的root帐号,如果有多个使用”,”分割 小到大排序 例如flag{192.168.200.1,192.168.200.2}

flag{192.168.200.2,192.168.200.31,192.168.200.32}

首先进入/var/log下查看auth.log文件,发现并没有什么东西,只有一个登录成功的日志

image-20251003143339289

遂去查看auth.log.1,题目要求是爆破主机root账号的,直接过滤Failed password for root from即可

image-20251003141843676

lag要求是从小到大排序,故flag为flag{192.168.200.2,192.168.200.31,192.168.200.32}

2.ssh爆破成功登陆的IP是多少,如果有多个使用”,”分割

flag{192.168.200.2}

直接过滤Accepted即可

image-20251003141935245.png

1
flag{192.168.200.2}

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

flag{user,hello,root,test3,test2,test1}

直接过滤Failed password for invalid user并打印第11个字段,并稍作排序和去重,发现出来一个from,但用户名没出来,进一步扩大输出范围,是root

image-20251003142310488

但是这样的顺序是不对的,遂

image-20251003142411804

这个顺序对了

4.登陆成功的IP共爆破了多少次

flag{4}

image-20251003142526305

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

test2

image-20251003142601540

前置知识,但是在后边

image-20251003143939985

以下是这些日志的详情

文件/目录名 日志描述
alternatives.log 记录 update-alternatives 系统选择器的操作记录,用于管理默认应用程序。
amazon/ AWS 相关日志目录,如 EC2 实例元数据日志、CloudWatch agent 日志等。
apt/ apt 包管理器相关的操作日志,如安装、升级、移除包的详细记录。
auth.log 记录系统认证、授权、登录相关日志,如 sudossh 登录等。
aws114_ssm_agent_installation.log AWS SSM Agent 安装时生成的日志,跟踪安装过程。
bootstrap.log 系统首次安装或初始化过程中生成的日志。
btmp 记录失败的登录尝试(需使用 lastb 命令查看)。
cloud-init.log cloud-init 模块的初始化过程日志,常用于云主机自动化配置。
cloud-init-output.log cloud-init 执行的脚本输出日志。
daemon.log 守护进程日志,记录后台服务启动、运行、错误信息等。
debug 一般用于记录调试信息,若开启了调试日志级别,会写入此文件。
dpkg.log 记录使用 dpkg 命令安装/卸载软件包的日志。
faillog 记录失败登录尝试的计数(可用 faillog 命令查看)。
kern.log 记录内核产生的消息,如驱动加载错误、内核告警等。
lastlog 记录所有用户最近一次登录信息(可用 lastlog 命令查看)。
messages 包含系统启动和运行时的通用消息。
ntpstats/ 与 NTP(网络时间协议)相关的统计信息,记录时间同步情况。
private/ 某些服务专用的私有日志目录,权限受限(如 Postfix 等)。
syslog 系统日志文件,记录系统所有级别的日志信息(是 rsyslog 的主输出之一)。
user.log 记录用户级别的应用程序活动信息。
wtmp 记录登录会话信息(使用 last 命令查看登录历史)。

关于执行的grep命令和其他过滤命令

  • cat auth.log.1直接查看auth.log.1的内容,可能会输出大量的数据不方便我们查看

  • grep -a "Failed password for root"grep "Failed password for root"筛选所包含的字符串的行,-a是grep的一种搜索模式,表示将当前文件视作文本文件

  • awk '{print $11}',awk是一种强大的文本处理工具,主要用于匹配行特定模式的行、提取特定字段等''是为了防止{}、$被awk解析,{}用于包含代码块,其内若有多条语句,可用;分开,print是awk的内置函数,形同C语言的printf,$11表示当前行的第11个字段,在标准状况下,日志的第11个字段通常是IP

  • sort是排序,-r,-n是sort的模式,-r表示逆序,-n表示按照数值排序

  • uniq是Linux系统的一个文本处理工具,用于检测和过滤重复的连续行,通常与sort连用-c的全称是--count在输出每行内容时,添加该行在输入中出现的次数

  • more的效果跟cat差不多,但是是分页输出,能有效防止一次性输出过多内容

  • cat auth.log.1:读取日志文件。

  • grep -a "Failed password":筛选出所有 Failed password行(登录失败记录)。

  • grep -o 'for .* from':提取 for <username> from <IP>部分(如 for root from 192.168.1.1)。

  • uniq -c:统计相同行的出现次数(去重并计数)。

  • sort -nr:按计数降序排序(最多次数的排在最前)。