Perceiving Permissions(√)

简介: Perceiving Permissions(√)

level 1 chmod权限修改

  1. 使用符号修改权限
u+r,如上所述,为用户的权限添加了读取访问权限
g+wx添加对组权限的写入和执行访问权限
o-w 删除对世界权限的写入访问权限
a-rwx删除用户、组和世界的所有权限

chmod + mod【u=user;g = group;o = world(多个分组修改权限,使用逗号隔开)】 + (+/-) + 【权限】r / w / x + 【程序名】

chmod g+w,o=rw pwn  # group增加 write 权限,world 增加 write,read权限===>针对pwn程序
chmod u-rw pwn    # user 删除读写权限
chmod a+x pwn     # 所有用户组增加可执行权限
chmod u-rx,g-rx pwn  # user删除rw,group删除rw

注意:r-xrwxr-- 前三个,中间三个,后三个分别是user,group,world 分组权限

  1. 使用八进制修改权限
  • 读权限 ® = 4
  • 写权限 (w) = 2
  • 执行权限 (x) = 1

权限可以组合,例如:

  • 读 + 写 = 6
  • 读 + 执行 = 5
  • 写 + 执行 = 3
  • 读 + 写 + 执行 = 7
chmod 066 pwn
这里,066是八进制表示的权限设置,其中:

第一个数字0代表特殊权限(例如setuid、setgid和sticky bit),在这里我们不需要,所以设置为0。

第二个数字6代表组权限,设置为读写(rw-),在八进制中对应的是4(读)+ 2(写)= 6。

第三个数字6代表其他用户的权限,同样设置为读写(rw-),也是6。

level 2 chgrp修改访问权限

chgrp 是一个在 Unix 和类 Unix 系统(如 Linux)中用于改变文件或目录所属组的命令。这个命令并不需要通过 Python 编程来实现,因为它是 shell 中的一个内置命令。不过,我可以解释这个命令的工作原理并提供其基本用法。

基本用法

chgrp [选项] 组 文件...
  • :这是你想要将文件或目录更改到的目标组。
  • 文件...:这是要更
  • -c 或 --changes:仅当更改发生时才显示输出。
  • -f 或 --silent、--quiet:抑制大多数错误消息。
  • -h 或 --no-dereference:如果文件是符号链接,则更改符号链接本身所属的组,而不是它所指向的文件。
  • -R 或 --recursive:递归地更改指定目录及其内容所属的组。
  • -v 或 --verbose:显示详细的输出。

示例

  1. 将文件 example.txt 的组更改为 newgroup
chgrp newgroup example.txt
  1. 递归地将目录 mydir 及其所有内容的组更改为 newgroup
chgrp -R newgroup mydir/

bypass

hacker@permissions~groups-and-files:~$ id
uid=1000(hacker) gid=1000(hacker) groups=1000(hacker)
hacker@permissions~groups-and-files:~$ chgrp -hR hacker /flag
hacker@permissions~groups-and-files:~$ cat /flag
pwn.college{4A3KWfcF6HBHubtzJSoFt298iaw.dFzNyUDLwYTM2QzW}

level 3 chgrp修改组权限-组名混淆

hacker@permissions~fun-with-groups-names:~$ chgrp  hacker /flag
chgrp: invalid group: 'hacker'
hacker@permissions~fun-with-groups-names:~$ id
uid=1000(hacker) gid=1000(grp32018) groups=1000(grp32018)
hacker@permissions~fun-with-groups-names:~$ chgrp grp32018 /flag
hacker@permissions~fun-with-groups-names:~$ cat /flag
pwn.college{8d_OEyx-5aDyky7JKrGW3I4kl1r.dJzNyUDLwYTM2QzW}

level 4 chmod修改可读权限组

