应急响应 - Linux基础篇
一、Linux应急响应流程
数据备份:所有涉及到分析以及证据的材料都需要提前进行备份,这样也方便之后还有分析人员或者防止数据被篡改或者覆盖。
备份用户信息文件
cat /etc/passwd > passwd.txt ;

cat /etc/shadow > shadow.txt ;

备份当前网络信息
netstat -anp > netstat_anp.txt ;

备份历史命令
cp ~/.bash_history history.txt ;

history > history.txt1 ;

备份用户登录的信息
w > users.txt ;

备份当前进程信息
ps aux > ps.txt ;

二、用户信息分析
1. 查看当前用户
whoami

2. 查看当前登录系统的所有用户
who(tty:指的是主机的图形化界面的面板,pts/x:指的是ssh远程连接的窗口)


3. 主机上一次开启的时间
who -b

4. 显示已经登录系统的用户列表,并显示用户正在执行的指令
w

5. 显示当前登录系统的所有用户的用户列表
users

6. 查看最近登录成功的用户
lastlog

7. 查看用户信息
cat /etc/passwd

8. 查看可以登录系统的用户
cat /etc/passwd | grep /bin/bash

9. 查看超级用户(uid=0)
awk -F: '$3==0{print $1}' /etc/passwd


这里说一下awk这个命令的使用
awk
:awk
是一个强大的文本处理工具,常用于模式扫描和处理。它按行读取文件,并且可以基于特定的条件来执行操作。-F:
:这个选项指定字段分隔符,-F
表示分隔符的设置,后面的:
表示使用冒号:
作为字段分隔符。在/etc/passwd
文件中,每一行都包含以冒号分隔的字段,如用户名、密码、用户ID等。\$3==0
:这是awk
的条件表达式。\$3
表示文件的第三个字段(在/etc/passwd
中,第三个字段是用户ID,通常是 UID)。条件==0
用来判断该字段是否为0
,即查找 UID 为0
的行。通常,UID 为 0 的用户是 root 用户。{print \$1}
:当满足条件(UID 为 0)时,执行{print \$1}
。\$1
表示每行的第一个字段,即用户名。该部分的意思是打印出符合条件的行中的第一个字段,也就是root
用户。/etc/passwd
:这是输入文件,awk
将逐行处理此文件。/etc/passwd
是一个存储系统用户信息的文件1,每一行通常包含如下字段:

10. 查看用密码登录的用户
cat /etc/shadow


11. 查看有sudo权限的用户
more /etc/sudoers | grep ALL

12. 查看历史命令
cat ~/.bash_history

三、进程信息分析
1. 动态查看进程
top

2. 查看PID为549986的进程的可执行程序
ps aux 显示所有进程

ls -l /proc/pid(这里要输入上面ps命令显示进程里面的PID)/exe

3. 查看PID为549986的进程打开的文件
lsof -p pid(这里要输入上面ps命令显示进程里面的PID)

4. 查看进程sshd打开的文件
lsof -c sshd

5. 查看22端口对应的一些进程
lsof -i:port(端口)

6. 查看pid为549986进程的启动时间点
ps -p PID -o lstart

7. 查看网络连接情况
netstat -pantu

8. 查看端口对应的进程PID
fuser -n tcp port(端口)

9. 查看系统进程
ps aux (ps -ef)

10. 查看系统进程树
pstree

11. 查看进程,根据cpu使用从高到低
ps aux --sort -pcpu

12. 查看进程,根据内存使用从高到低
ps aux --sort -pmem

四、网络连接分析
1. netstat命令用来打印Linux中网络系统的状态信息;
netstat -an

2. 查看TCP连接状态
netstat -nat

五、异常文件分析
1. 查看指定目录最近被修改的文件(查看var目录下3天内被修改的文件)
find /var/ -type f -mtime -3 | xargs ls -la

2. 按时间排序,查看var目录下最近是否有命令被替换
ls -alt /var/

六、开机启动项分析
1. 查看是否有异常开机启动项
cat /etc/rc.local
七、定时任务分析
1. 查看定时任务
sudo vi /etc/crontab

m、h、dom、mon、dow、command分别是(minute; hour; day of month; month; day of week)的缩写
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件
八、系统日志分析
1. Linux下常见的一些日志:
/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages :记录Linux操作系统常见的系统和服务错误信息
/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登录认证情况
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件
/var/log/auth.log 或 /var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在 /var/log/auth.log 中存储认证信息,而 RedHat 和 CentOS 则在 /var/log/secure 中存储该信息。
2. 查看登录记录(auth.log/secure)
cat /var/log/auth.log

3. 查看登录失败的记录
cat /var/log/auth.log | grep FAILED

4. 目前与过去登录系统的用户相关信息
kali系统没有这个命令我换一台靶机做实验
last

5. 查看最近登录失败的用户及信息,查看的是 /var/log/btmp 文件
lastb

6. last命令查看系统中最近的五次用户登录记录
Last | head -5

7. 显示系统中所有用户最近一次登录信息,读取的是 /var/log/lastlog 文件
lastlog

九、web日志分析

1. 通过日志查看当天ip连接数
cat access.log | awk '{print $2}' | sort | uniq -c | sort -nr

这条命令的作用是:
awk '{print $2}'从 access.log
文件中提取第二个字段。
sort对这些 IP 地址进行排序。
uniq -c统计每个唯一 IP 地址出现的次数。
sort -nr按照出现次数从高到低进行排序,并显示每个 IP 地址及其访问次数。
2在日志中找出访问次数最多的10个IP。
awk '{print $1}' access.log |sort |uniq -c|sort -nr

