前言

又花了一块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日志分析的更多相关文章

  1. 《Unix/Linux日志分析与流量监控》书稿完成

    <Unix/Linux日志分析与流量监控>书稿完成 近日,历时3年创作的75万字书稿已完成,本书紧紧围绕网络安全的主题,对各种Unix/Linux系统及网络服务日志进行了全面系统的讲解,从 ...

  2. 有关linux日志分析的详细介绍

    linux的日志文件可以帮助我们了解系统所处的状态,比如查出哪些用户有登入,及其它安全相关的一些问题. linux下的日志分析. 以下内容,部分参考了:探讨 linux 日志分析 这篇文章. 1.了解 ...

  3. Linux 日志分析工具(logwatch)安装及使用

    Linux 日志分析工具(logwatch)安装及使用 日志是非常重要的系统文件,管理员每天的重要工作就是分析和查看服务器的日志,判断服务器的健康状态.但是日志管理又是一项非常枯燥的工作,如果需要管理 ...

  4. Linux日志分析ELK环境搭建

    场景:ELK作为一个日志收集和检索系统,感觉功能还是相当的强大的. ELK是啥, 其实是是三个组件的缩写, 分别是elasticsearch, logstash, kibana. ELK平台可以用于实 ...

  5. Linux 日志分析工具之awstats

    一.awstats 是什么 官方网站:AWStats is a free powerful and featureful tool that generates advanced web, strea ...

  6. Linux日志分析的实战专题

      来自 日志也是用户应该注意的地方之一.不要低估日志文件对网络安全的重要作用,因为日志文件能够详细记录系统每天发生的各种各样的事件.用户可以通过日志文件 检查错误产生的原因,或者在受到攻击和黑客入侵 ...

  7. Linux日志分析和管理

    目录 日志的作用.分类.管理.轮转和级别 rsyslog服务 Journal守护进程 /var/log下相关的日志文件 日志服务器的建立 日志的作用.分类.管理.轮转和级别 日志的作用: 用于记录系统 ...

  8. Linux 日志分析脚本

    #### 以下代码,若出现无法使用,请根据底下图片,更改参数.根据 apache 日志格式修改 查看 apache 进程ps aux | grep httpd | grep -v grep | wc ...

  9. linux日志分析

    转一位大神的笔记. 日志管理: 1.基于服务的 2.基于时间的 /var/log/wtmp,/var/run/utmp,/var/log/lastlog(lastlog),/var/log/btmp( ...

  10. Linux 日志分析

    学会查看日志文件是一件很有意义的事,因为在Linux系统中运行的程序通常会把一些系统消息和错误消息写入对应的日志中,若是一旦出现问题,我们就可以通过查看日志来迅速定位,及时解决故障. 日志的三种类型 ...

随机推荐

  1. C 语言编程 — 高级数据类型 — 枚举

    目录 文章目录 目录 前文列表 声明枚举类型 定义枚举类型的变量 枚举类型变量的枚举值 枚举在 switch 语句中的使用 将整型转换为枚举类型 前文列表 <程序编译流程与 GCC 编译器> ...

  2. ZDOCK3.02安装及注意事项:基于Linux Ubuntu系统操作

    cd zdock3.0.2_linux_x64代码mark_sur model2choose.pdb model2choose_m.pdbmark_sur 1bqi2.pdb 1bqi2_m.pdbz ...

  3. 010. Jenkins安装与插件管理

    jenkins安装 要求安装环境: 内存: 1G以上 cpu: 1核以上 1. 环境准备: 10.0.0.65 jenkins 10.0.0.66 gitlab 官方安装文档: https://jen ...

  4. 安装centos7模板机[lvm版]

    1. 安装centos 7模板机 准备好centos7的镜像 下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/ 安装centos 自定义硬件: ...

  5. k8s中查看pod的yaml文件的案例

    在Kubernetes (K8s) 中,Pod 的 YAML 文件定义了 Pod 的配置和规格.当你想要查看 Pod 的 YAML 文件参数参考时,通常是为了了解可以配置哪些字段以及这些字段的含义. ...

  6. Java中对的创建与引用

    对象与引用 Java语言中除了基本数据类型以外都属于引用类型 Java中的对象是通过引用对其操作的 class Car{ String name; String color; int price; } ...

  7. c# 语音识别 | 智能对话

    在.NET4.0中,我可以借助System.Speech组件让电脑来识别我们的声音. 以上,当我说"name",显示"Darren",我说"age&q ...

  8. 【简写Mybatis-02】注册机的实现以及SqlSession处理

    前言 注意: 学习源码一定一定不要太关注代码的编写,而是注意代码实现思想: 通过设问方式来体现代码中的思想:方法:5W+1H 源代码: https://gitee.com/xbhog/mybatis- ...

  9. 已将此(这些)订阅标记为不活动,必须将其重新初始化。需要删除 NoSync 订阅,然后重

    已将此(这些)订阅标记为不活动,必须将其重新初始化.需要删除 NoSync 订阅,然后重 查找状态不正常的发布 use distribution go select status,*from dbo. ...

  10. C#.NET 不可见字符DEL

    不可见字符DEL .空格.替换掉. 签名时遇到了客户端发过来的数据包含一个DEL.Notepad++ 里显示为DEL. 包含这个字符签名给上游,就会报错:签名错误. 得想办法replace掉.目前方案 ...