LOADING

加载过慢请开启缓存 浏览器默认开启

玄机--第一章-liunx日志分析

[TOC]

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

1.有多少IP在爆破主机ssh的root帐号,如果有多个使用”,”分割

首先肯定是先找到日志的位置,一般来说,SSH登录尝试会记录在 /var/log/auth.log.1

  • 使用grep筛选出SSH失败的登录尝试: 我们需要筛选出涉及到root帐号的SSH失败登录尝试的日志条目。

最后;

  • 提取IP地址: 从这些日志条目中提取尝试登录的IP地址。
  • 统计各个IP地址的尝试次数: 统计每个IP地址的尝试次数,找出所有尝试暴力破解的IP。

逻辑基本就是上面这样,如果日志少一些那还好,可以一条条进行分析,日志多的话那可能还要进行筛选

1
cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more
  • auth.log.1 文件中筛选出所有尝试登录root用户失败的条目。
  • 提取这些条目中的IP地址(假设IP地址是日志行中的第11个字段)。
  • 对IP地址进行排序和去重,并统计每个IP地址的尝试次数。
  • 将结果按尝试次数降序排序,并分页显示。

flag{192.168.200.2,192.168.200.31,192.168.200.32}

image-20241123230256267

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

1
cat auth.log.1 | grep -a "Accepted " | awk '{print $11}' | sort | uniq -c | sort -nr | more

简单来说就是分析auth.log.1日志文件,提取出所有包含”Accepted “字符串的行(登录成功),然后使用awk命令提取每行的第11个字段(通常这个字段表示远程IP地址),之后对这些IP地址进行降序排序和统计,最后按照数量的降序排列,并通过more命令分页显示结果。

flag{192.168.200.2}

image-20241123230320861

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

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

这个命令链的主要作用是分析auth.log.1文件,提取出所有包含”Failed password”字符串的行,这通常表明有失败的登录尝试。然后,它使用Perl脚本提取出失败尝试的用户名和来源IP地址,统计每个用户名的失败尝试次数,并按照次数降序排列显示结果。

perl -e ‘while($_=<>){ /for(.*?) from/; print “$1\n”;}’:

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

  • while($_=<>):逐行读取输入。

  • /for(.*?) from/:使用正则表达式匹配模式“for [username] from”,其中[username]是登录尝试的用户名。

  • print “$1\n”:将提取的用户名打印出来。

uniq -c:

  • 作用:对提取出的用户名进行去重并计数。每个唯一的用户名会与其出现的次数一起输出。
  • -c选项:在每个唯一项的前面显示出现次数。

image-20241123230450681

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

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

这个就更简单了,其实也和上面第一题重复了,因为问题问:有多少IP在爆破主机ssh的root账号?这里又问成功登录 root 用户的 ip 一共爆破了多少次?而且前面我们在统计IP的时候就已经顺便把次数统计出来了,所以PASS,这里没什么好说的;

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

image-20241120113132180

flag{4}

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

步骤一:确定日志文件

通常与用户登录和用户管理活动相关的日志文件是 /var/log/auth.log 或其备份文件如 /var/log/auth.log.1

步骤2:搜索创建用户的关键字

cat /var/log/auth.log.1 | grep -a “new user”

步骤3:提取新用户信息

从日志中提取新用户的详细信息,包括用户名、创建时间等。

例如,假设你得到了如下输出:

1
Jan 12 10:32:15 server useradd[1234]: new user: name=testuser, UID=1001, GID=1001, home=/home/testuser, shell=/bin/bash

这条日志显示了创建的新用户 testuser。
步骤4:分析执行上下文

确认新用户的创建是否由合法用户执行,或是否有可疑的远程登录记录。

可以使用以下命令查找所有用户登录的情况,以确定是否有可疑的登录行为:

1
grep "Accepted" /var/log/auth.log.1

对于本题

直接登/etc/passwd看,发现是test2,直接找也可以

1
cat auth.log.1|grep -a "new user"

输出

image-20241123230608549

flag就是

1
flag{test2}

常见日志文件

Linux系统中的日志文件通常存储在 /var/log 目录下,常见的日志文件包括:

/var/log/syslog:记录系统的各种信息和错误。
/var/log/auth.log:记录身份验证相关的信息,如登录和认证失败。
/var/log/kern.log:记录内核生成的日志信息。
/var/log/dmesg:记录系统启动时内核产生的消息。
/var/log/boot.log:记录系统启动过程中的消息。
/var/log/messages:记录系统的广泛消息,包括启动和应用程序信息。
/var/log/secure:记录安全相关的消息。
/var/log/httpd/:记录Apache HTTP服务器的访问和错误日志(若安装了Apache)。
/var/log/nginx/:记录Nginx服务器的访问和错误日志(若安装了Nginx)。