3)连接的ip都在访问的网址:
cat access.log | grep "192.168.20.1" | awk '{print $7}' | sort | uniq -c | sort -nr

应急响应 - Linux基础篇的更多相关文章
- Linux随笔-鸟哥Linux基础篇学习总结(全)
Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...
- 第一天 Linux基础篇
课程介绍 1.认识Linux的不同版本 2.以及应用领域 3.文件和目录 4.Linux命令概述 5.Linux命令-文件 6.Linux命令-系统管理-磁盘管理 认识Linux 什么是操作系统 生 ...
- Linux基础篇
Linux入门 2.1 Linux介绍 1)Linux是一款操作系统,特点:免费.开源.安全.高效.稳定.处理高并发非常强悍,半年至一年重启一次机即可,比Windows强悍,现在很多企业级项目都部署到 ...
- Linux基础篇–shell脚本编程基础
本章内容概要 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 7.1 编程基础程序:指令+数据程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心 ...
- Linux基础篇四:常用命令
. 一个点表示是 当前目录 .. 两个点表示当前目录的上一层目录 . 与 .. 相对路径的一种表现形式 cd ~/test/ ~当前用户的家目录 绝对路径 注意: ...
- Linux 基础篇(二)
1.linux 关机和重启 关机: shutdown -h 10:20 # 指定时间关机 shutdown -h now # 马上关机 shutdown -h +10 # 10分钟后关机 ...
- Linux基础篇学习——Linux文件系统之文件存储与读取:inode,block,superblock
Linux文件类型 代表符号 含义 - 常规文件,即file d directory,目录文件 b block device,块设备文件,支持以"block"为单位进行随机访问 c ...
- Linux基础篇学习——常见系统命令:ls,pwd,cd,date,hwclock,passwd,su,clear,who,w,uname,uptime,last,dmesg,free,ps,top
ls 显示指定目录中的内容 ls [OPTION]... [FILE]... OPTION -a --all,显示所有文件包括隐藏文件 -l 列出长属性,显示出文件的属性与权限等数据信息 -i 列出 ...
- Linux基础篇,磁盘及文件使用管理
在windows系统下,我们可以使用图形化界面很明了的看出当前硬盘使用量与某个文件的占用空间大小和文件数量.但是在linux系统中,我们应该如何得到这些信息呢? 当然是功能强大的df与du了. 一.d ...
- Linux基础篇,正则表达式
一.正则表达式特殊符号: 二.grep的用法 grep [-A|B|a|c|i|n|v] [--color=auto] '搜索字串' filename -A ===> after缩写,后面接数字 ...
随机推荐
- C 国家名字按字母顺序排序
问题 输入五个国家的名字,并按字母的顺序排列输出 分析 知识点 strcpy(1,2):将字符串2复制到字符数组1中 strcmp(1,2):比较字符串大小 二维数组 代码 #include & ...
- 调试存储过程中出现 [Microsoft][ODBC SQL Server Driver]对于造型说明无效的字符值
调试存储时如果有日期类型的参数,传入格式为:2020-07-13 12:00:00 ,无需用引号括起来. 否则会提示[Microsoft][ODBC SQL Server Driver]对于造型说明无 ...
- Yarn公平调度器(Fair Scheduler)切换容量调度器(Capacity Scheduler)
一.调度器简介 Fair Scheduler称为公平调度器,是Apache YARN内置的调度器.公平调度器主要目标是实现YARN上运行的应用能公平的分配到资源,其中各个队列使用的资源根据设置的权重( ...
- CSP 考前注意事项
考试策略 J组 争取在 \(10:00\) 之前把所有题目稳定拿下.如果有题目没有思路.比较难写还没调出来或者想不出来,那么可以先放着,跳题.把其他所有题打完之后写个对拍,挂后台一直拍着. 然后剩下的 ...
- 问题-ifconfig
在运行centos7 运行ifconfig命令时出现: [root@kvm1 ~]# ifconfig -bash: ifconfig: command not found 原来是这样: 1.ifco ...
- FreeSql学习笔记——12.执行Sql
前言 FreeSql支持通过Sql语句配合ISelect生成最终的Sql语句,也可以执行原生自定义Sql语句,使操作更灵活:通过sql语句与Iselect配合使用更好控制sql语句: 简单查询 _ ...
- Vue3 数据响应式原理与高效数据操作全解析
一.Vue3 数据响应式原理 (一)Proxy 替代 Object.defineProperty 在 Vue2 中,数据响应式是通过 Object.defineProperty 实现的.这种方法虽然能 ...
- 百万架构师第四十二课:Nginx:Nginx 的初步认识|JavaGuide
百万架构师系列文章阅读体验感更佳 原文链接:https://javaguide.net 公众号:不止极客 Nginx 的初步认识及配置 课程目标 Nginx 在分布式架构中的应用分析 常用的 Web ...
- mybatis - [04] mapper文件详解
Mybatis的Mapper文件(通常是以.xml为扩展名的文件)主要用于定义SQL语句和它们与Java接口方法之间的映射关系.以下是Mapper文件中一些常用的配置元素和属性. 一.mapper ...
- ABC393D题解
大概评级:黄. 签到题. 显然,我们需要找到所有的 \(1\) 的位置,然后看其它的 \(1\) 靠拢过来需要几次操作,然后对于每个位置的答案取个最小值就好了. 直接暴力肯定是不行的,考虑优化计算其它 ...