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

题目地址:第一章 应急响应-Linux日志分析 · 玄机 - EDISEC

本次靶场要求提供的flag如下:

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

Flag1

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

首先查看日志,找到和认证相关的日志

image.png
查看认证日志信息,搜索有没有爆破root账号的日志

cat /var/log/auth.log.1

image.png
提取其中一条爆破失败的日志信息

Aug  1 07:47:22 linux-rz sshd[7503]: Failed password for root from 192.168.200.2 port 46647 ssh2

构造一条语句快速提取爆破root密码的去重IP地址

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

image.png
拼接成Flag的格式并提交

flag{192.168.200.2,192.168.200.31,192.168.200.32}

Flag2

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

依然是auth.log.1文件,提取登录成功的日志信息

Aug  1 07:47:23 linux-rz sshd[7505]: Accepted password for root from 192.168.200.2 port 46563 ssh2

修改匹配语句,提取IP地址

grep -a "Accepted password for root" /var/log/auth.log.1 | awk '{print $11}'| sort | uniq

发现只有一个IP爆破成功,得到flag

flag{192.168.200.2}

Flag3

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

首先提取一条爆破用户名的日志

Aug  1 07:47:00 linux-rz sshd[7489]: Invalid user hello from 192.168.200.2 port 37653

然后通过指令查询爆破的用户名,指令我没写的太复杂

grep -a "Failed password for" /var/log/auth.log.1 | awk '{print $9, $10, $11}' | uniq

image.png
通过手动拼接获取到了爆破的用户名,构成flag提交发现不对,然后还试了是不是对爆破的IP也有要求,又分别构造了几条试了也都不对

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

最后看了下别人的题解,要求是要统计重复次数并且按照重复次数进行降序排序,我的评价是多此一举,这个答案设计的有点死板

grep -a "Failed password for" /var/log/auth.log.1 | awk '{print $9, $10, $11}' | uniq -c |sort -nr

image.png
最后按降序排序结果得到flag

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

Flag4

登录成功的IP共爆破了多少次?

最开始没理解意思,以为是要获取登录成功的IP192.168.200.2总的爆破次数,统计出来结果是19

grep -a "Failed password for" /var/log/auth.log.1 | grep -a "192.168.200.2"| wc -l

image.png
后面发现不对,看了下别人的题解说是要获取“登录成功的IP共爆破了root用户多少次?”,修改了一下语法查出来是4次

grep -a "Failed password for root" /var/log/auth.log.1 | grep -a "192.168.200.2"| wc -l

image.png
好好好,隐藏条件不说全是吧,最后得到flag

flag{4}

Flag5

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

直接通过指令查看新建了哪些用户,可以看到有两个用户新增

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

image.png
两个用户名都提交测试了下,正确的后门用户是test2

flag{test2}

说实话有点费解,看了日志感觉debian用户的操作更加可疑一点,下面简单的倒推一下

首先根据日志格式,可以知道爆破root并登录成功时对应的主机名为linux-rz,而新增用户名操作对应的主机名也是linux-rz,并且是登陆后随后进行的操作,说明是用的黑客登录成功的Session进行的新增后门用户操作,登录环境没变

image.png
而新增用户debian操作换了个主机环境,变成了ip-172-31-37-190,并且是在之前的Session退出后操作的,应该是靶场搭建人员做的维护

image.png
最后还有个ip-10-0-10-9的主机名,看了下对应的是我打靶场用的远程登录环境

image.png

### Linux应急处理 第一章 内容 #### 1. 环境介绍 在进行Linux应急响应时,首先要确认当前系统的环境。对于Debian系统而言,可以通过命令`lsb_release -a`来查看发行版的具体信息[^1]。 ```bash root@ip-10-0-10-2:~# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster ``` #### 2. 日志分析基础 日志文件是应急响应中的重要资源之一,在Linux系统中尤其如此。除了常见的syslog外,还存在专门用于记录认证事件的日志文件——`/var/log/auth.log`。此文件不仅限于保存用户的登录尝试情况,还包括了更多类型的账户活动详情[^2]。 为了防止因二进制数据导致的错误输出,在使用工具如`grep`读取这些特殊格式的日志条目时应加上选项`-a`以确保正常解析文本内容: ```bash cat /var/log/auth.log | grep -a "关键词" ``` #### 3. 安全审计案例研究 针对特定场景下的安全审查工作,比如检测是否存在暴力破解攻击行为,则可以利用shell脚本组合多个命令实现自动化统计功能。例如计算某个时间段内成功登陆次数最多的IP地址及其对应的访问频率: ```bash cat /var/log/auth.log* | grep -a "Accepted" | awk '{print $11}' | sort -nr | uniq -c ``` 上述指令将会筛选出所有成功的SSH连接请求,并按照远程主机名或公网IPv4地址分组计数显示出来[^4]。 #### 4. 实战练习提示 当面对实际问题时,可能会遇到各种意外状况,像之前提到过的由于未正确设置参数而引起的程序异常终止等问题都属于常见挑战的一部分。因此建议读者多加实践并熟悉常用调试技巧,以便能够在真实环境中快速定位并解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值