TypechoJoeTheme

学习使用

统计
登录
用户名
密码

Linux应急排查

admin博主
2022-11-26
/
0 评论
/
633 阅读
/
2359 个字
/
百度已收录
11/26
本文最后更新于2022年11月26日,已超过125天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

Linux下排查方法
Linux系统基础知识
Etc/sysconfig/network-script/ 网卡配置
目录结构

/bin 放置系统命令目录,/bin目录可以在维护模式下还可以被操作
/boot 放置开机使用的文件,包括linux核心文件以及开机选单与开机所需设定文件
/dev 放置装置与周边设备都是以文件的形态,存在于这个目录当中
/etc 系统主要的设定文件几乎都放置在这个目录内,列如人员的账户密码文件,各种服务的起始文件等等
/home 系统预设的使用者家目录(home,directory) 你新增的用户家目录都会规范进来
/lib和/lib64 系统的函试库非常的多,而.lib或者/lib64放置常用的函数
/opt 存放第三方软件和位置目录
/root root用户的家目录
/sbin linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设置系统,里面包括了开机,修复,还原系统所需要的指令
/tmp 任何人都可以读写的目录,重新启动目录中存放的文件会被删除

 
用户组
所有者,所在组,其它组
文件普通权限
Rwx r=4 w=2 x=1
文件特殊权限
SUID:s出现在文件所有者的X权限上
SGID:s出现在文件所属群组的X权限上
SBIT:t出现在文件其他用户的x权限上
 

 
Linux 常用命令
 
Stat 跟文件
会显示文件UID,文件名,文件属性,文件访问时间,文件内容修改时间,文件元数据变化时间
Access time 访问时间:文件中的内容最后被访问的最后时间
Modified time 修改时间:文件内容被修改的最后时间
Change time变化时间:文件的元数据发生变化,写入文件,更改所有者,权限修改
Ls 命令 列出文件
-a 显示隐藏文件,-L 详细显示,-R 递归显示
Netstat命令
-a 显示所有链接中的soket -n 使用ip,而不是域名显示 -t 显示TCP链接
-p 显示每个网络链接对应的进程和用户 -l 显示处于监听中的socket
-e 显示拓展信息,inode等信息
-u 显示UDP连接
Lsof 命令 列出来当前系统打开文件

Lsof -c sshd 显示sshd进程现在打开的文件
Lsof -p pid 显示进程号为pid的进程情况
Lsof +d /tmp 显示目录下被进程打开的文件
Lsof +D /tmp 递归显示显示目录下被进程打开的文件
Lsof -i:80 查看端口为80的tcp或者udp进程

 
Ps命令 常用进程

Ps -a 显示当前终端下的进程
Ps -u 以用户为主的显示方式
Ps -x 显示所有进程

 
Grep命令 检索命令

Grep -I 忽略大小写
Grep -v 不包含特殊字符

Tcpdump命令 抓流量

Tcpdump -I eth0 抓取网卡为eth0的流量
Tcpdump tcp 抓取tcp流量
Tcpdump port 53 抓取端口为53的流量,源端口或者目的端口
Tcpdump host 1.1.1.1 抓取和主机1.1.1.1 有关的流量
Tcpdump -w wireshark。Pcap 流量保存为图形化分享软件可识别的数据包

 
Find命令 目录文件列出来,也可以查找文件

Find path -name filename 在path路径下查找文件名为filename的文件
Find path -perm 777 在path路径下查找文件权限为777的文件
Find path -perm -700 在path路径下查找文件权限为700以及700以上权限的文件

 
Md5计算文件Md5
Rz 接收文件
Sz传输文件
Strings 字符串显示文件
Linux常规检查项-关键文件,关键目录等
文件检测-历史命令
Root用户执行过的历史命令
/root/.bash_history
对应username执行过的历史命令
/home/{username}/.bash_history
当前用户执行过的历史命令
History
文件检测-系统关键文件
/etc/passwd 包含系统用户和用户的主要信息
/etc/shadow 用于储存系统中用户的密码,又称为影子文件
/etc/group  记录组ID和组名的对应文件
写到profile里面的命令都是会被调用执行的
/etc/profile 此文件涉及系统的环境,变量,会从中调用shell变量
/root/.bash_profile 变量
/home/{username}/.bash_profile 变量
/root/.bashrc 此文件为系统的每个用户设置的环境信息,用户第一次登陆时,该文件被执行
/home/{username}/.bashrc
/root/.bash_logout  用户退出的时候的操作
/home/{username}/.bash_logout
/root/.ssh/authorized_keys  存放ssh公私钥的地方
/home/{username}/.ssh/authorized_keys
 
