你将学到什么
- 使用基础命令调查系统
- 理解文件与权限机制
- 从日志和进程中寻找证据
通过安全练习掌握 Linux 命令、文件权限、进程、日志与权限边界。
共 39 题。
你已连接到 Linux 服务器;主目录中有一个写着旗标的文件。请用基本命令找到它。
Linux 中以 `.` 开头的文件默认不会被普通 `ls` 显示。服务器上有一个隐藏文件,请找到它。
`/var/log/app` 下有大量按日期归档的日志,只有一条 `ERROR` 记录包含旗标。请用 grep 或 find 找到它。
应用配置目录深处藏着一个类似私钥的文件。请用 `find` 根据扩展名和目录线索找到并检查它。
主目录中的压缩归档 `.tar.gz` 内藏有写着旗标的文件。请用 tar 解开并检查内容。
检查 `/usr/local/bin` 中的定时脚本及注册它的 cron 配置;脚本注释也可能含有线索。
`/etc` 下有多份服务配置,混有诱饵和真实线索;请连同注释一起仔细检查。
一条符号链接链连接了多个文件。请用 `ls` 或 `readlink` 一直跟到真实文件。
隐藏目录中有一个大小异常的大文件。请用 du 或 find 的大小选项定位并检查它。
某个脚本没有执行权限。请检查其权限,用 `chmod` 添加执行位后运行它。
扩展名为 `.jpg` 的文件未必真是图片。请使用 file 找出扩展名和实际内容不一致的文件。
请从数个后台进程中找到具有目标命令行参数的进程,练习 `ps` 的基本用法。
唯一的旗标文件藏在多层嵌套目录深处;请用 `find` 排除诱饵并找到它。
shell 启动时设置的环境变量中有一个保存旗标。请用 env 或 echo $变量名检查。
学习 Linux 基本命令和文件权限。请依据提示找到 SUID 文件,并使用题目指定的可执行文件取得旗标。
检查普通用户可免密码通过 sudo 运行的命令;某个命令可用已知 GTFOBins 技巧进入 shell。
系统包含 `/etc/cron.d`、`/etc/crontab` 和用户 crontab 等多处 cron 配置。检查它们,找出写有旗标的位置。
root 会定期运行一个 cron 脚本。检查其权限,并思考普通用户可写时下次执行会发生什么。
systemd 单元可在 `[Service]` 段设置环境变量。请检查已注册服务的定义和值。
多个目录由符号链接交错相连。请不要被诱饵提示文件误导,逐一跟随链接到真正的旗标文件。
脚本内有多个故意设置的拼写和语法错误,无法运行到最后。请用 Bash 调试功能逐一修复。
后台服务正在某个端口监听。请用 `ss` 或 `netstat` 找到端口,并以 `nc` 连接来接收旗标。
项目目录有多个以 `.bak`、`.tmp` 或 `~` 结尾的诱饵备份和临时文件;真正的旗标位于隐藏文件中。
访问日志包含大量记录。某个 IP 在短时间内产生了大量 404,将它这一连串请求的路径拼接起来即为旗标。请用管道组合 grep、awk、sort、uniq 等命令来拼出答案。