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

linux · 浏览次数 : 7

小编点评

前言: 本次实验的目标是分析一个系统的安全性,特别是针对SSH登录尝试和账户操作。为了达到这个目标,我们将分析`/var/log/auth.log`文件,以了解系统在一段时间内发生的登录尝试、成功和失败。 步骤1:统计尝试破解root账号的IP地址 要统计尝试破解root账号的IP地址,我们需要过滤出`/var/log/auth.log`文件中与失败登录尝试相关的条目。我们可以使用`grep`命令来查找包含“Failed password for root”的行,然后使用`awk`命令提取出IP地址,并使用`sort`和`uniq`命令对这些IP地址进行排序和去重。 步骤2:找出成功登录的IP地址 要找出成功登录的IP地址,我们需要过滤出`/var/log/auth.log`文件中与成功登录尝试相关的条目。我们可以使用`grep`命令来查找包含“Accepted”的行,然后使用`awk`命令提取出IP地址。 步骤3:获取爆破用户名字典 要获取爆破用户名字典,我们需要从`/var/log/auth.log`文件中提取出与无效登录尝试相关的条目。我们可以使用`grep`命令来查找包含“Failed password”和“invalid user”的行,然后使用`perl`命令来提取出用户名。 步骤4:统计成功登录的IP地址数量 要统计成功登录的IP地址数量,我们可以使用`grep`命令来查找包含成功登录尝试的条目,然后使用`awk`命令提取出IP地址,并使用`uniq -c`命令对这些IP地址进行去重和计数。 步骤5:发现并记录新建的后门用户 要发现并记录新建的后门用户,我们需要从`/var/log/auth.log`文件中提取出与创建新用户相关的条目。我们可以使用`grep`命令来查找包含“net user”命令的行,然后使用`awk`命令提取出用户名。 总结: 通过分析`/var/log/auth.log`文件,我们了解了系统的登录尝试、成功和失败情况,以及系统执行的账户操作。我们还发现了新建的后门用户。这次分析让我们更加了解日志文件的重要性和如何使用Linux命令来处理和分析日志。

正文

前言

又花了一块rmb玩玄机。。。啥时候才能5金币拿下一个应急靶机,只能说功底还没到家,唯有继续加油了。。。

简介

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

应急开始

准备工作

下面我遇到比较多的且比较重要的都加深颜色了,其实都很重要,只是作者还没碰到过。

日志文件 说明
/var/log/cron 记录了系统定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog 记录邮件信息
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/auth.log 注明:这个有的Linux系统有,有的Linux系统没有,一般都是/var/log/secure文件来记录居多

查看auth.log文件

这里着重了解一下auth.log,因为这个文件给我坑了。。。


  • auth.log文件在本题目中存储了:
    登录成功和失败的信息,即认证过程,还有登录成功后系统账户的活动动作,比如添加用户等等(总之这一个文件就包含了我们整个做题的过程)

  • auth.log 文件主要存储与系统认证和授权相关的日志信息。具体内容包括但不限于以下几类信息:

    • 1:登录和注销活动:
      成功和失败的登录尝试
      用户注销事件

    • 2:认证过程:
      SSH 登录尝试(成功和失败)
      本地控制台登录
      Sudo 提权事件(成功和失败)

    • 3:安全事件:
      无效的登录尝试
      错误的密码输入
      锁定和解锁屏幕事件

    • 4:系统账户活动:
      用户添加、删除和修改
      组添加、删除和修改

    • 5:PAM(Pluggable Authentication Modules)相关信息:
      各种 PAM 模块的日志输出,包括认证和会话管理

grep -a

注意,这个也把我坑了!!!
选项通常是为了处理可能包含二进制数据的文件,将它们视为文本文件进行处理,那么也就是说如果你直接cat 该文件没问题,但是你需要对cat出来的文件内容进行处理的话就会报二进制错误,那么也就是说该文件中存在二进制数据的。
为什么会存在二进制数据??可能就是为了坑你,而且我也学到了使用-a这个参数能够避免二进制查看报错。

步骤 1

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

