内网后渗透攻击过程(实验环境)--2、权限提升

用途限制声明
本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

在内网后渗透攻击中,进行信息收集后就是要进行权限的提升,通常在渗透中很有可能只能获得一个系统的Guest或者User权限,低权限会受到很多的限制,在实施横向渗透或者提权攻击会很困难,所以我们需要进行权限的提升,比如将访问权限从Guset提升到User,再到Administrator,最后到System级别。

渗透的最终目的是获取服务器的最高权限,既是windows管理员账号的权限,或者linux系统的root权限。提升权限的方式有以下两类。

纵向提权:低权限角色获得高权限角色的权限。例如,一个webshell权限通过提权之后拥有管理员的权限,那么就是纵向提权。

横向提权:获得同级别角色的权限。

那么,如何进行权限提升呢,有四种方法:

  1. 利用系统或软件漏洞的权限提升
    主要通过攻击目标系统(如 Windows、Linux)或运行的应用软件(如数据库、Web 服务等)存在的安全漏洞(如内核漏洞、缓冲区溢出、提权漏洞等),从低权限账户直接提升至最高权限(管理员 /root)。

  2. 利用配置错误的权限提升
    针对目标系统或服务的不安全配置(如弱密码、默认凭证、不当的文件 / 服务权限设置、凭证泄露、服务以高权限运行但存在可利用的配置缺陷等),通过获取高权限凭证、滥用配置缺陷等方式提升权限。

  3. 令牌窃取

  4. Hash攻击

一、利用系统或软件漏洞的权限提升

接下来进行操作,首先我们已经通过漏洞获得一个内网服务器的权限,查看当前的权限,

命令:whoami/groups

通过查询可以看到属于标准用户,那么就需要将提升至管理员权限。

我们使用第一个办法来进行权限提升,就是本地溢出漏洞来进行提高权限,我先介绍以下原理以及流程。

一、核心原理

本地溢出提权的本质是 “滥用高权限程序的内存漏洞”,具体逻辑如下:

  1. 程序权限与漏洞基础
    目标系统中存在某些以高权限(如 Windows 的SYSTEM、Linux 的root)运行的程序(如系统服务、SUID 程序、驱动等),这些程序因开发时未严格校验输入长度(如未限制用户输入的字符串长度),存在缓冲区溢出漏洞

    缓冲区是程序在内存中开辟的一块连续存储空间,用于临时存放数据。当输入数据的长度超过缓冲区的容量时,多余的数据会 “溢出” 到相邻的内存区域(如存放程序执行地址、函数返回值的区域)。

  2. 控制程序执行流
    攻击者构造的恶意输入(即 “ exploit )会包含两部分:

    • 大量填充数据(用于填满缓冲区,覆盖相邻内存);
    • 恶意代码(如获取高权限 shell 的代码,称为 “payload”);
    • 特定的 “返回地址”(指向恶意代码在内存中的位置)。

    当有漏洞的高权限程序处理该输入时,溢出的数据会覆盖程序原本的 “返回地址”(即程序执行完当前函数后应跳转的位置),迫使程序跳转到攻击者预先设置的恶意代码地址,从而执行 payload。

  3. 继承高权限
    由于触发漏洞的程序本身以高权限运行(如root),其执行的恶意代码也会继承该权限,攻击者因此获得目标系统的最高权限(如root shell)。

二、操作逻辑(简化流程)

在授权测试中,利用本地溢出漏洞提权的大致步骤如下(具体细节因漏洞和系统而异)

  1. 信息收集:定位目标漏洞

    • 确认目标系统版本(如 Linux 内核版本、Windows 系统版本)、已安装的程序 / 服务,排查已知的本地溢出漏洞(可参考漏洞库如 CVE、Exploit-DB)。
    • 重点关注以高权限运行的程序:
      • Linux 中可通过ps aux查看进程权限,或find / -perm -4000 2>/dev/null查找 SUID 程序(SUID 程序执行时会继承所有者权限,若所有者为 root 则风险极高);
      • Windows 中可通过 “服务” 管理界面查看以 “Local System” 权限运行的服务。
  2. 漏洞分析:确定溢出细节

    • 若漏洞已公开,可直接获取公开的 exploit 代码(需注意适配系统版本);
    • 若为未知漏洞,需通过调试工具(如 GDB、x64dbg)分析程序:确定缓冲区大小(通过 “模糊测试” 逐步增加输入长度,观察程序崩溃时的输入长度)、找到可覆盖的返回地址位置、判断内存保护机制(如 ASLR、DEP 是否开启,需针对性绕过)。
  3. 构造并调试 exploit

    • 根据漏洞细节构造 exploit:用填充数据覆盖缓冲区,设置返回地址指向 payload,加入适配系统的 payload(如 Linux 的execve("/bin/sh", ...)、Windows 的CreateProcessA启动 cmd)。
    • 若系统开启内存保护(如 ASLR 随机化内存地址),需通过 “信息泄露” 漏洞获取内存地址,或利用 “ROP 链”(Return-Oriented Programming)绕过保护。
  4. 执行 exploit,获取权限

    • 在目标系统中以低权限执行 exploit,触发有漏洞的高权限程序;
    • 若成功,程序会执行 payload,返回高权限 shell(如 Linux 的#提示符、Windows 的 “管理员” cmd)。

首先输入getuid命令查看已经获得的权限

先尝试利用getsystem进行提权

无法提权,那就利用系统相关漏洞进行提权了,首先查询系统相关信息以及补丁

我们可以看到属于windows7 并且只打了两个补丁,我们可以使用最新的ms16-032来尝试提权,对应的补丁编号是KB3139914,基本每一个补丁都对应一个漏洞。

接下来准备提权,先把会话转为后台执行,然后搜索ms16_032

然后使用,设置“session"进行提权操作,这里指定”session"为5,在使用本地提权模块前,必须先建立一个低权限会话(例如通过远程漏洞攻击或其他方式获得的普通用户权限),然后指定该会话 ID,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值