Linux - 安全排查 3

文章目录

查找攻击者写入的后门文件

思路分析

  1. 后门文件特征:

    常见扩展名:.php.jsp.jspx.py

    包含危险函数:system( )exec( )shell_exec( )passthru( )

    常位于:网站根目录,上传目录,临时目录

    文件名可能伪装:index.php.old.theme.css.php

  2. 检测策略

扫描危险函数 检查异常文件属性 分析文件内容 提取后门密码

查找步骤

递归搜索危险函数

bash 复制代码
# 扫描所有PHP文件中的系统命令执行函数
grep -r --include='*.php*' \
-e 'system(' \
-e 'exec(' \
-e 'shell_exec(' \
-e 'passthru(' \
/var/www/html

核心字段解析

  • -r

    递归搜索:检查 /var/www/html 及其所有子目录中的文件

  • --include=*.php

    文件过滤:仅搜索扩展名为 .php 的文件(其他文件如 .js.txt 会被忽略)

  • -e 'pattern'

    指定匹配模式:这里使用 4个 -e 参数 定义多个搜索模式(逻辑关系为 OR,匹配任意一个即命中)

搜索路径

  • /var/www/html :典型的 Linux Web 根目录 (Apache/Nginx 默认站点路径)

注意事项

  • 误报可能 :可能匹配到注释或无害代码(如 // system())。需人工验证结果
  • 不完整检测 :其他危险函数如 popen()proc_open() 、反引号 ` 未被包含(可追加 -e 参数)
  • 正则优化 :更精确的匹配可使用正则(例如 -e '\bsystem\s(' * 避免匹配 custom_system()

查找攻击者首次攻击成功的时间

思路分析:

  1. 攻击成功标志:

    系统入侵:成功登录(SSH/RDP)

    Web入侵:文件上传/代码执行

    持久化:后门安装

  2. 日志分析策略:

日志源 认证日志 Web访问日志 文件系统时间戳 进程创建记录 审计日志

详细操作命令与解释

  1. 分析认证日志(SSH登录)
bash 复制代码
# 查看所有成功登录记录(按时间排序)
grep "Accepted password" /var/log/secure | sort -k 1M -k 2n -k 3

# 查找特定IP的首次成功登录
grep "Accepted.*192.168.1.11" /var/log/secure | head -1      

关键字段:

  • Jul 12 14:30:00:攻击时间
  • root:被入侵账户
  • 192.168.1.11:攻击源IP
  1. 分析Web服务器日志(Apache)
bash 复制代码
# 查找文件上传请求
grep 'POST.*config.inc.php' /var/log/httpd/access_log

# 查找Webshell执行痕迹
grep 'cmd=' /var/log/httpd/access_log | awk '{print $4}'

# 按时间排序查看所有请求
awk '{print $4, $7, $8}' /var/log/httpd/access_log | sort | uniq

关键特征:

  • POST /upload.php:文件上传请求
  • GET /includes/config.inc.php?cmd=:Webshell执行
  • HTTP 200:成功响应
  1. 文件系统时间戳分析
bash 复制代码
# 查找最近修改的Web文件
find /var/www/html -mtime -1 -ls | sort -k 10

# 检查恶意文件创建时间
stat /var/www/html/includes/config.inc.php

# 输出示例:
# Access: 2025-07-12 14:35:00
# Modify: 2025-07-12 14:35:00  <-- 文件修改时间
# Change: 2025-07-12 14:35:00
  1. 进程创建分析
bash 复制代码
# 查看进程启动历史(需auditd)
ausearch -sc execve -i | grep '/var/tmp/.httpd'

# 检查cron任务添加时间
grep CRON /var/log/cron | grep 'curl.*mal.sh'

find命令详解

find 命令是 Linux/Unix 系统中功能最强大的文件搜索工具,支持按名称、类型、大小、时间等条件递归查找文件,并能对结果执行操作

一. 基本语法

bash 复制代码
find [搜索路径] [匹配条件] [操作]
  • 搜索路径 :默认为当前目录( .
  • 匹配条件:如文件名,类型,时间等(可组合)
  • 操作:如打印,删除等(默认为**-print**)

二. 核心匹配条件

1. 按名称查找

  • -name "模式" :区分大小写(支持通配符 ? , [ ] , 等)
bash 复制代码
find /etc -name "*.php"          #查找 /etc 下所有 .php 文件
  • -iname:不区分大小写
bash 复制代码
find . -iname "readme*"          #查找 README.md,readme.txt 等

2. 按类型查找(-type)

  • f:普通文件
  • d:目录
  • l:符号链接
  • s:套接字文件
  • b:块设备文件
bash 复制代码
find /var/log -type d               # 查找所有目录
find ~ -type f -name "*.php"        # 查找家目录下的 php 文件

3.按大小查找(-size)

  • +n: 大于 n
  • -n: 小于 n
  • n: 等于n
  • 单位:c (字节)、k (KB)、M (MB)、G(GB)
bash 复制代码
find / -size +100M        # 查找大于 100MB 的文件
find . -size -10k         # 查找小于 10KB 的文件

三. 对结果执行操作

1. 默认操作

  • -print:打印完整路径(默认操作)

2. 删除文件(delete)

bash 复制代码
find /tmp -name "*.temp" -delete        #删除所有 .temp 文件

3. 执行命令(-exec)

  • {} 代表文件名,\ ; 表示命令结束(注:\ 和 ; 之间无空格,因为显示问题这里不能连在一起)
bash 复制代码
# 将查找到的 .txt 文件复制到 backup 目录
find . -name "*.txt" -exec cp {} ./backup/ \;
相关推荐
豆是浪个2 小时前
Linux(Centos 7.6)命令详解:usermod
linux·运维·centos
极地星光2 小时前
网络检测:Linux下实时获取WiFi与热点状态
linux·网络
NUZGNAW6 小时前
VMware安装Centos 7
linux·运维·centos
Another Iso6 小时前
CentOs 7 MySql8.0.23之前的版本主从复制
linux·mysql·centos
A7bert7776 小时前
【YOLOv8-obb部署至RK3588】模型训练→转换RKNN→开发板部署
linux·c++·人工智能·python·yolo
Android采码蜂6 小时前
BLASTBufferQueue03-BufferQueueConsumer核心操作
android
Android采码蜂6 小时前
BLASTBufferQueue02-BufferQueueProducer核心操作
android
筑梦之路6 小时前
linux 系统找出磁盘IO占用元凶 —— 筑梦之路
linux·运维·服务器
搂……住6 小时前
shiro550反序列化漏洞复现(附带docker源)
安全·docker·容器