第一章 应急响应-Linux日志分析

baozongwi Lv5

0x01 说在前面

这个是真不会了,之前只是听说过通过日志来看一下攻击流量(不对勿喷),这次靠玄机深入学习一下吧

0x02 question

知识

目录

首先我们理清目的,我们的操作,在安全的情况下都会被记录在日志当中,那么我们就能够利用日志进行分析,最后上报情况再进行SU源,那么第一点我们得能够分清日志位置以及日志中记录的是什么

Linux系统中基本的日志文件都在这个目录下面/var/log

系统配置文件在/etc/rsyslog.conf,还有很多目录就借用师傅的了

日志文件 文件说明
/var/log/cron 记录了系统定时任务相关的日志。
/var/log/cups 记录打印信息的日志。
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用 dmesg 命令直接查看内核自检信息。
/var/log/mailog 记录邮件信息。
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录 Linux 系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件。
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接 vim 查看,而要使用 lastb 命令查看。
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接 vim ,而要使用 lastlog 命令查看。
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接 vim ,而需要使用 last 命令来查看。
/var/run/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接 vim ,而要使用 wwhousers等命令来查询。
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如 SSH 登录,su 切换用户,sudo 授权,甚至添加用户和修改用户密码都会记录在这个日志文件中。

当然了有些文件如果没有任务运行的话,是不存在的,还有就是有些因为版本问题,存储位置不同

可以尝试查看 /var/log/syslog(在某些系统中替代 /var/log/messages)或 /var/log/secure 等其他日志文件。

但是日志文件中有很多东西我们如何去查找自己需要的东西

常用命令

grepsedawkfindnetstat

查找文件中的关键字

1
2
3
4
5
6
grep [选项] '模式' 文件

-r :递归查找
-n :显示行号
-R :查找所有文件,包含子目录
-i :忽略大小写

就类似的这种,但是短时间肯定是掌握不了,我们要用AI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1、定位有多少IP在爆破主机的root帐号:    
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure

4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure

5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)

sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

/var/log/yum.log安装软件的日志

action

查找爆破记录IP

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

我们知道ssh爆破的日志记录都在auth.log

1
find / -name "*auth.log*"

这里列一下目录发现有备份文件,然后查找登录失败的就是爆破的,

1
| awk '{print $11}'

输出IP因为第11列是IP

1
| sort -n | uniq -c

进行排序去重

1
flag{192.168.200.2,192.168.200.31,192.168.200.32}

查找登录成功的IP

1
grep -a "Accepted " /var/log/auth.log.1 | awk '{print $11}' | uniq -c

这个就不用说了吧

1
flag{192.168.200.2}

查找爆破用户名字典

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

排序去重

其中比较难理解的部分就是perl这个脚本

1
2
3
4
5
6
while($_=<>){
/for(.*?) from/;
# 匹配for和from中间的任意字符
print "$1\n";
# 匹配之后就直接输出
}
1
flag{user,hello,root,test3,test2,test1}

这玩意害的顺序一模一样,无语

查看登录成功的IP爆破了多少次

登录成功的IP我们知道是什么,然后查找就可以了

在第一个步骤中我们知道了爆破次数所以直接得到

1
flag{4}

查看新建用户名

添加用户的命令是net user

查找即可

1
cat /var/log/auth.log.1 |grep -a "new user"
1
flag{test2}

0x03 小结

还是只用了十分钟,熟悉了一下shell命令和日志文件吧,宣~

  • Title: 第一章 应急响应-Linux日志分析
  • Author: baozongwi
  • Created at : 2024-10-27 14:47:29
  • Updated at : 2024-10-27 17:03:11
  • Link: https://baozongwi.xyz/2024/10/27/玄机第一章-应急响应-Linux日志分析/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
第一章 应急响应-Linux日志分析