刚刚已经讲过我被文件坑了,想必如果在不知道auth.log是日志文件的情况下,大家应该会去找 /var/log/secure 这个文件吧。。。
ok ,我们现在明确了ssh爆破的日志记录都在auth.log中 (他这里又一个auth.log.1,查看了一下估计就是备份文件了,那我们这里就是用备份文件
命令: cat /var/log/auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort -n | uniq -c'

  • 解释:
    grep -a "Failed password for root"是过滤出来登录失败的记录
    awk '{print $11}'是将失败每条记录中的ip提取出来(这里就是经验多了就知道,或者你自己慢慢调试,看是第几列就打印第几列)
    sort -n是将ip进行排序,-n其实你加不加无所谓,反正你调试对了就行,我这个就是加-n就能从小到大排序。
    uniq -c就是去重且打印重复次数

  • flag为:
    flag{192.168.200.2,192.168.200.31,192.168.200.32}
    在这里插入图片描述

步骤 2

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

命令: grep -a "Accepted " /var/log/auth.log.1 | awk '{print $11}' | uniq -c

  • 解释
    grep -a "Accepted "就是过滤登录成功的记录
    awk '{print $11}' 获取登录ip
    uniq -c 去重

  • flag为:
    flag{192.168.200.2}
    在这里插入图片描述

步骤 3

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

  • 错误示范:
    这里本人仅仅打印了第九列,这里其实是不对的,因为无效用户名会导致他出现invalid user xxxx,其实xxxx才是我们要的用户名,所以我下面这种方式就没有不同的用户名都列出来。
    在这里插入图片描述

  • 正确方式:
    这里用到了perl语言,我还没搞懂就不解释了,原理肯定是我想的那样,就是涉及到知识盲区了而已。
    命令: cat /var/log/auth.log.1 | grep -a "Failed password" |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

  • flag为:
    flag{root,user,hello,test3,test2,test1}
    在这里插入图片描述

步骤 4

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

  • 我们已知成功登录root的ip地址是:flag{192.168.200.2}
    命令: grep -a "192.168.200.2" /var/log/auth.log.1 | grep -a 'Failed password root' | awk '{print $11}' | uniq -c

  • flag为:
    flag{4}
    在这里插入图片描述

步骤 5

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

由于我们现在已经知道了auth.log文件能够记录系统账户活动,那我们直接grep该文件即可,添加用户的命令是net user

  • 筛选 net user命令即可
    命令: grep -a 'net user' /var/log/auth.log.1

  • flag为:
    flag{test2}
    在这里插入图片描述

总结


成果:
flag{192.168.200.2,192.168.200.31,192.168.200.32}
flag{192.168.200.2}
flag{root,user,hello,test3,test2,test1}
flag{4}
flag{test2}


通过这日志分析题,了解到了日志文件其实还有一个auth.log的文件日志,不仅仅能够记录认证过程,还能知道系统账户执行了哪些账户操作,还有其他记录类型。
需要注意的是,该文件可能包含一些二进制内容,所以我们grep的时候需要用-a参数进行过滤操作,否则会报错。
总体体验还是挺好的,第二次因为grep报错原因浪费掉了好多时间,差几分钟就要重开第三次,玩的就是心跳啊。。。

与玄机-第一章 应急响应-Linux日志分析相似的内容:

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

前言 又花了一块rmb玩玄机。。。啥时候才能5金币拿下一个应急靶机,只能说功底还没到家,唯有继续加油了。。。 简介 账号root密码linuxrz ssh root@IP 1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割 2.ssh爆破成功登陆的IP是多少,如果有多个使用","...

玄机-第一章 应急响应- Linux入侵排查

玄机-第一章 应急响应- Linux入侵排查 简介 账号:root 密码:linuxruqin ssh root@IP 1.web目录存在木马,请找到木马的密码提交 2.服务器疑似存在不死马,请找到不死马的密码提交 3.不死马是通过哪个文件生成的,请提交文件名 4.黑客留下了木马文件,请找出黑客的服...

玄机-第二章日志分析-mysql应急响应

玄机-第二章日志分析-mysql应急响应 mysql应急响应 ssh账号 root 密码 xjmysql ssh root@env.xj.edisec.net -p 端口号 1.黑客第一次写入的shell flag{关键字符串} 2.黑客反弹shell的ip flag{ip} 3.黑客提权文件...

玄机-第二章日志分析-apache日志分析

玄机-第二章日志分析-apache日志分析 简介 账号密码 root apacherizhi ssh root@IP 1、提交当天访问次数最多的IP,即黑客IP: 2、黑客使用的浏览器指纹是什么,提交指纹的md5: 3、查看index.php页面被访问的次数,提交次数: 4、查看黑客IP访问了多少次...

[转帖]玄铁C910微架构学习(11)——缓存系统的数据预取技术

玄铁C910微架构学习(11)——缓存系统的数据预取技术 https://zhuanlan.zhihu.com/p/487605742 一、源码中的数据预取部分的文件结构 二、全局预取模式 2.1产生步幅的整体控制逻辑 2.2 步幅的计算 2.3 步幅的检查 2.4 监视步幅,动态调整预取的开始和停

[转帖]玄铁C910微架构学习(2)——指令高速缓存

https://www.zhihu.com/people/kent-35-40/posts ​ 目录 收起 一、指令提取单元简介 二、指令高速缓存源码的文件结构 三、指令高速缓存的组成 data_array tag_array predecd_array 四、指令高速缓存的回填 五、扩展的指令缓存操

算法学习笔记(14): 字符串哈希

# 字符串Hash > 哈希是一个玄学的方法……最适骗分法 哈希,指将信息通过某种方式的缩减,映射到某一个值域上,从而表示这个信息。 如果有两个信息同时映射到了同一个位置,那么就会产生**哈希冲突**。 **哈希冲突**在哈希表中有两种处理方式: - 链表 - 质数后移(向后移动质数位,知道找到一个

买条新内存给台式机扩容,没想到出现玄学花屏

背景 我目前的配置是i5-8400,16G内存(两条威刚8G 2400) 然后在日常使用中,16G内存已经捉襟见肘了,无论是Android开发还是后端开发,每次编译都卡得很 正好双十一,就想着买条16G内存来扩容,组个32G的双通道。 某东看了一圈,2400的16G内存基本绝迹了,只能选择2666的