sandbox
[TOC]
sandbox
sandbox检测工具
seccomp-tools dump ./file
有时候直接用这个指令没有检测到沙盒,一般是因为程序还没有执行到沙盒,随便输入执行到沙盒就行
prctl函数
- prctl函数原型:int prctl(int option,unsigned long argv2,unsigned long argv3,unsigned long argv4,unsigned long argv3)
- include/linux/prctl.h里面存储着prctl的所有参数的宏定义,prctl的五个参数中,其中第一个参数是你要做的事情,后面的参数都是对第一个参数的限定。
- 在第一个参数中,我们需要重点关注的参数有这两个: (1).PR_SET_SECCOMP(22):当第一个参数是PR_SET_SECCOMP,第二个参数argv2为1的时候,表示允许的系统调用有read,write,exit和sigreturn;当argv等于2的时候,表示允许的系统调用由argv3指向sock_fprog结构体定义,该结构体成员指向的sock_filter可以定义过滤任意系统调用和系统调用参数。(细节见下图) (2).PR_SET_NO_NEWPRIVS(38):prctl(38,1,0,0,0)表示禁用系统调用execve()函数,同时,这个选项可以通过fork()函数和clone()函数继承给子进程。
一个例子
- 这里的args[0],args[2]看着很奇怪,实际上就是第几个参数,rdi=args[0],rdx=args[2],所以这里可以使用write函数,但是每次只让读入一个字节