01 前置知识点
linux常用日志路径:
1:Apache:/var/log/httpd/ /var/log/apache/ /var/log/apache2/
2:Nginx:/var/log/nginx/
3:MySQL:/var/log/mysql/ /var/log/mariadb/
4:PostgreSQL:/var/log/postgresql/
5:PHP:/var/log/php/
6:SSH(认证日志):/var/log/secure /var/log/auth.log
7:系统日志:/var/log/messages
常用的linux文本处理命令:
cat 查看文件内容
cat filename # 查看文件内容
cat > filename # 重定向输出到文件,如果文件不存在则创建
cat file1 file2 > combined.txt # 将两个文件合并到一个文件中
grep 搜索文件中的文本模式
grep 'pattern' filename # 在文件中搜索包含pattern的行
grep -i 'pattern' filename # 忽略大小写搜索
grep -a 'pattern' filename # 以文本形式读取文件
awk 文本处理工具
awk '{print $1}' filename # 打印文件中每一行的第一个字段
awk '$3 > 100' filename # 打印第三个字段值大于100的行
awk 'NR % 2 == 0' filename # 打印偶数行
sort 对文本文件的内容进行排序
sort filename # 按升序对文件进行排序
sort -r filename # 按降序排序
sort -n filename # 按数值大小进行排序
uniq 过滤或合并文件中的重复行,通常与sort联合使用
sort filename | uniq # 过滤文件中的重复行
sort filename | uniq -c # 统计每行出现的频率
sort filename | uniq -d # 只显示重复出现的行
02 题目
账号root密码linuxrz
ssh root@IP
1.有多少IP在爆破主机ssh的root账号,如果有多个使用","分割
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
3.爆破用户名字典是什么?如果有多个使用","分割
4.登陆成功的IP共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少
1.有多少IP在爆破主机ssh的root账号,如果有多个使用","分割
根据前置知识可知
linux登录相关的日志存储在**/var/log路径下的secure或auth.log**中
此处存在文件auth.log和auth.log.1,auth 日志常见于 Debian 系
auth.log.1 文件,是因为系统的一个日志轮换机制,当日志文件达到一定大小或满足特定的时间条件时,auth.log 文件会轮转,旧的文件会被重命名为auth.log.1
所以需要从auth.log和auth.log.1两个文件中获取内容
根据日志观察root用户登录的关键词,password for root
awk命令默认根据空格排列,所以ip在第11列
统计次数用uniq -c 命令
命令为:
cat auth.log auth.log.1|grep -a "password for root"|awk '{print $11}'|sort -nr|uniq -c
flag{192.168.200.2,192.168.200.31,192.168.200.3}
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
日志中登录成功的关键词为:Accepted,ip依旧在11列
命令为:
cat auth.log auth.log.1|grep -a "Accepted"|awk'{print $11}'|sort -nr|uniq -c
flag{192.168.200.2}
3.爆破用户名字典是什么?如果有多个使用","分割
经过观察日志发现,登录的用户名出现在for 和 from之间,所以可以使用正则表达式判断
可以用sed命令提取,-n 阻止自动输出
s/.for (.) from.*/\1/p 这是一个 sed 的替换命令,用于查找匹配模式 for … from 并打印出 for 后面的内容
cat /var/log/auth.log.1 /var/log/auth.log | grep -a "Failed password" |sed -n 's/.*for \(.*\) from.*/\1/p'|uniq -c | sort -nr
flag{user,hello,root,test3,test2,test1}
4.登陆成功的IP共爆破了多少次
在日志中提取关键词Failed password,awk提取黑客登录ip,输出爆破次数
cat /var/log/auth.log.1 /var/log/auth.log | grep -a "Failed password" | awk '{if($11=="192.168.200.2") print $11}'|sort|uniq -c
flag{4}
5.黑客登陆主机后新建了一个后门用户,用户名是多少
新建用户关键词是new user,直接查找即可
cat /var/log/auth.log.1 /var/log/auth.log | grep -a "new user"
flag{test2}