博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sysprep的那些事
阅读量:6437 次
发布时间:2019-06-23

本文共 2549 字,大约阅读时间需要 8 分钟。

hot3.png

Windows7的账户控制:

    1、explorer是一个比较特殊的进程,虽然运行在普通用户权限下,但是微软为了减少UAC对用户的打扰,有些情况下不会出现UAC提醒。CoGetObject("3ad05575-8857-4850-9277-11b85bdb8e09");如果用别的普通用户权限去打开,会有UAC提醒,但是如果用explorer去打开,默认情况下是没有提醒的。

    2、使用CoGetObject("3ad05575-8857-4850-9277-11b85bdb8e09")得到一个COM对象IFileOperation,IFileOperation是一个功能很强大的文件操作接口。往system32里面copy东西。pFileOp->SetOperationFlags(FOF_NOCONFIRMATION|FOF_SILENT|FOFX_SHOWELEVATIONPROMPT|FOFX_NOCOPYHOOKS|FOFX_REQUIREELEVATION)一定要静默的copy,目标文件c:\windows\system32\sysprep\cryptbase.dll

    3、ShellExecuteEx运行c:\windows\system32\sysprep\sysprep.exe,可以带起CRYPTBASE.dll,这个DLL有足够高的权限了。

    要点:

    1、对explorer网开一面,explorer是个特殊的进程,一方面它长期和一群低权限的,另一方面,它又掌握着通向高权限的钥匙,许多情况下可以无声出入高权限进程的起居地(system文件夹和COM);

    2、对CRYPTBASE.dll网开一面,sysprep.exe启动加dll时辰会遵循一个法则:如果被加的dll在系统"Known DLLs"列表中那么就直接从system32目录加,而这个CRYPTBASE.dll虽然位于System32目录,但它恰恰不在"Known DLLs"中,于是CRYPTBASE.dll被优先从sysprep.exe目录启动了。第一点儿是要害,只要能往system目录里无声的copy东西,总会有办法提权的。

    3、如果把HKEY_CLASSES_ROOT\CLSID\{

3ad05575-8857-4850-9277-11b85bdb8e09}\Elevation的Enable改为0,这个工具就不灵了~不过也会带来副作用:不能通过explorer直接在关键目录右键新建、删除文件夹了。

   (via:

利用UAC白名单突破UAC控制提权:

  通过给系统中的UAC白名单程序传递特定的参数来让UAC白名单程序替我们完成相关操作。UAC白名单程序默认执行既有管理员权限,并且不会弹出UAC确认对话框。这里转出具体的三个例子:

  1. Wusa.exe exploit.cab /extract:c:\windows\system32\sysprep

    释放文件到系统目录。不弹出UAC框,并且可过360

  2. infDefault.exe exploit.inf

    修改注册表,可创建服务。不弹出UAC框,并且可过360

  3. PkgMgr.exe

    同Wusa。

    (via:

另种提权介绍

    比较常用的利用系统程序的方法是利用系统动态加载 DLL的特性,在系统中还有一份名单为 KnownDlls,当一个程序需要动态加载 DLL 的时候,会先在这份名单之中进行查找,如果找到则加载相应路径的DLL 文件,如果没有找到则

依照当前目录、 System32 目录的顺序进行查找,因此如果能找到一个程序动态调用的 DLL 文件不在KnownDlls 中,而在 System32 下面,则可以伪造一个相应的 DLL,来实现借助其他程序来执行需要的操作。

  在所有白名单程序中,正好有这样一个程序,即 sysprep.exe,它的位置为 System32/sysprep/,而它在启动时,会动态加载一个 CRYPTBASE.DLL,这个 DLL 在 System32 下面,因此 sysprep.exe 会在当前目录寻找的时候加载失

败,继而转到 System32 目录查找,试着临时生成一个假的 CRYPTBASE.DLL 放在 sysprep 文件夹下,在 sysprep.exe启动时,将加载假的 CRYPTBASE.DLL,从而执行我们需要的操作。

    sysprep.exe 加载假 CRYPTBASE.DLL线程注入白名单中的程序全部都在系统目录当中,因此要把生成的假 DLL 复制到程序目录中, 将会由于权限问题而触发 UAC,这样便失效了。因此,需要特别的方法来把假 DLL 给复制到系统目录内,并且不会触发系统的权限控制。

  这一步的操作也需要系统白名单的程序来实现,选用的程序为EXPLORER进程,首先使用远程线程的方法把DLL注入到EXPLORER进程,然后再通过EXPLORER把CRYPTBASE.DLL复制到指定目录UAC不会提示。所有操作完成后启动

sysprep.exe我们的DLL就会被加载,从而绕过成功。但这个方法缺点也很明显,在注入EXPLORER进程时,杀毒软件已经开始关注了。

   (via:   针对UAC的安全与研究--Instruder

另类功能:

    利用Sysprep功能,可以很方便地重装系统。

   1、运行Sysprep(此处以Windows 7为例:%SystemRoot%\system32\sysprep\sysprep.exe)

  2、在“系统清理操作”里选择“进入系统全新体验(OOBE)”并勾选“通用(G)”。 

 3、在“关机选项”里选择“重新启动”。 
 4、单击“确定”。(请三思后而行,因为按下“确定”键后就会立即重新启动并进行配置,所有的软件都会被干掉,和刚重装一样,C盘会不会被干掉还没有研究过) 
 5、等待配置完毕后启动,就和刚重装时一样了,比重装速度快、方便。

 (via:www.baike.com/wiki/sysprep‎)

此处还有一个很不错的提权帖子:

转载于:https://my.oschina.net/u/1188877/blog/172227

你可能感兴趣的文章
这些老外的开源技术养活了一票国产软件
查看>>
Maven实战(六)--- dependencies与dependencyManagement的区别
查看>>
创业者应该有的5个正常心态(转)
查看>>
php模式设计之 注册树模式
查看>>
【Android UI设计与开发】3.引导界面(三)实现应用程序只启动一次引导界面
查看>>
_ENV和_G
查看>>
别做操之过急的”无效将军”,做实实在在的”日拱一卒” 纵使一年不将军,不可一日不拱卒...
查看>>
Oracle Grid Infrastructure: Understanding Split-Brain Node Eviction (文档 ID 1546004.1)
查看>>
Linux改变进程优先级的nice命令
查看>>
**16.app后端如何保证通讯安全--url签名
查看>>
win32窗口机制之CreateWindow
查看>>
C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
查看>>
awakeFromNib小总结
查看>>
java知识大全积累篇
查看>>
Android OpenGL ES(十)绘制三角形Triangle .
查看>>
善于总结所做所学的内容
查看>>
Lua-简洁、轻量、可扩展的脚本语言
查看>>
org.hibernate.MappingException: entity class not found hbm可以解析,但是实体类不能解析...
查看>>
Android -- Drag&&Drop
查看>>
Extjs4:改变Grid单元格背景色(转载)
查看>>