Sysprep的那些事

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:http://www.cnblogs.com/pofante/articles/2150072.html

利用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:http://www.pfmboy.com/post/107.html

另种提权介绍

    比较常用的利用系统程序的方法是利用系统动态加载 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:http://net.zol.com.cn/402/4021155.html  http://aj4kyrudup.l31.yunpan.cn/lk/QG9pTSZycCyVn 针对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‎)


此处还有一个很不错的提权帖子:http://blog.kingsamchen.com/archives/801


你可能感兴趣的:(uac,提权,sysprep)