Linux日志安全分析技巧

0x00 前言

我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。

GitHub 地址:https://github.com/Bypass007/Emergency-Response-Notes

本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。

0x01 日志简介

Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。本文简介一下Linux系统日志及日志分析技巧。

日志默认存放位置:/var/log/

查看日志配置情况:more /etc/rsyslog.conf

日志文件

说明

/var/log/cron

记录了系统定时任务相关的日志

/var/log/cups

记录打印信息的日志

/var/log/dmesg

记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息

/var/log/mailog

记录邮件信息

/var/log/message

记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件

/var/log/btmp

记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看

/var/log/lastlog

记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看

/var/log/wtmp

永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看

/var/log/utmp

记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询

/var/log/secure

记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

比较重要的几个日志:

登录失败记录:/var/log/btmp //lastb

最后一次登录:/var/log/lastlog //lastlog

登录成功记录: /var/log/wtmp //last

登录日志记录:/var/log/secure

目前登录用户信息:/var/run/utmp //w、who、users

历史命令记录:history 仅清理当前用户:history -c

0x02 日志分析技巧

A、常用的shell命令

Linux下常用的shell命令如:find、grep 、egrep、awk、sed

小技巧:

1、grep显示前后几行信息:

•标准unix/linux下的grep通过下面參数控制上下文:
•grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
•grep -B 5 foo file 显示foo及前5行
•grep -A 5 foo file 显示foo及后5行
•查看grep版本号的方法是
•grep -V

2、grep 查找含有某字符串的所有文件

grep -rn "hello,world!"
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写

3、如何显示一个文件的某几行:

cat input_file | tail -n +1000 | head -n 2000
#从第1000行开始,显示2000行。即显示1000~2999行

4、find /etc -name init

//在目录/etc中查找文件init

5、只是显示/etc/passwd的账户

`cat /etc/passwd |awk  -F ':'  '{print $1}'`  
//awk -F指定域分隔符为':',将记录按指定的域分隔符划分域,填充域,•$0则表示所有域,$1表示第一个域,•$n表示第n个域。

6、sed -i '153,$d' .bash_history

删除历史操作记录,只保留前153行

B、日志分析技巧

A、/var/log/secure

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 -nr2、登录成功的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/secure4、删除用户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/secure5、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

2、/var/log/yum.log

软件安装升级卸载日志:

yum install gcc[root@bogon ~]# more /var/log/yum.logJul 10 00:18:23 Updated: cpp-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:24 Updated: libgcc-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:24 Updated: libgomp-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:28 Updated: gcc-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:28 Updated: libgcc-4.8.5-28.el7_5.1.i686

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

as将安卓应用打包_Android Studio打包生成apk的方法(超级简单哦)

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;打包文件是需要生成APK文件&#xff0c;其他人可以通过APK安装和使用&#xff0c;一般来说&#xff0c;包是指APK生成的发布版本&#xff0c;下文技术狗小编还介绍了Android Studio 超级简单的打包生成apk的方法&a…

Linux系统安全日志详解

日志对于安全来说&#xff0c;非常重要&#xff0c;他记录了系统每天发生的各种各样的事情&#xff0c;你可以通过他来检查错误发生的原因&#xff0c;或者受到攻击时攻击者留下的痕迹。日志主要的功能有&#xff1a;审计和监测。他还可以实时的监测系统状态&#xff0c;监测和…

帆软单点登录_电子表格FineReport教程:[20]CAS单点登录

若报表应用设置了权限&#xff0c;则需要将如下代码&#xff1a;package com.fr;import java.io.IOException;import java.io.PrintStream;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletExce…

【转】老男孩:Linux企业运维人员最常用150个命令汇总

近来老男孩发现新手学习Linux记不住命令&#xff0c;不会分类、不会筛选重点&#xff0c;胡子眉毛一把抓当然记不住了。 特别整理Linux运维最常用150个命令和大家分享&#xff0c;大家学习命令不用在盲目了&#xff0c;根据分类&#xff0c;然后逐步学习&#xff01; 命令 功…

mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录

mysql查询在一张表不在另外一张表的记录问题&#xff1a;查询一个表(tb1)的字段记录不在另一个表(tb2)中条件&#xff1a;tb1的字段key的值不在tbl2表中&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#x…

Linux中常用的命令都是哪些单词的缩写

作者&#xff1a;蓬岸 Dr.Quest 链接&#xff1a;https://www.zhihu.com/question/49073893/answer/114986798 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 417个命令缩写&#xff1a;https://www.abbreviations.co…

ubuntu mysql 防火墙_mysql、ubuntu系统防火墙常规操作

mysql、ubuntu系统防火墙常规操作编辑&#xff1a;006 时间&#xff1a;2020-02-11mysql&#xff1a;数据库操作连接数据库&#xff1a;mysql -u username -p创建数据库&#xff1a;create database databasename;删除数据库&#xff1a;drop database databasename;指定数…

CentOS7关闭防火墙和SELinux

关闭防火墙 临时关闭防火墙 systemctl stop firewalld临时打开防火墙 systemctl start firewalld防火墙开机关闭 systemctl disable firewalld防火墙开机启动 systemctl enable firewalld查看防火墙状态 systemctl status firewalld关闭selinux 临时关闭SELinux setenf…