hacker@permissions~changing-permissions:~$ ls -l  /flag
-r-------- 1 root root 58 Jul 12 14:29 /flag
hacker@permissions~changing-permissions:~$ chmod o+rwx /flag
hacker@permissions~changing-permissions:~$ ls -l  /flag
-r-----rwx 1 root root 58 Jul 12 14:29 /flag
hacker@permissions~changing-permissions:~$ cat /flag
pwn.college{ceuahEL0mpqz62m_n3UOr3wVGA6.dNzNyUDLwYTM2QzW}

level 5 chmod清空组权限

u=rw为用户设置读写权限,并擦除执行权限
o=x仅设置世界的可执行权限,擦除读写权限
a=rwx为用户、组和世界设置读、写和可执行权限!
但是,如果要以与组权限不同的方式更改用户权限,该怎么办? 
假设您要为拥有的用户设置,但只为拥有的用户组设置? 
您可以通过将多个模式链接到 chmod 来实现这一点!rwr,

chmod u=rw,g=r /challenge/pwn将用户权限设置为读写,将组权限设置为只读
chmod a=r,u=rw /challenge/pwn将用户权限设置为读写权限,将组和世界权限设置为只读
此外,您可以通过以下方式将权限归零:-

chmod u=rw,g=r,o=- /challenge/pwn将用户权限设置为读写,
将组权限设置为只读,将世界权限设置为完全无
chmod u=-,g=-,o=rw pwn   # 清空user,group所有权限。更新替换world组权限

level 6 赋予文件所有权给指定用户

此外,您还可以通过使用 和 更改文件的组和用户所有权(假设您有足够的权限)chownchgrp

修改用户所有权:

chown [username] [file]
chown将该文件的所有权授予指定用户

此外,您还可以使用 chgrp 编辑组所有权:

chgrp [groupname] [file]
在此 chall 中,您需要 chown 或 chgrp ,以便您(或您的团队)拥有它,
然后您可以读取该文件。/flag
chown hacker /flag
chgrp hacker /flag

level 7 chmod授予执行权限

chmod +x programname

level 8 给文件设置SUID

使用chmod给文件设置suid,使得允许用户以文件所有者身份运行该程序

在许多情况下,非 root 用户需要提升的访问权限才能执行某些系统任务。 
系统管理员不能在每次用户想要执行只有 root/sudoers 才能完成的任务时都向他们提供密码。
“设置用户 ID”(SUID) 位允许用户以程序文件的所有者身份运行程序。

具有 SUID 列表的文件的权限如下所示:

-rwsr-xr-x 1 root root 232416 Dec 1 11:45 /usr/bin/sudo
代替可执行位的部分意味着程序可使用 SUID 执行。 
这意味着用户基本上可以作为所有者(在本例中为用户)执行此程序。sroot

作为文件的所有者,您可以使用 chmod 设置文件的 SUID 位:

chmod u+s [program]
但要小心! 将 SUID 位提供给可执行文件可能会为攻击者提供成为 root 的攻击媒介。 
您将在程序误用模块中了解有关此内容的更多信息。

现在,我们将让您将 SUID 位添加到可执行文件中,
以便为您生成一个 root shell!/challenge/getrootcat
目录
相关文章
|
Docker Windows 容器
解决 windows:An attempt was made to access a socket in a way forbidden by its access permissions
解决 windows:An attempt was made to access a socket in a way forbidden by its access permissions
2062 1
解决 windows:An attempt was made to access a socket in a way forbidden by its access permissions
|
关系型数据库 PostgreSQL Docker
docker:changing ownership of ‘.‘: Permission denied怎么办
docker:changing ownership of ‘.‘: Permission denied怎么办
501 0
docker:changing ownership of ‘.‘: Permission denied怎么办
|
.NET API Apache
[认证授权] 6.Permission Based Access Control
在前面5篇博客中介绍了OAuth2和OIDC(OpenId Connect),其作用是授权和认证。那么当我们得到OAuth2的Access Token或者OIDC的Id Token之后,我们的资源服务如何来验证这些token是否有权限来执行对资源的某一项操作呢?比如我有一个API,/books,它具...
1285 0