文件检测—系统关键目录
/root/
/home/{username}
/tmp
/var/tmp
/dev/shm
 
命令检测,防止恶意命令替换

/usr/bin/ps
/usr/bin/netatat
/usr/bin/ps
/usr/sbin/lsof
/usr/sbin/ss
/usr/bin/stat

 
检测系统安装包
列出系统所有按照的rpm包
Rpm -qa
校验系统所有rpm包
Rpm -V -a
校验特定文件或者命令
Rpm -V -f /etc/sysconfig
 
Which ps 查看ps命令的变量路径
 
Linux计划任务
Crontab 计划任务:系统自带的定时执行脚本或者命令的系统服务

Systemctl status crond 查看crond服务状态
Systemctl start crond   启动crond服务
Systemctl stop crond 停止crond服务
Systemctl enable crond    开机启动crond服务
Systemctl disable crond 关闭开机启动crond服务

 
Crontab

-l 列出crontab
-u 指定用户用户
-e 编辑crontab
从左到右依次为:
[分钟] [小时] [每月的某一天] [每年的某一月] [每周的某一天] [执行的命令]

 
/etc/cron.deny /etc/cron.allow
Crontab的限制文件,用户名存在cron.deny,且cron.allow不存在,或者用户名不存在cron.allow的时候,不允许此用户创建crontab
Cron.allow优先级高于cron.deny
系统默认不存在cron.allow
 
系统默认crontac相关配置文件目录

/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.monthly/
/etc/cron.weekly/
/etc/crontab
/var/spool/cron/
/var/log/cron  crontab日志
/etc/systemd/system/multi-user.target.wants/crond.service

 
 
Linux-系统日志
配置文件

/etc/rsyslog.conf
/etc/rsyslog.d/*

 
登陆相关日志

/var/log/下
Secure 记录于安全相关的信息
Lastlog 当前登陆的用户日志
Wtmp 永久记录每个用户登陆,注销及系统的启动,停机的事件,last命令查看
Btmp 尝试登陆且失败日志

 
其他日志

Messages 各种系统守护进程,用户程序和内核相关信息
Cron   c rontab日志
Audit/*   audit日志,监控系统调用
Boot.log 启动信息相关日志
Yum.log 通过yum安装rpm相关日志
Httpd/* httpd服务访问日志和错误日志
Firewalld 防火墙相关日志
Mail 邮件相关日志
Dmesg    核心启动日志

 

转载:tidesec.com

 
排查方法
查看用户信息

/etc/passwd 查看用户信息文件
/etc/shadow 查看影子文件
awk -F: ‘$3==0{print $1}’ /etc/passwd (查看系统是否还存在其他的特权账户,uid为0,默认系统只存在root一个特权账户)

Linux下排查方法

who 查看当前登录用户(tty 本地登陆 pts 远程登录)
Linux下排查方法

w 查看系统信息,想知道某一时刻用户的行为
Linux下排查方法

uptime 查看登陆多久、多少用户,负载
Linux下排查方法

passwd -d username 删除用户口令
Linux下排查方法

stat /etc/passwd #查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题。
Linux下排查方法

cat /etc/passwd | grep -v nologin #查看除了不可登录以外的用户都有哪些,有没有新增的
Linux下排查方法

cat /etc/passwd | grep x:0 #查看哪些用户为root权限,有没有新增的
Linux下排查方法

cat /etc/passwd | grep /bin/bash #查看哪些用户使用shell
Linux下排查方法

查询可以远程登录的账号:awk ‘/$1|$6/{print $1}’ /etc/shadow
查询具有sudo权限的账号:more /etc/sudoers | grep -v “^#|^$” grep “ALL=(ALL)”
历史命令

很多的服务器会有存在多用户登陆情况,登陆root用户可查看其他用户的相关账户登录信息,.bash_history保存了用户的登陆所操作的命令信息
home/root/.bash_history
history查看历史命令

Linux下排查方法

cat .bash_history >>history.txt 保存历史命令
Linux下排查方法
查看端口

 

netstat –antp

Linux下排查方法
查看对应链接的文件路径

 

ls -l /proc/pid/exe

Linux下排查方法

ls -l /proc/*/exe | grep xxx #如果我们知道恶意程序的启动文件大致位置,可以使用这个发现无文件的恶意进程
Linux下排查方法

