bokutake的小栈

Welt von Bokutake


Explore Me
bokutake
bokutake的小栈
Welt von Bokutake
14
4
108
年轻人的....第一张四斋二类卡?
起因在三月九日时发现野生雪雪发了这张卡的申请进度的截图可是这又与 16.25 岁的本小可爱有什么关系
3月前 · bokutake
До свидания, 2018, Привет, 2019.
序言Be at war with your vices, at peace with your ne
5月前 · bokutake
Sony大法好第一弹 - WH1000XM2
序由于要过年了嘛,买点东西来犒劳犒劳自己,于是在种种机缘巧合与想到了和 索狗 MoeDev 吃娃娃菜
5月前 · bokutake
记九月七日作死--母校重游记
起因老师那群家伙们去郊游去了,留我们一群学生在学校给我们丢给了两张卷子,美其名曰--考练于是提前放学
10月前 · bokutake
会面群里绒布球第三弹--约电影
任务代号 SH-03,指定人MoeDev上海,中华人民共和国,地球烷,MoeDev,鹅,小霖, 代号
10月前 · bokutake
如何使Linux下非root的二进制绑定低端口(<=1024)
技术 bokutake · 1年前

实现

setcap 'cap_net_bind_service=+ep'  /path/to/yourbinary

注:Linux在2.1版本引入了Capabilities机制,其目标是消除需要执行某些操作的程序对root帐户的依赖。

关于Capability的介绍

传统UNIX的信任状模型非常简单,就是“超级用户对普通用户”模型。在这种模型中,一个进程要么什么都能做,要么几乎什么也不能做,这取决于进程的UID。如果一个进程需要执行绑定到私有端口、加载/卸载内核模块以及管理文件系统等操作时,就需要完全的root权限。很显然这样做对系统安全存在很大的威胁。UNIX系统中的SUID问题就是由这种信任状模型造成的。例如,一个普通用户需要使用ping命令。这是一个SUID命令,会以root的权限运行。
而实际上这个程序只是需要RAW套接字建立必要ICMP数据包,除此之外的其它root权限对这个程序都是没有必要的。如果程序编写不好,就可能被攻击者利用,获得系统的控制权。
使用能力(capability)可以减小这种风险。系统管理员为了系统的安全可以剥夺root用户的能力,这样即使root用户也将无法进行某些操作。而这个过程又是不可逆的,也就是说如果一种能力被删除,除非重新启动系统,否则即使root用户也无法重新添加被删除的能力。

关于能力的列表:

Capability介绍
CAP_CHOWN修改文件属主的权限
CAP_DAC_OVERRIDE忽略文件的DAC访问限制
CAP_DAC_READ_SEARCH忽略文件读及目录搜索的DAC访问限制
CAP_FOWNER忽略文件属主ID必须和进程用户ID相匹配的限制
CAP_FSETID允许设置文件的setuid位
CAP_KILL允许对不属于自己的进程发送信号
CAP_SETGID允许改变进程的组ID
CAP_SETUID允许改变进程的用户ID
CAP_SETPCAP允许向其他进程转移能力以及删除其他进程的能力
CAP_LINUX_IMMUTABLE允许修改文件的IMMUTABLE和APPEND属性标志
CAP_NET_BIND_SERVICE允许绑定到小于1024的端口
CAP_NET_BROADCAST允许网络广播和多播访问
CAP_NET_ADMIN允许执行网络管理任务
CAP_NET_RAW允许使用原始套接字
CAP_IPC_LOCK允许锁定共享内存片段
CAP_IPC_OWNER忽略IPC所有权检查
CAP_SYS_MODULE允许插入和删除内核模块
CAP_SYS_RAWIO允许直接访问/devport,/dev/mem,/dev/kmem及原始块设备
CAP_SYS_CHROOT允许使用chroot()系统调用
CAP_SYS_PTRACE允许跟踪任何进程
CAP_SYS_PACCT允许执行进程的BSD式审计
CAP_SYS_ADMIN允许执行系统管理任务,如加载或卸载文件系统、设置磁盘配额等
CAP_SYS_BOOT允许重新启动系统
CAP_SYS_NICE允许提升优先级及设置其他进程的优先级
CAP_SYS_RESOURCE忽略资源限制
CAP_SYS_TIME允许改变系统时钟
CAP_SYS_TTY_CONFIG允许配置TTY设备
CAP_MKNOD允许使用mknod()系统调用
CAP_LEASE允许修改文件锁的FL_LEASE标志
  评论
  • 您正在回复给 Poi