首页 > 系统相关 >Linux环境中应急响应与排查溯源思路总结

Linux环境中应急响应与排查溯源思路总结

时间:2024-07-09 11:28:00浏览次数:31  
标签:文件 命令 etc 用户 排查 ls Linux 日志 溯源

0前言

在应急响应和溯源时,经常会遇见Linux系统环境,然后小编经常只记得思路忘记部分命令,下面是小编对Linux环境下应急响应和排查的思路总结。

本文来源无问社区(wwlib.cn)更多详细内容可前往观看icon-default.png?t=N7T8http://www.wwlib.cn/index.php/artread/artid/2729.html

1 目录文件分析
1.1 系统用户排查

黑客往往取得服务器控制权限后会添加系统用户,达到持续控制服务器的目的。

筛选用户ID=0(root用户) 或者 用户ID>=500(新建用户)的用户,可以快速查看是否有异常系统用户。

cat /etc/passwd | awk -F : '{if($3==0||$3>=500){print}}'

图片

黑客也可能新建passwd shadow文件存用户信息,所以需要查看是否存在多余的passwd

ls -ls /etc/passw* 
ls -ls /etc/shado*

图片

1.2 操作命令记录

黑客控制服务器后,通常会使用bash shell操作命令控制服务器

history  查看当前用户的历史命令

图片

如果黑客使用history -c 将历史命令进行清除,可以查看宿主目录下的.bash_history文件进行查看。 cat /用户名/.bash_history 查看指定用户的历史命令。

图片

1.3 敏感目录文件

检查下LInux系统下敏感的目录,通常恶意程序会在权限大的目录写入文件,-l 显示文件详细信息 -a 显示隐藏文件,-t  按时间进行排序。

ls –alt  /tmp/   存放所用用户的临时文件
ls –alt  /var/tmp/  存放所用用户的临时文件
ls -alt  /etc/init.d/ 存放服务启动脚本命令
ls -alt  /bin   存放开机相关的命令
ls -alt  /usr/bin  存放普通用户使用的命令
ls -alt  sbin 存放管理员用户使用的命令
ls -alt  /usr/sbin 存放网络服务器命令
ls -alt  /boot  存放启动和内核相关的文件
1.4 文件修改时间

Linux文件系统每个文件都有三种时间戳:

访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。

修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。

变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

stat  文件名 该命令可以查看文件生成的时间,对溯源排查起关键作用。

图片

常常查看以下两个文件的时间可以判断系统安装的时间,如果文件没有被删除系统不会使用到这两个文件。

stat  lost+found
stat  /root/anaconda-ks.cfg
2. 网络行为排查
2.1 重要辅助站点
1. https://www.virustotal.com/ , 国外知名安全站点,需翻墙,可查询文件MD5、IP、域名、URL是否恶意,也可上传文件进行病毒扫描。
2. https://x.threatbook.cn/ , 国内威胁情报站点,可查询文件MD5、IP、域名、URL是否恶意,也可上传文件进行病毒扫描。
3. http://beian.cndns.com/,国内站点备案查询,所有有企业备案的国内站点可认为是可信站点。
4. http://www.alexa.com/,全球站点排行查询,top100万的站点可认为是可信站点(国外站点没有备案这一说法)。
5. Google与Baidu等搜索引擎,输入文件MD5/IP/域名,有时候可以查询到对应病毒信息。
2.2 网络连接排查

使用命令 netstat -antop 查看当前的网络连接,排查可疑的服务、端口,外连的IP。

图片

如发现netstat定位出的pid有问题,可再通过 ps -aux |grep pid 可以进一步查看进程信息。

图片

并且可以进入虚拟文件目录查找该进程的可执行文件,使用ls  proc/pid grep -i exe命令。

图片

2.3 网络流量分析

流量分析可以使用tcpdump,主要分析下当前主机访问了哪些域名、URL、服务,或者有哪些外网IP在访问本地主机的哪些端口、服务和目录,又使用了何种协议等等。

例如,使用tcpdump观察到,主机访问了sjb555.3322.org这种动态域名,即可粗略猜测这是一个C&C服务器。

tcpdump -i eth0 port 53 -vv