如何重新安装 Linux 的操作管理套件 (OMS) 代理

重要提示&#xff1a;本文章是 Microsoft 软件自动翻译的结果&#xff0c;而非专业译者翻译的结果。 Microsoft 提供专业人员翻译的文章、由自动翻译生成的文章以及来自 Microsoft 社区的文章翻译&#xff0c;因此你能够以自己的语言阅读所有知识库文章。 需要注意的是&#xf…

mysql根据idb还原数据_mysql通过idb文件,恢复数据库

原因&#xff1a; 由于一次未知原因&#xff0c;服务器停机后&#xff0c;导致数据库不能启动&#xff0c;由于刚接手项目&#xff0c;对此数据库的配置不是那么清晰&#xff0c;分析了很多&#xff0c;最后还是没发正常启动。由于发现数据idb文件还在&#xff0c;最后就采取了…

如何轻松记忆Linux文件系统层次结构

Linux对于新手来说非常难学。打好基础对于后面深层次的学习非常重要。 对文件系统层次结构要基本的概念。怎么才能理解并且记忆层级结构呢&#xff1f; 方法/步骤 为了帮助记忆&#xff0c;我做了一个比较清晰的图表来协助层次的记忆。 很多目录文件夹的名字长得非常抽象&…

node输出mysql的数据_node.js+async+mysql 查询数据输出问题,如何分别统计、提取每个sql语句的结果!!...

展开全部首先这是一个很简单的问e5a48de588b63231313335323631343130323136353331333335343366题&#xff0c;cnodejs这个论坛node大神算是最多的了&#xff0c;为什么会卡那么久你想过么。看看你提问的诚意吧——代码不格式化&#xff0c;不写注释&#xff0c;各种魔术数字令人…

fmc是fpga直接引出来的吗_家长速看!你还在用“不要和陌生人说话”糊弄孩子的安全教育吗?...

在许多幼儿安全教育案例中&#xff0c;我们都会看到这样一个试验&#xff1a;记者假扮人贩子&#xff0c;利用棒棒糖、零食去诱惑幼儿园的孩子。在其中一次试验中&#xff0c;21个孩子有20个中招&#xff0c;直接跟着陌生人走了。这个试验最终引出来的结论就是要教育孩子不要和…

CentOS 7文件系统与日志分析详解

Linux 文件系统 在处理 Linux 系统出现的各种故障时&#xff0c;故障的症状是最易发现的&#xff0c;而导致这一故障的原因才是最终排除故障的关键。熟悉 Linux 系统中常见的日志文件&#xff0c;了解一般故障的分析与解决办法&#xff0c;将有助于管理员快速定位故障点、“对…

oracle同一个示例两个用户的数据同步_分享两个shell脚本--一键统计Oracle数据库用户信息...

概述今天主要分享一下两个shell脚本&#xff0c;主要是为了查看所有数据库用户及其表空间&#xff0c;统计某个指定用户的明细&#xff0c;下面一起来看看吧~数据库连接脚本use script settdb.sh for DB login details registry#!/bin/bashtmp_username$SH_USERNAMEtmp_passwor…

plsql视图添加表字段_教你不到两分钟,快速创建数据透视图

如果说数据透视表给我们提供了灵活、快捷的数据计算工具, 那么数据透视图就是更直观、动态地展现大批量数据的变化规律和趋势。数据透视图作为数据透视表中的重点内容&#xff0c;高阶的内容包括数据透视图的编辑、美化成高大上的数据分析图表。与万能切片器结合使用实现多表甚…

c datatable导入mysql_《项目经验》–简单三层使用DataTable向数据库表批量导入数据—向SqlServer一张表中导入数据 | 学步园...

向数据库的一张表中添加数据&#xff0c;可以采用单个添加&#xff0c;即一条数据、一条数据的添加&#xff1b;也可以采用批量导入&#xff0c;依次将好些条数据写入数据库的一张表中。文本借助实例《添加系列信息》讲解一种向数据库批量导入数据的方法。1.界面设计观看一下添…

项目架构开发:数据访问层之Cache

数据访问层简单介绍 数据访问层&#xff0c;提供整个项目的数据访问与持久化功能。在分层系统中所有有关数据访问、检索、持久化的任务&#xff0c;最终都将在这一层完成。 来看一个比较经典的数据访问层结构图 大概可以看出如下信息 1、有缓存、日志、异常处理、数据CRUD、…

jquery mysql实现加入购物车_jQuery实现加入购物车飞入动画效果

HTML首先载入jQuery库文件和jquery.fly.min.js插件。接着&#xff0c;将商品信息html结构布置好&#xff0c;本例中&#xff0c;我们用四个商品并排布置&#xff0c;每个商品box中包括有商品图片、价格、名称以及加入购物车按钮等信息。&#xffe5;3499.00LG 49LF5400-CA 49寸…

angular是MVC模式还是MVVM架构模式

下面仅是个人对angular是MVC或者MVVM的理解。 首先在讨论angular是哪种模式之前&#xff0c;我们得先了解什么是MVVM和MVC。 MVVM vs MVC 总体介绍 首先&#xff0c;两者都是一种架构思想。都是从后端演变而来。 具体的演变流程&#xff1a;传统MVC ——> MVP ——>…