netstat -antlp | grep 172.16.222.198 | awk ‘{print $7}’ | cut -f1 -d”/“ 通过可疑的ip地址获取程序pid
Linux下排查方法
查看进程

 

ps -aux

Linux下排查方法

查看相关pid对应程序
ps –aux | grep pid
Linux下排查方法

监控某一应用线程数(如ssh)
ps -eLf | grep ssh| wc –l
监控网络客户连接数
netstat -n | grep tcp | grep 侦听端口 | wc -l
Linux下排查方法

ps aux –sort=pcpu | head -10 查看cpu占用率前十的进程,有时候可以发现
Linux下排查方法
开机启动项

启动项文件:

more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/

 
查看定时任务

crontab -l
Linux下排查方法

编辑定时任务
crontab –e
Linux下排查方法

crontab -u root –l 查看root用户任务计划
ls /var/spool/cron/ 查看每个用户自己的执行计划
Linux下排查方法

删除计划任务且控制计划任务不能写东西

sed ‘/gcc.sh/d’ /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab
常见的定时任务文件:
/var/spool/cron/* #centos的
/var/spool/cron/crontabs/* #ubuntu的
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab #异步定时
/etc/cron.hourly/*
/etc/cron.daily/*
/etc/cron.weekly/
/etc/cron.monthly/*

 
服务

chkconfig 查看开机启动项目
Linux下排查方法

chkconfig –list 查看服务自启状态
Linux下排查方法

systemctl list-unit-files |grep enabled
查找文件

find查找指定的文件:find /home1 -name *.php ! -name index.php
find查看最近一天修改的文件: find / -mtime -1 > /etc/aa.txt(查看修改的文件并保存到aa的txt文档)
查找并删除,liyong xargs find . -name .svn | xargs rm –rf
find / -size +10000k -print:查找大于10000k的文件
md5sum -b filename:查看文件的md5值

 
top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
默认top是根据cpu的占用情况进行排序的
Linux下排查方法

可通过按“b”键进行切换,可切换到按照内存使用情况进行排序
top -p pid 监控指定进程
Linux下排查方法

free 查看当前系统内存使用情况
Linux下排查方法

top -b -n1 | head
Linux下排查方法
host文件

有一些挖矿程序会修改 /etc/hosts文件
Linux下排查方法

Diff
Linux中的命令,Diff,可以查看两个文本文件的差异
日志分析

默认日志位置:var/log
1、定位有多少IP在爆破主机的root帐号:

grep “Failed password for root” /var/log/secure | awk ‘{print _=<>){ /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}’

 

 
查看命令状态

很多情况下,存在ps、netstat等一些常见命令被替换,可利用stat查看该状态,查看其修改时间
stat /bin/netstat
Linux下排查方法
文件清除

很多时候会遇到无法常看文件权限或是病毒在一直向某个文件写入程序,可尝试如下命令:
lsattr [恶意文件绝对路径]命令查看权限,
使用chattr -i [恶意文件绝对路径]解除文件锁定后删除。
chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/(chattr +i不让lib文件被写入删除)
结束某一进程:
Kill -9 pid

转自 https://www.hackjie.com/docs/3180.html

朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

学习使用

本文链接:

https://159357654.xyz/index.php/archives/380/(转载时请注明本文出处及文章链接)

评论 (0)
本篇文章评论功能已关闭