图片

3 命令篡改分析
3.1 rpm命令校验

通常系统中了病毒,病毒会修改系统自带的命令,例如: top  ls  ps pstree  netstat  lsof  ss  sshd  ssh等等,达到反侦察的目的,所以需要检验下以上命令是否被修改替换。

rpm -V -a  查看所有被修改过的rpm包

图片

图片

rpm -V -f /bin/ls   确认ls 命令是否被替换过,没有任何输出代表没有被替换过。

图片

rpm -V -f /bin/ps   确认ls 命令是否被替换过,没有任何输出代表没有被替换过。

图片

注意:该方法只适用于redhat系列的操作系统

3.2 校验文件MD5值

使用md5sum工具计算出文件的md5值与干净系统对应文件的md5值进行比较。

图片

4 系统启动项排查
4.1 排查启动项

黑客为了保持病毒能够开机启动、登录启动或者定时启动,通常会有相应的启动项,

/etc/init.d/rc.local  
/etc/rc.local
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
.........
4.2 排查启动服务

chkconfig --list |grep on   检查自启服务

图片

4.3 定时或计划任务

任务计划:查看当前的任务计划有哪些,是否有后门木马程序启动相关信息

crontab  –l  -u  root
cat /var/spool/cron/*
cat /etc/crontab
cat /etc/cron.d/*
cat /etc/cron.daiy/*
cat /etc/cron.weekly/*
cat /etc/cron.monthly/*
5 日志分析
5.1 登录日志
/var/log/secure 记录所有相关的登录日志,包含ssh登录日志
last   用来列出目前与过去登录系统的用户相关信息  
lastb  显示登录失败的日志
tail  -f  /var/log/secure 实时监控登录日志
5.2 系统日志
/var/log/message 记录所有系统报错异常日志
/var/log/boot.log 记录系统开机日志
/var/log/dmesg 记录系统开机时内核产生的日志
/var/log/cron  记录计划任务执行日志
6 Linux有用命令
6.1  查找命令
which ls  查找命令所在位置
locate ls  模糊查找文件,基于数据库速度快
find  【文件路径】 【条件】 【动作】 速度慢,可以基于文件属性就行查找
find  /  -name  “pass*”支持通配符
find  /  -iname  不区分大小写
find  /  -user  root  根据文件宿主查找文件
find  / -perm -010 查找具有写权限的文件
find  / -type d  查看目录
6.2  lsof命令
lsof 用于查看指定进程文件或者目录打开的情况
lsof  -c  进程名称  显示指定进程打开的文件
lsof  -p  pid       显示指定进程id打开的文件
lsof   +d  /tmp   显示tmp目录下文件被打开的情况
lsof  +D  /tmp   递归显示tmp目录下被打开的文件情况
lsof  -i:80   显示监听80端口的进程

图片

6.3  strings命令

strings  -a  -n 60  /xmrig.exe 扫描二进制文件中连续60个字符的字符串,可以看到该程序是门罗币挖矿程序,过滤出来帮助文档和钱包地址。

图片

6.4  字符串处理
grep: 行提取命令 eg: grep "/bin/sh" /etc/passwd -n -v “root”
-i 忽略大小写
-n 显示行号
-v “root” 取反
cut: 列提取命令 eg: cut -d ":" -f 1,2 /etc/passwd 
-d “:” 指定分隔符,默认制表符为分隔符
-f  列号  截取指定列
awk '条件1{动作1} 条件2{动作2}' 文件名 awk列提命令
eg:awk '{ printf $1 "\t" $2 "\n"} ' student.txt
1、print 会自动输出换行符\n printf不会输出\n
2、$0 存储文件名,$1 $2 $3 变量依次每列数据
3、BEGIN{FS=":"} 指定分隔符: 或者 -F : 指定分隔符
条件:
1、一般用关系表达式作为条件,eg: BEGIN END 
2、x>10
动作:
1、格式化输出 printf
2、流程控制语句
统计命令wc: wc [选项] 文件名  eg: wc -l  /etc/passwd 
选项:
-l 只统计行数
-w 只统计单词数
-m 只统计字符数

以上大部分也是个人理解,难免会有错误,不足之处希望大家指正。

标签:文件,命令,etc,用户,排查,ls,Linux,日志,溯源
From: https://blog.csdn.net/wuwenshequ/article/details/140287538

相关文章

  • 应用程序会不会导致linux内核崩溃?
    应用程序有可能导致Linux内核崩溃,但这种情况并不是绝对的,它取决于多种因素。应用程序或Linux内核本身都可能存在bug。当应用程序的某部分逻辑与内核的某部分逻辑发生冲突时,有可能导致内核崩溃。例如,应用程序可能尝试访问非法的内存地址,或者触发内核中的某个未修复的错误。这......
  • PC的栈linux里能不能设置反过来,让栈从低地址往高地址长呀?
    在Linux系统中,默认情况下,栈(Stack)的生长方向是从高地址向低地址。这是由多种因素决定的,包括操作系统的内存管理策略、处理器的架构(如x86或ARM等)以及编程语言和编译器的设计。将栈分配在较高的内存地址,并且向低地址生长,可以简化内存管理。因为程序通常是从低地址向高地址分配数......
  • Linux 基础知识
    Smiling&Weeping----站在这,难免被遗忘    Linux基础命令这一部分我会带着大家了解Linux的一些基础操作,还有使用一些工具。让大家能够在遇到问题的时候,可以自行解决,如果大家有遇到什么问题的话,也可以在这里评论,我会及时给......
  • linux里面的常用命令4
    1.链接文件:暂时理解为快捷方式--link ln-makelinksbetweenfiles -s,--symbolic 创建符号链接(软链接)soft   makesymboliclinksinsteadofhardlinksln-s hunan xiang#hunan为源文件名xiang为链接文件名ln-s guangdong yue#guangdong......
  • Linux系统各版本系列网卡配置静态IP
    一、centos&redhat系列1.1centos7系统编辑网卡配置文件cd/etc/sysconfig/network-scriptsviifcfg-ens33将以下内容写入文件后保存DEVICE=ens33BOOTPROTO=staticONBOOT=yesUSERCTL=noTYPE=EthernetIPADDR=14.81.33.2NETMASK=255.255.255.0GATEWAY=14.81.33.254......
  • linux命令语法格式(非常详细)零基础入门到精通,收藏这一篇就够了
    一、命令的一般格式command[option]…[argument]…command[options][arguments]具体说明:1、command:表示命令的名称,如ls2、option:定义命令的执行特性,可以有长短两种选项:长选项:用–引导,后面跟完整的单词,如--help短选项:用-引导,后面跟单个的字符,如-a(1)多......
  • TNS问题排查 The listener supports no services
     检查tns的日志信息查看具体报错详情/u01/app/oracle/diag/tnslsnr/<hostname>/listener/alert/log.xml 修改litener.ora #listener.oraNetworkConfigurationFile:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora#GeneratedbyOracleco......
  • 腾讯云篇7、手动搭建 WordPress 个人站点(Linux)
    操作场景WordPress是一款使用PHP语言开发的博客平台,您可使用通过WordPress搭建属于个人的博客平台。本文以CentOS7.6操作系统的腾讯云云服务器为例,手动搭建WordPress个人站点。示例软件版本本文搭建的WordPress个人站点组成版本及说明如下:Linux:Linux操作系统,......
  • Linux系统运维命令:查看http的并发请求数及其TCP连接状态(使用netstat结合awk和sort,组合
    一、需求二、解决方法(一)解决思路(二)命令三、实例演示和命令解释(一)实例演示(二)命令解释四、扩展一、需求用户访问一个视频监控平台的web服务特别频繁,据客户说,有大概2000个用户,要随机访问这个视频监控平台,这样对带宽的要求非常大。因此,他们需要查看到底有多少个http的并......
  • linux centos8升级openssh与openssl
    LinuxOpenSSH升级升级openssh之前需要先升级openssl 1、升级准备##1.1、查看系统版本和ssh版本linux系统版本cat/etc/redhat-release#或者uname-aopenssh查看一下原安装版本ssh-Vopenssl查看一下原安装版本opensslversion 1.2、下载软件包Opens......