5.控制文件和目录权限

mac2022-06-30  20

多类型用户

  用户被分配到不同的组里,现实中这些组可能是财务、工程、销售等。IT中,可能是开发人员、UI、网络管理员和数据库管理员等。我们的想法是将具有相似需求的人员放入被授予相关权限的组中,然后该组的每个成员都会继承组权限。

  默认情况下,root用户是root组的一部分。必须将系统上的每个新用户添加到组中才能继承该组的权限。

 

赋予权限

  必须为每个文件和目录分配使用它的不同身份的特定级别的权限。三个级别如下:

  r   读取          w  写   x 执行

  创建文件时,通常创建文件的用户是文件的所有者,用户组是用户的当前组。该文件的所有者可以授予它各种访问权限。

 

赋予个人用户权限

  将文件的所有权转移到其他用户以便他们能够控制权限,可以使用chown(或更改文件所有者)

  chown bob /tmp/bobsfile

  

赋予用户组权限

  要将文件的所有权从一个组转移到另一个组,使用chgrp命令。

  root组需要访问黑客工具,而安全人员只需要访问防御工具,如入侵检测系统(IDS)。

  chgrp security newIDS

  通过检查文件的权限来检查这些分配是否有效。

 

检查权限

  如果要查找为文件或目录的哪些用户赋予的权限,使用带有-l开关的ls命令。

  ls -l /usr/share/hashcat

  1.文件类型  2.所有者,组和用户的文件权限  3.链接数量  4,文件所有者         5.文件大小  6.文件创建或上次修改时间   7.文件名

  d代表目录    -表示文件       第一组代表所有者权限     第二组代表用户所在组的权限  最后一个,其他用户的权限

 

  用户只能执行二进制文件或脚本的权限

 

改变用户权限

  使用chmod来更改。只有root用户或文件所有者才能更改权限。

 

十进制权限改变法

  权限以二进制表示,因此on和off开关分别由1和0表示。可以将rwx权限视为三个on/off开关,赋予所有权限时,相当于111的二进制。

  如果我们想要表示所有者,组和所有用户的所有权限,可以按如下方式编写:

  7  7  7

  可以为每种类型的用户更改该文件的权限

  chmod 774 hashcat.hcstat

 

UGO权限改变法

  用户为u,组为g,其他用户为o

  - 移除一个权限  + 添加一个权限  = 设置一个权限

  在操作符之后,包括要添加或删除的权限(rwx),最后包含要应用它的文件的名称。

  chmod u-w hashcat.hcstat   删除用对对文件的写入权限

  chmod u+x,o+x hashcat.hcstat   

 

给新程序赋予root权限

  作为黑客,经常要下载新的工具,但linux会自动给文件和目录默认分配666和777权限。默认情况下,下载文件将无法立即执行它。通常会提示你,permission denied。你需要给自己一个root身份并执行,使用chmod执行文件的权限。

  chmod 766 newhackertool

  

赋予默认的安全级别权限

  linux自动分配基本权限(通常文件666和目录777)。可以使用umask(或unmask)方法更改分配给每个用户创建的文件和目录的默认权限。umask方法表示要从文件或目录的基本值中减去的权限,使其更安全。

  umask对应三个十进制数字,从权限值中减去umask值,得到新的权限值。

  当创建新文件或目录时,权限的默认值减去umask中的值,得到最后的使用值。

  kali中,与大多数 debian系统一样,umask预先配置为022,意味着kali文件默认值为644,目录为755

  umask值对系统上所有用户都不是同一的。每个用户都可以单独设置文件和目录umask默认值,这个设置在.profile文件中。要更改用户的umask值,请编辑该文件/home/username/.profile。

 

特别权限

  除了三个通用权限rwx,linux还有三个特殊权限。

  设置用户ID(或SUID),设置组ID(或SGID)和粘滞位。

 

使用SUID授予临时root权限

  你可能遇到过这样一种情况:有的文件需要所有其他用户都有权限去执行,比如这个用户是非root用户,自己也可以更改自己的密码。在这种情况下,你可以通过在程序上设置SUID位来临时授予所有者的 权限以执行该文件。

  基本上,SUID位表示任何用户都可以使用所有者权限执行该文件,但这些权限不会超出该文件的使用范围。

   要设置SUID位,请在常规权限之前输入4,具有644的新结果权限的文件表示为4644

  chmod 4644 filename

 

使用SUID授予root用户组权限

  SGID授予临时权限,但它授予文件所有者组的权限,而不是文件所有者的权限。你给“施工1队”用户组权限,这个用户如果在“施工1队”里,那么他也拥有这个组的权限。给这个组设置执行多少文件的权限,这个组里的所有用户的权限默认就可以执行多少文件的权限。

  应用于目录时,SGID位的工作方式略有不同:当该位置在目录中,创建的新文件的所有权将转到目录创建者的组,而不是文件创建者的组。该组中的所有用户都可以执行文件,而不仅仅是单个用户。

  SGID位在常规权限之前表示为2,644的新文件将表示为2644

  chmod 2644 filename       【如果你是2组的用户,创建它是,它将默认这个目录的组所有的用户都是这个权限】

  

过时的粘滞位

  粘滞位是你可以在目录上 设置的权限位,以允许用户删除或重命名该目录中的文件。它是旧Unix系统的遗留物,现代系统(如linux)忽略了它。仿佛windows中的cmd和powershell。

 

 提权

  作为黑客,知道以上伏笔后这些特殊权限就可用于提权,从而使普通用户获得root或sysadmin权限以及相关的最高权限,在系统上执行任何操作。

  一种方法是利用SUID位。系统管理员或软件开发人员可以在程序上设置SUID位,以允许该程序访问具有root权限的文件。例如,需要更改密码的脚本通常具有SUID位设置。可以使用该权限获取临时root权限并执行恶意操作,例如访问/etc/shadow中的密码。

  查找,具有root或sysadmin,具有权限4000的文件。

  find / -user root -perm -4000           

  输出显示许多具有SUID位设置的文件。进入/usr/bin目录,其中包含许多这些文件,运行ls -l找到sudo文件。

  我们发现s代替了x,这就是linux表示SUID位已设置的方式。这意味任何人运行sudo文件时都具有root权限。这可能是系统管理员自己设置的,也可能是黑客设置的潜在攻击媒介。例如,某些应用程序需要访问/etc/shadow文件才能成功完成其任务。如果攻击者可以控制该应用程序,他可以使用该程序访问linux系统上的密码。作为防御者,知道攻击过程就可以第一时间发现问题并堵住它。良好的测试攻击有助于明确的防御方式。SGID同理。

  

 

  

转载于:https://www.cnblogs.com/sec875/articles/10876995.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)