当前位置: 首页 > news >正文

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

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

第一章应急响应-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}

http://www.lqws.cn/news/594487.html

相关文章:

  • AILiquid线上AMA首秀,全链AI驱动的去中心化合约平台引发关注
  • 【项目笔记】高并发内存池项目剖析(二)
  • npm list的使用方法详细介绍
  • 【开源项目】一款真正可修改视频MD5工具视频质量不损失
  • uniapp+vue写小程序页面,实现一张图片默认放大后,可以在容器内上下左右拖动查看
  • 前端第二节(Vue)
  • 【实战】 容器中Spring boot项目 Graphics2D 画图中文乱码解决方案
  • anchor 智能合约案例3 之 journal
  • Docker进阶命令与参数——AI教你学Docker
  • 想做跑腿配送生意,怎么第三方平台订单对接?
  • MCU、LIN收发器、LIN总线、节点,它们之间是如何协作的?
  • SVN 分支管理(本文以Unity项目为例)
  • 以下是 Kafka 不同认证方式的配置示例,结合前面的单表设计方案,展示如何为每种认证方式填充配置表
  • 【Go-选项模式】
  • Spring Boot 2 多模块项目中配置文件的加载顺序
  • 2025年主流大厂Java后端面试题主题深度解析
  • 【深度学习新浪潮】人工智能在文物考古领域有哪些最新研究进展?
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的流量转化与价值沉淀研究
  • 借助飞算AI新手小白快速入门Java实操记录
  • AbMole| H₂DCFDA(M9096;活性氧(ROS)探针)
  • C#基础(DllImport)
  • CppCon 2018 学习:Better C++ using Machine Learning on Large Projects
  • [Python 基础课程]字符串
  • Tomcat9部署jsp产生错误FileCountLimitExceededException
  • 网络安全监测探针功能
  • Python 数据分析:DataFrame,生成,用字典创建 DataFrame ,键值对数量不一样怎么办?
  • python+uniapp基于微信小程序的PS社区系统
  • 基于3D卷积神经网络与多模态信息融合的医学影像肿瘤分类与可视化分析
  • JVM调优实战 Day 15:云原生环境下的JVM配置
  • Go 服务如何“主动”通知用户?SSE广播与断线重连实战