level 1 chmod权限修改
- 使用符号修改权限
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 分组权限
- 使用八进制修改权限
- 读权限 ® = 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:显示详细的输出。
示例
- 将文件
example.txt
的组更改为newgroup
:
chgrp newgroup example.txt
- 递归地将目录
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