【CyberSecurityLearning 39】逻辑卷以及格式化挂载、特殊权限(非常重要)

一、逻辑卷 格式化 挂载

fdisk  -l  看到sda的分区  sda1  sda2

挂载和卸载

1、将光驱从挂载目录中卸载掉
umount  /dev/sr0  卸载光驱
2、挂载光驱
mount  /dev/sr0  /media

挂载:将块设备 与 一个目录进行连接, 进入该目录相当于进入该设备

实验:

1、为虚拟机单独添加3快磁盘 sdb  sdc sdd

设置——选择硬盘——添加——出现弹框:
硬件类型:硬盘,下一步——》选择磁盘类型(SCSI)下一步——》最大磁盘大小20G——》将虚拟磁盘存储为单个文件(重复三遍)
三块添加完之后,开机。

开启后先确定三块磁盘是否存在:
cd /dev 
ls后看到(sdb、sdc、sdd)

2、将三块磁盘转换为物理卷pv 每个20G

pvcreat  /dev/sd[bcd](这里的中括号是正则表达式,表示中括号里面的每一个字符会被单独调用)
所以这条命令分别是对dev下的sdb、sdc、sdd进行物理卷的建立

用pvscan扫一下看有没有:

3、将三块磁盘合并成60G的卷组

vg是卷组的意思(volume group)

vgcreate 起的名字
vgcreate  vg_1901  /dev/sdb  /dev/sdc  /dev/sdd   建立一个名为vg_1901的卷组 里面磁盘/dev/sdb  /dev/sdc  /dev/sdd 

如果手滑少敲了一个/dev/sdd可以用:
 vgextend vg_1901 /dev/sdd补进去   # 添加物理卷进入卷组(卷组扩容)

vgdispaly  vg_1901 查看一下这个卷组多大  vgdisplay查看卷组详细信息

用命令字history可以查看以前的操作

4、从60G卷组中拿出30G建立逻辑卷 格式化挂载

lvcreate  -L  30G  -n  lv_1901  vg1901   建立一个名为lv_1901的逻辑卷大小30G

我是谁、我叫什么名字、我的妈妈是谁

cd  /dev/mapper  (mapper是映射)

dir  /mnt/1901lvm

5、格式化逻辑卷

mkfs.ext4  /dev/mapper/vg_1901-lv_1901  (格式化)

6、挂载使用

mkdir  /mnt/1901lvm
mount /dev/mapper/vg_1901-lv_1901  /mnt/1901lvm  挂载

7、验证

df  -Th  是否挂载成功

8、将刚刚建立出的30G逻辑卷扩容到50G

lvextend -L +20G /dev/mapper/vg_1901-lv_1901  逻辑卷扩容(要写文件路径)
resize2fs  /dev/mapper/vg_1901-lv_1901   文件系统扩容(重新定义文件系统大小)

df  -Th看到的是文件系统挂载信息

9、验证df -Th
 

练习:
1、添加一个新磁盘sde,将其建立为物理卷
2、扩容到系统中根‘’分区卷组中
3、为根分区逻辑卷多扩容出10G空间

练习

1、当前目录权限如下rwxrwxrwx,将权限修改为只有所属者可以进入并添加文件,属组用户可以进入浏览,其他用户无法进入。通过命令修改权限  rwxr-x---
chmod  g-w,o=--- 目录
chmod  750  目录

2、如何为系统中的find命令设定suid权限,设定后如何通过命令找出系统中哪些命令具有suid权限
which  find
chmod  u+s  /bin/find
find  /  -perm +4000
3、系统中有三块硬盘sdb sdc sdd 如何将其组合并建立一个大小为10G的逻辑卷,格式化并挂载到/mnt/lvm使用
pvcreate /dev/sd[bcd]
vgcreate  vg_lsc  /dev/sdb /dev/sdc /dev/sdd
lvcreate -L 10G  -n  lv_lsc  vg_lsc
mkfs.ext4  /dev/mapper/vg_lsc-lv_lsc
mount /dev/mapper/vg_lsc-lv_lsc  /mnt/lvm
4、根据3题设定逻辑卷将其进行扩容到20G
lvextend -L +10G  /dev/mapper/vg_lsc-lv_lsc
resize2fs /dev/mapper/vg_lsc-lv_lsc
df -Th
 

二、三个特殊权限

1、t   粘滞位  只对目录有效

特点:在目录中建立的文件只有文件的所属者可以删除。

把tmp目录删了后千万不要把终端关闭了,如果关闭了就再也打不开了(因为我们的图形化界面也要占用临时文件存放目录,你在图形化界面触发的任何操作,比如打开终端,实际上都要到临时文件)
所以tmp不能随便删除
解决方法:重启或者登出

赋权:chmod  o+t /tmp
          或者chmod 1777 /tmp(第一位是特殊权限为,写1表示粘滞位,这个位置还可以写0/1/2/4,每一位都有不同的作用)

2、sgid(用的不多)

