Linux

Linux 安全 CTF 实战题

通过安全练习掌握 Linux 命令、文件权限、进程、日志与权限边界。

你将学到什么

  • 使用基础命令调查系统
  • 理解文件与权限机制
  • 从日志和进程中寻找证据

Linux挑战

共 39 题。

Linux难度 2

Linux-软件包信息:检查已安装软件包详情

系统安装了一个自制 deb 软件包。请用 `dpkg` 或 `apt` 查看其详情,并在描述中寻找隐藏信息。

Linux难度 2

Linux-进程追踪:找出运行中的目标进程

多个后台进程中有一个把旗标放在命令行参数里。请用 `ps` 列出并找出它。

Linux难度 2

Linux-用户调查:用 awk 筛选目标用户

系统中注册了多个用户。请用 `awk` 解析 `/etc/passwd` 找到满足条件的用户,再检查其主目录中的隐藏文件。

Linux难度 2

Linux-日志轮转:搜索压缩的旧日志

部分旧日志已被 gzip 压缩;请在不解压文件的情况下搜索其中的旗标。

Linux难度 2

Linux-日志探索:从多份日志中挖出旗标

应用与系统日志中只有一条 `DEBUG` 记录包含旗标。请用 `grep` 等工具筛选。

Linux难度 2

Linux-环境变量秘密:寻找名为 FLAG 的变量

系统设置了多个环境变量,其中包括诱饵凭据。请列出变量并找出保存旗标的那一个。

Linux难度 3

Linux-Capabilities:不依赖 SUID 的提权

系统中特定二进制文件被授予 Linux capabilities。请研究不使用 SUID 位的 capabilities 提权方法。

Linux难度 3

Linux-SUID:通过 find 理解提权风险

系统有一份设置了 SUID 位的 `find` 副本。本题在隔离环境中演示此类危险配置为何可导致高权限 shell。

Linux难度 3

Linux-proc 内存:查看进程环境变量

持续运行的守护进程将旗标保存在环境变量中。请通过 `/proc` 文件系统检查该进程。

Linux难度 3

Linux-strace:追踪系统调用找出文件

提供的二进制没有标准输出。请用 `strace` 追踪系统调用,确定它打开并读取的文件。

Linux难度 3

Linux-竞争条件:分析 TOCTOU 窗口

root 定期运行的清理脚本在检查与处理文件之间存在 TOCTOU 间隙;本题用于理解符号链接与时序风险。

Linux难度 4

Linux-内核模块:安全分析模拟驱动

本题将带 `/proc` 接口的脆弱内核模块作为安全的用户空间模拟进行分析。请从驱动源码片段找出特殊命令,并传给模拟器。

Linux难度 4

Linux-缓冲区溢出:利用 gets() 漏洞

提供了关闭保护机制的易受攻击 SUID C 二进制文件。利用缓冲区溢出将控制流转入隐藏函数。

Linux难度 5

Linux-eBPF Rootkit:揭开隐藏进程的真相

本题将 eBPF rootkit 调查安全地模拟为离线证据分析:不加载 eBPF,也不接触宿主内核;请检查提供的 bpftool 快照和 map 转储,复原隐藏文件路径。

Linux难度 5

Linux-内核利用:安全的 Dirty COW 模拟

本题以安全、确定性的用户空间模拟介绍 Dirty COW(CVE-2016-5195)涉及的 `mmap`、`MAP_PRIVATE` 与 `madvise`;请编译并运行提供的程序,检查生成结果。