第一章-应急响应-Linux 日志分析-玄机靶场

小计下玄机靶场的应急响应第一章的Linux 日志分析挑战思路。

本篇文章来自lexsd6's home 师傅的分享,如有侵权请联系

题目问题

1.有多少IP在爆破主机ssh的root帐号,如果有多个使用”,“分割
2.ssh爆破成功登陆的IP是多少,如果有多个使用”,“分割
3.爆破用户名字典是什么?如果有多个使用”,”分割(按照首字母顺序排序)
4.登陆成功的IP共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少?

信息收集

通过lsb_release 命令查询操作系统版本(可以与uname -a配合使用)

lsb_release -a

发现是debian

root@ip-10-0-10-2:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

根据题目描述推断发现是查询ssh相关日志


在debian中,ssh登录日志通常保存在/var/log/auth.log .

我们用grep "sshd:" /var/log/auth.log来读取文件发现只能读取到我们登录后的数据

root@ip-10-0-10-2:~# grep "sshd:" /var/log/auth.log
Jun 15 01:35:19 ip-10-0-10-2 sshd[613]: pam_unix(sshd:session): session opened for user root by (uid=0)
root@ip-10-0-10-2:~# sudo grep "sshd:" /var/log/auth.log
Jun 15 01:35:19 ip-10-0-10-2 sshd[613]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jun 15 01:44:42 ip-10-0-10-2 sudo:     root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/usr/bin/grep sshd: /var/log/auth.log
root@ip-10-0-10-2:~# grep "Accepted" /var/log/auth.log

查看/var/log/发现

alternatives.log                   cloud-init-output.log              messages
alternatives.log.1                 daemon.log                         messages.1
amazon/                            daemon.log.1                       ntpstats/
apt/                               debug                              private/
auth.log                           debug.1                            syslog
auth.log.1                         dpkg.log                           syslog.1
aws114_ssm_agent_installation.log  dpkg.log.1                         user.log
bootstrap.log                      faillog                            user.log.1
btmp                               kern.log                           wtmp
btmp.1                             kern.lo

存在点auth.log.1,读取为发现题目描述相关联的日志。

问题一-有多少IP在爆破主机ssh的root帐号

在爆破root账号日志会出现Failed password for root from+ip的字段,我们可以利用文档查找功能手动筛选出来。
 

同时我们也可以利用linux命令来提取

cat /var/log/auth.log.1 | grep -a "Failed password for root from" | awk '{print $11}' | sort | uniq -c | sort -nr | more

cat /var/log/auth.log.1 显示文件内容。
grep -a "Failed password for root" 在文件中搜索所有包含 "Failed password for root" 的行。
awk '{print $11}' 提取每行的第 11 个字段,即 IP 地址。
sort 对提取出来的 IP 地址进行排序。
uniq -c 统计每个 IP 地址出现的次数,并将其前缀显示到每行的开头。
sort -nr 对 IP 地址出现次数进行逆序排序。(如果输入的文本为: 5 2 8 7 那么使用 sort -nr 命令后的输出将会是: 8 7 5 2)
more 分屏显示结果,便于查看。

也同样查询到三个ip

4 192.168.200.2
1 192.168.200.32
1 192.168.200.31

按照顺序排序flag{192.168.200.2,192.168.200.32,192.168.200.31}

问题二-ssh爆破成功登陆的IP是多少

同理,爆破root账号爆破成功的ip会在日志出现Accepted password for root from+ip的字段。


所以我们可以用‘’

$ cat /var/log/auth.log.1 | grep -a "Accepted password for root from" | awk '{print $11}' | sort | uniq -c
      2 192.168.200.2

得到成功爆破的ip为192.168.200.2

问题三-爆破用户名字典是什么

主要看题目是爆破用户名字典是什么?。题意不是指用的字典的名字是什么?(有个憨憨刚开始就理解错了(lll¬ω¬))即字典里内容有哪些或者用来哪些字段来猜测用户名。

在ssh连接的用户名不存在时会在日志“Failed password for invalid user ”+用户名的记录于是匹配得到:


 

$ cat /var/log/auth.log.1 | grep -a "Failed password for invalid " | awk '{print $11}' | sort | uniq -c
      5 from
      5 hello
      1 test1
      1 test2
      1 test3
      5 user

由于 存在“ Failed password for invalid user from” 出现form其实为” “(但flag没有包含这个),同时“root“登录时提示”Failed password for root “要各外添加。

所以答案为:flag{user,hello,root,test3,test2,test1}(按照首字母顺序排序又是个坑555)

后续交流中得知,寻找SSH 尝试登录过哪些用户名,可以用perl命令接受了grep的查询结果,之后匹配 “for” 和 “from” 之间的任何字符(用户名)(学到了,学到了)

cat/var/log/auth.log.1/var/log/auth.log|grep-a"Failedpassword"|perl-e'while($_=<>){/for(.*?)from/;print"$1\n";}'|uniq-c|sort-nr

问题四-登陆成功的IP共爆破了多少次

这个问题就是在问”192.168.200.2“这个ip爆破了几次,(这里有个憨憨又理解错了,认为登录成功算是最后一个爆破结果只算失败次数,然后怀疑人生半天┭┮﹏┭┮)

cat /var/log/auth.log.1 | grep -a "Failed password for root from" | awk {'if($11=="192.168.200.2")print $11}' | sort | uniq -
c | sort -nr | more
      4 192.168.200.2
 4 192.168.200.2

问题五-黑客登陆主机后新建了一个后门用户,用户名是多少

在linux中新建用户/用户组会在日志中留下new user/new group的痕迹


执行/var/log/auth.log.1 | grep -a "new user"匹配”new user“

$ cat /var/log/auth.log.1 | grep -a "new user"
Aug  1 07:50:45 linux-rz useradd[7551]: new user: name=test2, UID=1000, GID=1000, home=/home/test2, shell=/bin/sh
Aug  1 08:18:27 ip-172-31-37-190 useradd[487]: new user: name=debian, UID=1001, GID=1001, home=/home/debian, shell=/bin/bash

得到两个答案,但联系上文分析只有test2
 


理由是第一个test2来自192.168.200.2登录时,同读取/etc/passwd时发现UID 在0-499外,且靠后(在linux中越晚建立的用户越靠后,所以后面docker生成的debian在最后)。并且test2不想自代服务的用户名

因此通过对 auth 日志 和/etc/passwd 两个文件审计都指向test2



 



 


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值