专栏首页逆向技术windows-System权限获取任意用户权限目录-举例GetTempPath

windows-System权限获取任意用户权限目录-举例GetTempPath

一丶简介

在System权限启动我们的程序之后.如果程序内部使用了GetTempPath()函数.或者使用了其它跟用户权限有关的函数.则获取的路径不是你想要的. 比如 你在System权限下使用了GetTempPath() 那么获取的temp路径有可能就是 "C:\Windows\Temp" 而我们想要获取的路径则是 "C:\user\xxx\Appdata\local\temp" 这里贴出代码. 原理就是 使用用户权限的Token 配合函数ExpandEnvironmentStringsForUserW 函数来获取.

二丶代码

#include <TlHelp32.h>
#include <userenv.h>
#pragma comment(lib, "Userenv.lib")

BOOL ExpandSysEnvsByName(const WCHAR* envsName, std::wstring& envsPath)
{
    HANDLE hToken = nullptr;
    HANDLE hProcessSnap = nullptr;
    PROCESSENTRY32 pe32 = { 0 };
    pe32.dwSize = sizeof(PROCESSENTRY32);

    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (INVALID_HANDLE_VALUE == hProcessSnap)
        return FALSE;
    if (!Process32First(hProcessSnap, &pe32))
        return FALSE;
    do
    {
        if (_wcsicmp(pe32.szExeFile, L"explorer.exe") == 0)
        {
            HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pe32.th32ProcessID);
            if (NULL == hProcess)
                return FALSE;
            if (!OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &hToken))
                return FALSE;
            CloseHandle(hProcessSnap);
            break;
        }
    } while (Process32Next(hProcessSnap, &pe32));

    WCHAR szEnvsPath[MAX_PATH] = { 0 };
    if (!ExpandEnvironmentStringsForUserW(hToken, envsName, szEnvsPath, MAX_PATH))
        return FALSE;

    envsPath = szEnvsPath;
    return TRUE;
}
int main()
{

    wstring Ret;
    ExpandSysEnvsByName(TEXT("%Appdata%"), Ret);
}

上方代码以appdata举例 %%这种环境变量大家可以多搜一下. 这里不整理了. 使用函数获取来的路径如下: Ret = "C:\Users\ibinary\AppData\Roaming"" 通过你自己的拼接路径就可以拼接处Temp路径了.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 内网渗透测试:初探远程桌面的安全问题

    远程桌面对了解内网渗透的人来说可能再熟悉不过了。在渗透测试中,拿下一台主机后有时候会选择开 3389 进远程桌面查看一下对方主机内有无一些有价值的东西可以利用。...

    FB客服
  • 内网渗透基石篇--权限提升

    在windows中,权限大概分为四种,分别是User、Administrator、System、TrustedInstallerTrus

    FB客服
  • 安全杂谈-Windows下的几种提权方式的粗略汇总

    随着系统管理员的安全意识的普遍提高,提权越来越成为广大渗透测试者所面临共同问题。本人水平有限,粗浅地总结了下几种提权方式,以及一些个人看法,并配合相应的演示。可...

    用户1631416
  • windows提权系列上篇

    在渗透测试中,提升自己的权限是经常遇到的问题,往往在渗透中最容易获取的权限就是一个webshell,如果网站是架设在Windows系统上的,这时就可能遇到这样的...

    信安之路
  • windows提权看这一篇就够了

    windows在日常的渗透中经常遇到,而在内网之前,经常会在所拿到的跳板机进行提权,这样后面横向,内网才能更好的展开(抓hash,必须得系统或管理员权限),所以...

    Gamma实验室
  • MAC常用终端命令行

    mukekeheart
  • APT29分析报告

    APT29是威胁组织,已被归于俄罗斯政府情报组织,APT29至少从2008年开始运作,具有YTTRIUM、The Dukes、Cozy Duke、Cozy Be...

    FB客服
  • 内网渗透 | RDP会话劫持实现未授权登录

    远程桌面在内网渗透中可以说是再常见不过了,在渗透测试中,拿下一台主机后有时候会选择开 3389 进远程桌面查看一下对方主机内有无一些有价值的东西可以利用。对远程...

    HACK学习
  • Windows 权限提升

    本篇内容是内网安全攻防:渗透测试实战指南时的阅读笔记,笔记大部分内容均来自此书,另外一部分来源于一些公开文档和非公开文档,参考链接中均有注明。

    重生信息安全
  • Windows提权的几种常用姿势

    当获取主机权限时,我们总是希望可以将普通用户提升为管理员用户,以便获得高权限完全控制目标主机。Windows常用的提权方式有:内核提权、数据库提权、系统配置错误...

    Bypass
  • metasploit、powershell之Windows错误系统配置漏洞实战提权

    我们在获得目标机一个普通的权限时,除了常规提权方法外,还可以通过查找目标主机错误的系统配置和漏洞来获取系统权限。本节所讲的“Trusted Service Pa...

    Ms08067安全实验室
  • 红队之windows用户和组

    用户帐户是对计算机用户身份的标识,本地用户帐户、密码存在本地计算机上,只对本机有效,存储在本地安全帐户数据库 SAM 中,文件路径:C:\Windows\Sys...

    黑白天安全
  • 红队测试之Windows提权小结

    本节主要针对Windows操作系统下的权限提升进行介绍,提权是后渗透重要的一环节,在权限较低的情况下,站在攻击者的视角进行内部网络安全测试、系统安全测试、应用安...

    FB客服
  • Metasploit、powershell之Windows错误系统配置漏洞实战提权

    ? 01 引言 我们在获得目标机一个普通的权限时,除了常规提权方法外,还可以通过查找目标主机错误的系统配置和漏洞来获取系统权限。本节所讲的“Trusted S...

    FB客服
  • CVE-2019-0841 DACL权限覆盖本地提权漏洞攻击分析

    近日国外的研究员Nabeel Ahmed纰漏了CVE-2019-0841的漏洞细节,该漏洞成功利用会使低权限用户获取到目标文件的“完全控制”权限,红队人员配合d...

    风流
  • 域渗透技巧

    由于每台服务器都需要注册用于Kerberos身份验证服务的SPN,因此这为在不进行大规模端口扫描的情况下收集有关内网域环境的信息提供了一个更加隐蔽的方法。

    Gamma实验室
  • 使用Metasploit绕过UAC的多种方法

    本文来源:https://www.cnblogs.com/backlion/p/10552137.html

    用户1631416
  • 凭据收集总结

    本来按计划应该学习横向移动,但是发现一个问题,如何横向?这就是我记录这一章的目的,提升权限之后获取凭证,利用已获取的凭证扩大战果才是正确的姿势,学习的主要资料是...

    重生信息安全
  • Windows Java Usage Tracker本地提权漏洞分析(CVE-2018-3211)

    近期,我们发现了一个Java Usage Tracker中的设计缺陷,可导致攻击者创建任意文件,注入指定参数,并实现本地权限提升。反之,该漏洞可以用于权限提升,...

    C4rpeDime

扫码关注云+社区

领取腾讯云代金券