目录
- 目录
- 第58天:权限提升- 站权限后台漏洞第三方获取
- 第59天:权限提升-Win溢出漏洞及AT&SC&PS提权
- 第60天:权限提升-MY&MS&ORA等SQL数据库提权
- 第61天:权限提升-Redis&Postgre&令牌窃取&进程注入
- 第62天:权限提升-烂土豆&dll劫持&引 路径&服务权限
- 第63天:权限提升-Linux脏牛内核漏洞&SUID&信息收集
- 第64天:权限提升-Linux定时任务&环境变量&数据库
目录
第58天:权限提升- 站权限后台漏洞第三方获取
用户及用户组权限划分
提权目标:SYSTEM(系统)、管理员组(Administrators)
Windows系统内置了许多本地用户组,这些用户组本身都已经被赋予一些权限(permissions),它们具有管理本地计算机或访问本地资源的权限。只要用户账户加入到这些本地组内,这回用户账户也将具备该组所拥有的权限。
0x01普通权限
默认情况下,系统为用户分了7个组,并给每个组赋予不同的操作权限,
管理员组(Administrators)、
高权限用户组(Power Users)、
普通用户组(Users)、
备份操作组(Backup Operators)、
文件复制组(Replicator)、
来宾用户组(Guests)、
身份验证用户组(Ahthenticated users),
其中备份操作组和文件复制组为维护系统而设置,平时不会被使用。
管理员组拥有大部分的计算机操作权限(并不是全部),能够随意修改删除所有文件和修改系统设置只有程序信任组(特殊权限)。
再往下就是高权限用户组,这一部分用户也能做大部分事情,但是不能修改系统设置,不能运行一些涉及系统管理的程序。
普通用户组则被系统拴在了自己的地盘里,不能处理其他用户的文件和运行涉及管理的程序等。
来宾用户组的文件操作权限和普通用户组一样,但是无法执行更多的程序。
身份验证用户组(Ahthenticated users)经过ms验证程序登录的用户均属于此组。
0x02特殊权限
除了上面提到的7个默认权限分组,系统还存在一些特殊权限成员,这些成员是为了特殊用途而设置,分别是:
SYSTEM(系统)、
Trustedinstaller(信任程序模块)、
Everyone(所有人)、
CREATOR OWNER(创建者)等,
这些特殊成员不被任何内置用户组吸纳,属于完全独立出来的账户。
真正拥有“完全访问权”的只有一个成员:SYSTEM。这个成员是系统产生的,真正拥有整台计算机管理权限的账户,一般的操作是无法获取与它等价的权限的。
Everyone权限与普通用户组权限差不多,它的存在是为了让用户能访问被标记为“公有”的文件,这也是一些程序正常运行需要的访问权限——任何人都能正常访问被赋予Everyone权限的文件,包括来宾组成员。
被标记为CREATOR OWNER权限的文件只有建立文件的那个用户才能访问,做到了一定程度的隐私保护。
但是,所有的文件访问权限均可以被管理员组用户和SYSTEM成员忽略,除非用户使用了NTFS加密。
无论是普通权限还是特殊权限,它们都可以“叠加”使用,“叠加”就是指多个权限共同使用,例如一个账户原本属于Users组,而后我们把他加入Administrators组再加入Trustedinstaller等权限提升,那么现在这个账户便同时拥有两个或多个权限身份,而不是用管理员权限去覆盖原来身份。权限叠加并不是没有意义的,在一些需要特定身份访问的场合,用户只有为自己设置了指定的身份才能访问,这个时候“叠加”的使用就能减轻一部分劳动量了。
Windows提权命令
在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权
数据库提权的前提条件:服务器开启数据库服务及获取到最高权限用户密码
除Access数据库外,其他数据库基本都存在数据库提权的可能
流程:服务探针-信息收集-提权利用-获取权限
数据库应用提权在权限提升中的意义
在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权
WEB或本地环境如何探针数据库应用
1.通过探针判断有数据库相关的服务
2.通过端口扫描看是否开启对应端口
3.通过命令段看是否开启相关服务
4.通过浏览文件或文件夹判定是否安装相关数据库
数据库提权权限用户密码收集等方法
配置文件、储存文件、暴力拆解、其他方式
配置文件:一些需要调用数据库的程序会有配置文件记录账 密码
储存文件:将数据库中的一些储存文件下载还原,解析里面的账 密码
暴力拆解:通过爆破脚本等爆破密码
一般是前两种,第一种最常见。从相关的配置文件中获得账 密码
目前数据库提权对应的技术及方法等
要进行分类,根据数据库的不同使用不同的方法
前提条件和提权思路
前提:已获得webshell权限,借助数据库权限,获得服务器权限
进入后门,通过扫描端口等方式,确定对应的数据库
针对不同数据库使用不同方法提权
Mysql-UDF
信息收集:
MySQL数据库安装后默认继承系统权限,取得MySQL最高权限账户root账户的账 密码(账户为root,密码为自定义)后,可以调用dll文件并执行里面的命令执行函数来实现对系统命令的调用执行,实现提权
通过关键字寻找数据库配置文件,从其中找出root账 密码
数据库的安装目录下有“data”目录,“data”下的每个文件夹对应数据库,每个文件夹中三个名称相同但后缀名不同的文件对应一个表,其中“.MYD”文件对应表的数据。MySQL数据库的所有账 密码就保存在“MySQL所在的文件夹datamysqluser.MYD”中,需要MD5解密
root用户默认不支持外联,暴力破解时可以将爆破脚本上传到服务器,进行本地爆破
提权利用:
导出dll文件并执行命令执行函数实现提权
导出数据时根据MySQL版本选择不同的目录
mysql<5.1 导出目录c:/windows或system32
mysql=>5.1 导出安装目录/lib/plugin/
其中plugin目录需要自行创建
select version(); 查看版本
select @@basedir; 查看安装目录
一般通过脚本实现文件导入和命令执行
MySQL提权知识点
UDF提权知识点:(基于MYSQL调用命令执行函数)
1.读取 站数据库配置文件(了解其命名规则及查找技巧)
sql、data、inc、config、conn、database、common、include等
2.读取数据库存储或备份文件(了解其数据库存储格式及对应内容)
@@basedir/data/数据库名/表名.myd
3.利用脚本暴力猜解(了解数据库是否支持外联及如何开启外联)
远程本地暴力猜解,服务器本地暴力猜解
4.利用自定义执行函数导出dll文件进行命令执行
select version() select @@basedir
5.手工创建plugin目录或利用NTFS流创建
select ‘x’ into dumpfile ‘目录/lib/plugin::INDEX_ALLOCATION’;
MOF知识点:(基于MYSQL特性的安全问题)
导出自定义mof文件到系统目录加载
https://www.cnblogs.com/xishaonian/p/6384535.html
select load_file(‘C:/phpStudy/PHPTutorial/WWW/user_add.mof
‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
启动项知识点:(基于配合操作系统自启动)
导出自定义可执行文件到启动目录配合重启执行
将创建好的后门或执行文件进行服务器启动项写入,配合重启执行!
反弹知识点:(基于利用反弹特性命令执行)
nc -l -p 5577
MsSQL提权
使用xp_cmdshell进行提权
xp_cmdshell默认在mssql2000中是开启的,在mssql2005之后的版本中则默认禁止。如果用户拥有管理员sa权限则可以用sp_configure重修开启它。
查看xp_cmdshell:查看“数据库-系统数据库-master-可编程性-扩展储存过程-系统扩展储存过程”中有无sys.xp_cmdshell一项
启用:
关闭:
执行:
使用 sp_oacreate 进行提权
默认关闭,也需要先启动
启用:
关闭:
执行(whoami,并且回显):
使用 SQL Server 沙盒提权
https://blog.51cto.com/11797152/2411770
Mssql提权知识点
使用xp_cmdshell进行提权
xp_cmdshell默认在mssql2000中是开启的,在mssql2005之后的版本中则默认禁止。如果用户拥有管理员sa权限则可以用sp_configure重修开启它。
启用:
关闭:
执行:
如果 xp_cmdshell 被删除了,可以上传 xplog70.dll 进行恢复
使用 sp_oacreate 进行提权
主要是用来调用 OLE 对象,利用 OLE 对象的 run 方法执行系统命令。
启用:
关闭:
执行:
使用 SQL Server 沙盒提权
参考资料:https://blog.51cto.com/11797152/2411770
– 不开启的话在执行 xp_regwrite 会提示让我们开启,
–关闭沙盒模式,如果一次执行全部代码有问题,先执行上面两句代码。
–查询是否正常关闭,经过测试发现沙盒模式无论是开,还是关,都不会影响我们执行下面的语句。
– 执 行 系 统 命 令
沙盒模式 SandBoxMode 参数含义(默认是 2)
0:在任何所有者中禁止启用安全模式
1:为仅在允许范围内
2:必须在access模式下
3:完全开启
openrowset是可以通过OLE DB访问SQL Server数据库,OLE DB是应用程序链接到SQL Server的的驱动程序。
–恢复配置
Oracle提权
oracle数据库一般配合jsp建站,jsp 站后门不需要提权,自带system
Oracle数据库提权知识点
普通用户模式:
前提是拥有一个普通的oracle连接账 ,不需要DBA权限,可提权至DBA,并以oracle实例运行的权限执行操作系统命令。
DBA用户模式:(自动化工具演示)
拥有DBA账 密码,可以省去自己手动创建存储过程的繁琐步骤,一键执行测试。
注入提升模式:(sqlmap测试演示)
拥有一个oracle注入点,可以通过注入点直接执行系统命令,此种模式没有实现回显,需要自己验证。
(JSP 站不需要提权,自带system权限)
涉及资源:
mof提权原理及其过程:https://www.cnblogs.com/xishaonian/p/6384535.html
SQL Server提权方法汇总(MSSQL):https://blog.51cto.com/11797152/2411770
第61天:权限提升-Redis&Postgre&令牌窃取&进程注入

Redis数据库权限提升
Redis服务因配置不当,可被攻击者恶意利用。黑客借助Redis内置命令,可将现有数据恶意清空;如果Redis以root身份运行,黑客可往服务器上写入SSH公钥文件,直接登录服务器。
提权方法:
连接(未授权漏洞或密码)-利用如下方法提权
参考:https://blog.csdn.net/fly_hps/article/details/80937837
(1).利用计划任务执行命令反弹shell
(2).写ssh-keygen公钥然后使用私钥登陆
(3).权限较低往web物理路径写webshell
修复方案:
注意:以下操作,均需重启Redis后才能生效。
绑定需要访问数据库的IP。将127.0.0.1修改为需要访问此数据库的IP地址。
设置访问密码。在Redis.conf中requirepass字段后,设置添加访问密码。
修改Redis服务运行账 。以较低权限账 运行Redis服务,禁用账 的登录权限。
Redis连接-利用计划任务执行命令反弹shell
连接redis:
执行提权命令:
PostgreSQL数据库权限提升
PostgreSQL是一款关系型数据库。其9.3到11版本中存在一处“特性”,管理员或具有“COPYTO/FROM PROGRAM”权限的用户,可以使用这个特性执行任意命令。
提权利用的是漏洞:CVE-2019-9193、CVE-2018-1058
提权方法:
连接-利用漏洞-执行-提权
参考:https://vulhub.org/#/environments/postgres/
**修复方案:**升级版本或打上补丁
高权限账户
MySQL:root
MsSQL:sa
Oracle:DBA
Postgres:postgres
Windows2008&7令牌窃取提升-本地
进行远程过程调用时请求提升权限,然后调用它从而生成特权安全令牌以执行特权操作。当系统允许令牌不仅用于进程本身,还用于原始请求进程时,漏洞就会出现。
本地提权实验:获取会话-利用模块-窃取令牌-提权
适应系统:
Microsoft Windows XP Professional SP3和之前版本
Windows Server 2003 SP2和之前的版本
Windows Server 2003 x64和x64 SP2
Windows Server 2003(用于基于Itanium的系统SP2和先前版本)
Windows Server 2008 x32 x64
Windows Server 2008(用于基于Itanium的系统)
Windows Vista SP1和之前的版本
Windows Vista x64 SP1和之前的版本
只适用于2008之前的老版本
提权命令:
use incognito
list_tokens -u
impersonate_token “令牌名”
Windows2003&10进程注入提升
进程注入提权是本地提权方式的一种较为老的安全技术了,利用的是注入进程的所有者实现权限共享机制,这类技术主要利用在windows2008之前操作系统上.所以我们需要学习后续的本地提权更多的手法才能有针对高版本的系统。
pinjector进程注入工具针对-win2008以前操作系统
在cmd中运行该软件
加“-l”获取当前计算机的进程列表
加“-p 被注入的进程pid cmd.exe(反弹过去的程序) 反弹的端口 ”
用nc连接
pexec64 32进程注入工具针对-win2008及后操作系统
在cmd中运行该软件
可以通过ProcessExplorer看当前电脑的PID进程
加“PID”注入线程
用nc连接9999端口
涉及资源:
Redis未授权访问漏洞利用总结:https://blog.csdn.net/fly_hps/article/details/80937837
PostgreSQL 提权漏洞(CVE-2018-1058):https://vulhub.org/#/environments/postgres/CVE-2018-1058/
PostgreSQL 高权限命令执行漏洞(CVE-2019-9193):https://vulhub.org/#/environments/postgres/CVE-2019-9193/
C/C++ 进程代码注入与提权/降权:https://www.cnblogs.com/LyShark/p/13785619.html
提权降权工具(pexec64 32):https://www.blib.cn/soft/pexec.zip
进程资源管理器 v16.43:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
pinjector进程注入工具:https://www.tarasco.org/security/Process_Injector/processinjector.zip
微软常用运行库合集:搜索AiO Runtimes或All in One Runtimes
第62天:权限提升-烂土豆&dll劫持&引 路径&服务权限
RottenPotato(烂土豆)提权的原理简述如下:
1.欺骗“NT AUTHORITYSYSTEM”账户通过NTLM认证到我们控制的TCP终端。
2.对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITYSYSTEM”账户本地协商一个安全令牌。这个过程是通过一系列的Windows API调用实现的。
3.模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数的服务型账户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。
总结:一般从web拿到的webshell都是IIS服务器权限,是具有这个模仿权限的。
烂土豆比热土豆的优点是:
1.100%可靠
2.(当时)全版本通杀
3.立即
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!