简介
账号root密码linuxrz
ssh root@IP
1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
3.爆破用户名字典是什么?如果有多个使用","分割
4.登陆成功的IP共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少
知识点
日志文件 是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)。
复现
连接靶机
flag 1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割
遇到这种问题我们首先要想到日志文件。通常上ssh登录的日志会储存在auth.log或备份文件(auth.log.1)里面
1.访问靶机的 var/log 目录 查找里面的日志文件
2.打开 auth.log.1 发现里面有很多的ssh登录日志
发现里面有很多日志 要进行筛选 发现 Failed password for root 为爆破root用户失败的特折
使用语句
cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more
命令分析
cat auth.log.1:
cat 命令用于显示 auth.log.1 文件的内容。
这里 auth.log.1 是一个日志文件,通常是系统日志的备份文件。
|:
管道符号,用于将前一个命令的输出作为下一个命令的输入。
grep -a "Failed password for root":
grep 命令用于在输入中搜索包含特定模式的行。
-a 选项表示将文件内容视为文本文件(此选项通常在处理二进制文件时使用,但对于纯文本文件,可以省略)。
"Failed password for root" 是搜索模式,即查找所有包含"Failed password for root"的行,这些行表示尝试登录root用户的失败尝试。
awk '{print $11}':
awk 是一个文本处理工具,用于按字段处理文本。
{print $11} 表示打印每行的第11个字段。假设日志格式为标准格式,第11个字段通常是IP地址。
sort:
sort 命令用于对输入行进行排序。
这里是对提取的IP地址进行排序。
uniq -c:
uniq 命令用于删除重复的行。
-c 选项表示对每个唯一的行计数,即统计每个IP地址的出现次数。
sort -nr:
sort 命令再次用于排序。
-n 选项表示按数值进行排序。
-r 选项表示按降序排序。
组合起来,即按出现次数从高到低排序。
more:
more 命令用于分页显示输出。
得到 爆破ip 提交flag
flag{192.168.200.2,192.168.200.31,192.168.200.32}
flag 2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
使用命令
cat auth.log.1 | grep -a "Accepted " | awk '{print $11}' | sort | uniq -c | sort -nr | more
Accepted 为登录成功的 语句
(这里忘记截图啦)
会有 2 192.168.200.2 的回显
提交flag
flag{192.168.200.2}
flag 3.爆破用户名字典是什么?如果有多个使用","分割
使用语句
cat auth.log.1 | grep -a "Failed password" |perl -e 'while($_=<>){ /for(.*?) from/; print "$1n";}'|uniq -c|sort -nr
cat auth.log.1 | grep -a "Failed password" | perl -e 'while($_=<>){ /for(.*?) from/; print "$1n";}'| uniq -c | sort -nr
cat auth.log.1 显示文件内容。
grep -a "Failed password" 在文件中搜索所有包含 "Failed password" 的行。
perl -e 'while($_=<>){ /for(.*?) from/; print "$1n";} ' 使用 Perl 正则表达式从每行日志中提取出 "for xxx from" 部分的字符串,即远程主机的 IP 地址。
uniq -c 统计每个 IP 地址出现的次数,并将其前缀显示到每行的开头。
sort -nr 对 IP 地址出现次数进行逆序排序。
得到flag
flag{user,hello,root,test3,test2,test1}
flag 4.登陆成功的IP共爆破了多少次
之前已经分析了次数,直接交flag
flag{2}
flag 5.黑客登陆主机后新建了一个后门用户,用户名是多少
使用语句
cat auth.log.1 |grep -a "new user"
添加新用户 会有 new user 的特征 利用这个特性 我们筛选日志
得到两个用户 经尝试
flag{test2}
原文始发于微信公众号(船山信安):玄机 第一章 应急响应-Linux日志分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论