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

简介

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

linux日志

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)。

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

打开题目使用Xshell连接
问题是有多少ip在爆破主机,一般ssh登录记录在/var/log目录
使用cd命令切换到/var/log目录下

cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more
命令解释
  cat auth.log.1
    查看日志文件auth.log.1
  grep -a "Failed password for root"
    在日志文件中匹配使用密码登录失败的用户
    -a 将二进制文件当作文本文件处理
  awk '{print $11}'
    标准日志输出中,IP地址在第11位字符
  sort
    排序
  uniq -c
    去重,并且统计每个IP出现的次数,uniq只处理相邻行,使用前要先 sort
  sort -nr
    再次排序
    -n 选项表示按数值进行排序。
    -r 使用降序排序
  more
    分页,防止过长

22624bb3468d7de0473a73e0da66306e
db49765d3792684eaf98abc440342693

flag{192.168.200.2,192.168.200.31,192.168.200.32}

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

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

6915a557c9c656b847526e1fde94d6f9

命令解释
  grep -a "Accepted "
    搜索成功认证记录

在Linux系统的认证日志(例如auth.log)中,"Accepted"这个词通常用来标识成功的登录尝试。
当一个用户或者系统通过认证机制成功登录时,相关的日志条目会包含"Accepted"这个词。这包括通过SSH、FTP、sudo等方式的成功登录。

flag{192.168.200.2}

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

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地址,统计每个用户名的失败尝试次数,并按照次数降序排列显示结果。

命令解释
  "Failed password":搜索包含密码失败字符串的行
perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'
  perl -e
    执行代码
  while($_=<>)
    从每一行执行
  /for(.*?) from/;
    使用正则匹配,匹配for和from之间的项,即用户名
  print "$1\n";
    输出

b42f912db0abd178448956cb8033dccb

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

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

与第一问类似,因为第一问已经统计过了
db49765d3792684eaf98abc440342693

flag{4}

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

同样的,需要在auth.log.1文件中寻找

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

直接在文件中搜索新用户创建的记录
ce46f220d9fc5fd2c615ada4c1dc174f

posted @ 2025-10-13 22:04  云臣  阅读(51)  评论(0)    收藏  举报