Exploit-Excercise-Nebula-0
前言
Exploit-Exercise是一个Linux平台下漏洞挖掘、分析的练习平台。下载地址
官方提供了个很多虚拟机、文档、挑战题目,用于学习各种计算机安全问题,如权限提升、漏洞分析、Exploit开发、调试、逆向工程和通用的网络安全问题。
Level 00——寻找特权程序
简介:
这一关需要你找到一个以“flag00”账户运行的“设置用户 ID”程序。你也可以通过仔细检查/目录下的顶层目录中是否存在可疑目录来找到它。
Solution:
根据题目描述,本关需要在系统中搜索一个设置了SUID的程序,这个程序将是以flag00身份运行的。
SUID(Set User ID)是 Linux 和 Unix 系统中一种特殊的文件权限机制,常用于可执行文件。它允许普通用户在运行该程序时临时获得该程序文件所有者的权限,通常是 root 权限。
要完成本关,需要掌握find
命令的用法。find命令的格式如下:
find [path...] [expression] |
expression可以跟选项。根据题目要求,我们要查找一个所属于flag00账号的可执行程序。find有一个选项叫-uid,后面跟用户的uid值。每个Linux账号都对应一个uid,且不重复。账户的UID可以用命令id
查看:
得到flag00用户的UID为999,接着从根目录”/“开始搜素这个神秘的程序:
部分 | 含义 |
---|---|
find / |
从根目录 / 开始递归查找 |
-uid 999 |
查找属主用户 ID 是 999 的文件 |
2>/dev/null |
把标准错误输出(stderr)重定向到 /dev/null ,即隐藏错误信息,比如“权限不够”、“没有访问权限”等 |
由于当前用户是level00,在进一些没有权限进入的目录进行搜索时,是会出错的,所以用2>/dev/null
将错误输出到/dev/null
这个空白设备里。Linux标准输入、标准输出、标准错误输出分别对应0、1和2。
搜索结果中,/home/bin/…/flag00/比较特殊,应该是我们要的程序:
按照提示,我们已经拥有了flag00的权限,执行getflag:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hxd的博客!