sgid  (只对目录有效)
特点:在目录中建立的文件或者目录属组会继承父目录的数组
配置方法:
chmod  777  /tmp/test
chmod  g+s  /tmp/test
方法2:chmod  2777  /tmp/test

3、suid(非常重要)

suid(只对可执行文件有效),谁运行谁就是这个文件的所属者
作用:当一个可执行文件,具有suid权限,无论谁运行该文件,谁就具有该文件所属者的权限

which vim可以查看外部命令vim的位置

赋权方法:chmod  u+s   文件路径

应用1:vim

此时此刻切换成普通用户,这时候普通用户就是以root的身份运行vim
此时此刻如果登录了我的普通用户,开始使用vim,你就具有root的一切编辑能力,所有文件你都可以看所有文件都可以改!

这个还不是最狠的,因为像这种权限很容易被管理员排查出来,狠的是有的人渗透到你机体中,为了给它自己留后门,他通常情况下不会对这种非常敏感的命令设置suid,会设置一些普通的命令,比如find

应用2:find


现在所有运行find命令的用户都是会被当作root用户

怎么用?

现在切换普通用户:

find  /opt  -name  rh  -exec  "whoami" \;      希望输出



利用这个功能我知道了,凡是我利用find命令来触发另外一些命令的时候,它会认为是root用户在触发
现在想办法让他运行点别的东西,运行命令解释器是最有用的!只要去运行命令解释器,这个用户就有root的权限

查看当前的命令解释器:which bash  在/bin/bash
现在执行:find  /opt  -name  rh  -exec  "/bin/bash" \;

前面的标号是$不是#

在这个操作系统能使用的命令解释器不止是bash,查看:cat /etc/shells

刚才试的bash不行,现在试一下其他的命令解释器,比如dash
现在执行:find  /opt  -name  rh  -exec  "/bin/dash" \;

我们可以尝试用这个权限做一些其他操作:

这个就是一些常用的提权手段

很多人都喜欢:
一旦他渗透到这台主机里面,他会希望自己能够长期去潜入,问题就是一旦有人发现知道root用户不安全了,就想办法给自己留个后门
怎么留呢?它会建立一个不起眼的普通用户,建立这个普通用户也不会分配很厉害的权限,只会给当前本机里面的一些不太重要,或者不太显眼的一些命令赋suid
用这些用户一旦调用这个命令的时候它就可以想办法把它提权为root

针对这个问题怎么解决?

find / -perm 4755  (prem是权限的意思) 4755是suid赋权的权限

suid是以后进行筛选的时候服务器有没有被潜入的非常重要的筛选点,找出来就可以通过它切换成root,找不出来系统就很安全。

应用3:man

不起眼的命令处理find之外,man也可能

现在切换成普通用户
随便man个东西:man ls,回车


不行的话,就说明系统修复了

这个man的命令,sudo和不sudo有截然不同的区别:
用man ls进入,输入!whoami,显示的是Jerry
用sudo  man  ls,输入!whoami,显示的是root
现在就可以用passwd root给root用户改密码

总结:uid设定的方法

1、查找which(找外部命令)
用以下两个命令都可以提权
which vim  
chmod  u+s /usr/bin/vim
或者chmod  4755 /usr/bin/vim
无论谁用vim就有root的权限,这个很容易被发现,很明显


which find
chmod u+s /bin/find
普通用户  find /opt -name rh -exec "/bin/dash" \;(注意这个的作用就是要一条输出,因为你查的文件多,后面-exec就给你输出多条,没意义,我们要求就要一条输出)
find /opt -name rh这条命令执行完只有一次输出,-exec后面的命令就执行一次


#获得root权限

排查: find  /  -perm  4755针对权限进行查询系统中所有具有suid权限的命令

find  / -perm  +4000  忽视后面权限只要带suid的都查

find的用法:
find  /boot  -size  +4M  -exec cp  '{}'  /tmp  \;(exec属于find的选项)
find  /boot  -size  +4M  -exec “whoami”  \;(如果前面那个命令找出三个文件出来,-exec执行后面的命令,会出现3个root)
find查找出来的内容交给后面命令处理的时候,首先whoami只能自己处理自己(前面的命令是什么无所谓,只要让他有一次输出就行

-exec相当于前面这个命令找出来的结果的输出,利用这个输出把它转化成后面那条命令的运行,它输出几回我就运行几回

visudo命令

这个man的命令,sudo和不sudo有截然不同的区别:
用man ls进入,输入!whoami,显示的是Jerry
用sudo  man  ls,输入!whoami,显示的是root
现在就可以用passwd root给root用户改密码

我们平时用visudo给权限的时候,确认一下这个命令是不是能出现像man一样的交互界面
只要这个命令能出现man这种交互界面,它就可以被提权,因为只要进入交互界面在最后输入!就是当前用户输入的命令


 

猜你喜欢

转载自blog.csdn.net/Waffle666/article/details/114674704