前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >针对提权小神器Sherlock的分析与利用

针对提权小神器Sherlock的分析与利用

作者头像
FB客服
发布2018-02-24 10:49:35
1.9K0
发布2018-02-24 10:49:35
举报
文章被收录于专栏:FreeBufFreeBuf

01 Sherlock简介

Sherlock是一个在Windows下用于本地提权的PowerShell脚本。

目前包含了以下漏洞:

  • MS10-015 : User Mode to Ring (KiTrap0D)
  • MS10-092 : Task Scheduler
  • MS13-053 : NTUserMessageCall Win32k Kernel Pool Overflow
  • MS13-081 : TrackPopupMenuEx Win32k NULL Page
  • MS14-058 : TrackPopupMenu Win32k Null Pointer Dereference
  • MS15-051 : ClientCopyImage Win32k
  • MS15-078 : Font Driver Buffer Overflow
  • MS16-016 : ‘mrxdav.sys’ WebDAV
  • MS16-032 : Secondary Logon Handle

02 初步使用

本地加载脚本

Import-Module Sherlock.ps1

远程加载脚本

IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1')

发现漏洞:

Appears Vulnerable就是存在漏洞

验证:

可以发现提权成功,注意Sherlock只是验证,并不能帮助你直接进行利用。

03 隐藏的小技巧

除了上述的基本功能外,脚本里面还隐藏了一些作者没有介绍到的小功能

获取软件版本

Sherlock还可以让我们来获取软件的版本号,我们只需要运行Get-FileVersionInfo命令即可。

演示:

获取CPU架构

运行Get-Architecture命令,我们就可以知道CPU的架构是32位还是64位的。

演示:

04 Sherlock漏洞验证原理分析

Sherlock除了作者已经加入的那些漏洞,我们还可以自己来加入感兴趣的漏洞。再添加漏洞之前,我们先来分析一下Sherlock漏洞验证的原理。

在Sherlock中,每一个漏洞验证模块都是一个function,具体形式如下:

function Find-MS16032 { }

然后使用Get-Architecture来获取系统版本,判断系统版本是否存在提权漏洞。符合再进行下一步判断。

if ( $Architecture[1] -eq "AMD64" -or $Architecture[0] -eq "32-bit" )

然后通过Get-FileVersionInfo获取存在漏洞的文件的版本信息,主要提取后面两段数字。

然后就简单了,用一个switch+if对比版本就行了:

然后我们自己添加漏洞就简单了,在function New-ExploitTable中加入漏洞信息。

测试一下,我们先来创建一个function Find-MS16135:

然后在function Find-AllVulns中加入Find-MS16135就OK啦。

测试看看:

05 总结

整个框架总体思路就是这样咯,接下来就看小伙伴们来查找存在漏洞的文件版本了,目前我还没好的思路可以快速去寻找存在漏洞的文件版本,不知道大家有没有好的思路求分享啊。

项目地址:https://github.com/rasta-mouse/Sherlock

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 Sherlock简介
  • 02 初步使用
    • 本地加载脚本
      • 远程加载脚本
        • 发现漏洞:
          • 验证:
          • 03 隐藏的小技巧
            • 获取软件版本
              • 获取CPU架构
              • 04 Sherlock漏洞验证原理分析
              • 05 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档