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/ \;
相关推荐
Johny_Zhao9 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
用户9623779544814 小时前
DVWA 靶场实验报告 (High Level)
安全
火柴就是我14 小时前
让我们实现一个更好看的内部阴影按钮
android·flutter
数据智能老司机17 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机17 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544818 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star18 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
砖厂小工20 小时前
用 GLM + OpenClaw 打造你的 AI PR Review Agent — 让龙虾帮你审代码
android·github
张拭心21 小时前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
张拭心21 小时前
Android 17 来了!新特性介绍与适配建议
android·前端