玄机——应急响应简单类题练习
第一章应急响应-Linux日志分析
步骤 #1
1.分析题目
有多少IP在爆破主机SSH的root帐号,如果有多个使用",“分割
日志中记录身份验证(登录、身份认证等等)的日志记录一般在
/var/log/auth.log
里面。而IP尝试爆破主机SSH的root账户,经了解一般的SSH尝试登录的记录在
/var/log/auth.log.1/
里。然后爆破是有多次失败的尝试,那么就要筛选出登录失败的日志条目,用grep的命令语句可以进行搜索。
找出这些日志条目之后就要提取出进行爆破的IP地址,经过搜索了解,SSH 登录失败日志中IP地址一般在第十一列,那么就可以用命令
awk '{print $11}'
来进行提取。
2.解题
在log目录里面查看日志文件,输入命令
cd /var/log #进入log文件夹
ls -l #列出log文件夹中的日志文件
发现确实有auth.log以及auth.log.1的日志文件,那么对这些进行处理。
输入命令:
cat /var/log/auth.log.1 /var/log/auth.log| grep -a "Failed password for root" | awk '{print $11}' |sort | uniq -c | sort -nr
cat /var/log/auth.log.1 /var/log/auth.log #获取这两个文件的内容
cat /var/log/auth.lo* #获取文件为/var/llog/auth.lo形式的文件
#两者作用在该题相同
grep -a
这个命令,即使文件中包含二进制数据(如压缩内容、特殊编码字符等),-a 也会强制 grep 逐行读取内容,而不会跳过或报错,比起直接用grep去搜要更精准一些。
uniq -c
* uniq命令删去重复行,-c 计算每一行出现的次数。
sort -nr
sort用于排序,-n 按照数值排序, -r降序排序。
那么按照题目要求的顺序,flag为 flag{192.168.200.2,19.168.200.31,192.168.200.32}
3.参考文章
步骤 #2
1.分析题目
SSH爆破成功登录的IP是多少,如果有多个使用”,“分割
还是SSH那么仍然在
auth.log.1 auth.log
文件中进行分析。成功登陆,了解到成功登录的IP的日志中有
"Accepted password for root"
的字眼,那么就可以用grep -a
的命令搜索这个字符串。
2.解题
#输入以下命令
zgrep -a "Accepted password for root" /var/lolg/auth.log.1 | awk '{print $11}' | sort | uniq -c | sort -nr
zgrep -a 这个一般用于auth.log.1, 因为这个日志文件有时会是压缩文件的格式,而这个命令可以打开这个格式的文件。
那么flag为 flag{192.168.200.2}
3.参考文章
步骤 #3
爆破用户名字典是什么?如果有多个使用","分割
1.分析题目
爆破用户名字典是什么?如果有多个使用,分割
- 爆破用户名字典 查找发现是攻击者用来尝试登录系统的用户名列表,通常与密码字典配合使用。一个典型的SSH失败登录日志条目,如May 15 10:23:45 server sshd[1234]: Failed password for invalid_user from 192.168.1.100 port 54322 ssh2,它的用户名是位于for 和 from之间,那么可以根据这个特点从for 和from之间提取用户名。
2.解题
第一种
zgrep -a "Failed password" /var/log/auth.log.1 | grep -o 'for .* from' | uniq -c | sort -nr
grep -o 'for .* from'
用来提取包含"for"和"from"的片段
第二种
zgrep -a "Failed password" /var/log/auth.log.1 |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
用Perl脚本从每一行提取出失败登录尝试的用户名
while($_=<>)
逐行读取;
/for(.*?) from/; print "$1\n";}'
对每一行进行正则匹配并输出结果
则flag为 flag{user,hello,root,test3,test2.test1}
参考文章
步骤 #4
1.分析题目
成功登录 root 用户的 IP 一共爆破了多少次
- 成功登录,那么含有"Accepted password"的字眼
- 对IP进行去重
2.解题
结合步骤1和步骤2
cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr
则flag为 flag{4}
步骤 #5
1.分析题目
黑客登陆主机后新建了一个后门用户,用户名是多少
- 又是进行主机登录那么还是和auth.log和auth.log.1有关
- 新建用户,查找发现新建用户常用
useradd
,那么就查找相关字符
2.解题
zgrep -a "useradd" /var/log/auth.log.1 | uniq -c | sort -nr
然后发现最后面的用户名text2很明显就是后门用户
则flag为 flag{text2}