Linux痕迹清除
简介
Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。 本文简介一下Linux系统日志及日志分析技 巧。
日志对于系统的安全来说非常重要,它记录了系统每天发生的各种各样的事情,用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。日志主要的功能是审计和监测。它还可以实时地监测系统状态,监测和追踪侵入者。
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
日志消息级别
0 EMERG(紧急):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
日志文件
登录失败记录:/var/log/btmp #lastb
最后一次登录:/var/log/lastlog #lastlog
登录成功记录: /var/log/wtmp 登录日志记录:/var/log/secure #last
目前登录用户信息:/var/run/utmp #w、who、users 历史命令记录:history
仅清理当前用户:history -c
查看日志
who
who 命令显示关于当前在本地系统上的所有用户的信息。
可以显示现在登录得信息和之前登录得信息
w
w 显示目前登入系统的用户信息。
last
last命令列出目前与过去登入系统的用户相关信息。
lastlog
lastlog 报告所有用户的最近登录情况,或者指定用户的最近登录情况
tty:终端设备的统称。
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取 代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。
tty1~6是文本型控制台,tty7是X Window图形显示管理器。在本地机器上可以通过Ctrl+Alt+F1(F1-F7键)切换到对应的登录控制台。
pty(虚拟终端):
但是假如我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty) pts/ptmx(pts/ptmx结合使用,进而实现pty):
pts(pseudo-terminal slave)是pty的实现方法,和ptmx(pseudo-terminal master)配合使用实现pty。
日志分析技巧
常用的shell命令
find、grep 、egrep、awk、sed
- grep 显示前后几行信息
1 |
|
- grep 查找含有某字符串的所有文件
1 |
|
- 显示一个文件的某几行
1 |
|
- find 查找文件
1 |
|
- awk
1 |
|
- sed
1 |
|
secure日志
centos /var/log/secure
ubuntu /var/log/auth.log
记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改户密码都会记录在这个日 志文件中。
定位有哪些IP在爆破
# 模拟爆破
hydra -l root -P rockyou.txt 192.168.81.147 ssh
grep “Failed password” /var/log/secure | awk ‘{print $11}’ | sort | uniq -c
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 | egrep -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 -E:使用扩展正则表达式
grep -o:只输出文件中匹配到的部分还好vps 没有被爆破
定位哪些IP在爆破主机的root帐号
1 |
|
定位哪些IP在使用不存在的用户爆破,爆破的用户名是
1
2grep "Failed password for invalid user" /var/log/secure | awk '{print $0}'
grep "Failed password for invalid user" /var/log/secure | awk '{print $11,$13}' | uniq -c获取爆破用户名字典
1
grep "Failed password" /var/log/secure | perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}' | uniq -c | sort -rn
登录成功的IP有哪些
1
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP
1 |
|
- 增加一个用户kali日志
1 |
|
然后过滤创建得用户
1 |
|
删除用户kali日志
1
2
3
4
5
6
7
8# 删除用户
userdel kali
# grep "userdel" /var/log/secure
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'su 切换用户
1
2
3
4
5
6# su test
# grep "su:session" /var/log/secure
Oct 13 08:00:29 localhost su: pam_unix(su:session): session opened for user test by root(uid=0)
Oct 13 08:00:33 localhost su: pam_unix(su:session): session closed for user testsudo 授权
1
2
3
4
5
6# sudo -l
# grep "sudo" /var/log/secure
Oct 13 08:05:04 localhost sudo: root : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=list
Oct 13 08:06:07 localhost sudo: root : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=list
登录日志
ssh 产生得日志
1 |
|
命令的输出包括:登录名,上次登录时间,IP地址,端口等。
登录日志清理:last等日志是二进制文件,无法直接修改。所以清除的最简单方式是清空日志文件本身。
WEB日志
1 |
|
通过HTTP协议访问连接程序的WEB容器时,会记录对应的访问日志,因此需要清理容器的日志。如tomcat日志,IIS日志。
1 |
|
相关得还有apache 的日志
定时任务
/var/log/cron:记录了系统定时任务相关的日志
操作历史记录
1 |
|
如果是zsh 文件的名字则为 .zsh_history
如果是其他 就是对应的名字后面添加histroy
隐藏历史记录
1 |
|
SSH隐身登录
新版已经不会隐身了
1 |
|