专栏首页FreeBuf针对提权小神器Sherlock的分析与利用

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

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

本文分享自微信公众号 - FreeBuf(freebuf),作者:zusheng

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 神探Sherlock如何用AI破案?教你在Excel中搭建一个人脸识别CNN网络

    【导读】人脸识别技术已经有了非常广泛的应用,国内大规模监控系统背后运用的技术就是人脸识别。

    AI科技大本营
  • Spring周边:XML

    DOCTYPE 声明为文档提供一个空间,通过引用外部文件、通过直接声明或通过这两种方式来标识其根元素和文档类型定义 (DTD)。DOCTYPE 声明可以包含下列...

    WEBJ2EE
  • Windows - 快速查找提权EXP

    在Windwos中,权限大概分为四种,分别是Users、Administrator、System、TrustedInstaller。在这四种权限中,我们经常接收...

    渗透攻击红队
  • 使用NLP生成个性化的Wordlist用于密码猜测爆破

    我编写了一个名为Rhodiola的工具,该工具可以分析目标数据(例如目标的tweets),并检测其中最常用的主题,以此来构建一个用于密码猜测/暴破的个性化的Wo...

    FB客服
  • Lockdoor Framework:一套自带大量网络安全资源的渗透测试框架

    该项目目前仍处于v1.0 BETA测试版本开发阶段,因此使用过程中可能会出现bug,广大用户可以直接将问题反馈到项目的GitHub主页。

    FB客服
  • 以色列公司利用Windows 0day制出间谍软件,瞄准学者和活动人士

    7月16日消息,安全实验室专家称,以色列监控公司Candiru(也被称作“Sourgum”)利用Windows零日漏洞发布了一款新间谍软件——DevilsTon...

    FB客服
  • 系统内核溢出提权

    在后渗透测试阶段,权限提升是一个绕不开的话题,其中"系统内核溢出提权"因其利用便捷 成为了最为常用的方法,在使用该方法提权时我们只需要去查看目标...

    重生信息安全
  • Github提权项目推荐

    项目介绍:该项目主要用于收集Windows平台下常用的提权方式以及载荷,目前还在逐步完善中和不断更新中

    Al1ex
  • 机器视觉检测中的图像预处理方法

    本文以Dalsa sherlock软件为例,一起来了解一下视觉检测中平滑模糊的图像处理方法。

    智能算法
  • 系统内核溢出提权

    在后渗透测试阶段,权限提升是一个绕不开的话题,其中"系统内核溢出提权"因其利用便捷成为了最为常用的方法,在使用该方法提权时我们只需要去查看目标系统中打了那些系统...

    Al1ex
  • 开发 | 小白学CNN以及Keras的速成

    AI 科技评论按:本文作者Sherlock,原文载于其知乎专栏深度炼丹,AI 科技评论已获得其授权发布。 一、为何要用Keras 如今在深度学习大火的时候,第三...

    AI科技评论
  • GWAS与eQTL相结合,进一步筛选疾病相关基因

    在GWAS分析结果中,大部分显著的SNP位点都位于非编码区,很难直接挖掘这些位点的调控机制。通常假设与疾病关联的SNP位点通过调控基因表达来发挥作用,而eQTL...

    生信修炼手册
  • GitHub 热点速览 Vol.34:亚马逊、微软开源项目带你学硬核技术

    以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用...

    HelloGitHub
  • 小白学CNN以及Keras的速成

    为何要用Keras 如今在深度学习大火的时候,第三方工具也层出不穷,比较出名的有Tensorflow,Caffe,Theano,MXNet,在如此多的第三方...

    AI研习社
  • Babel下的ES6兼容性与规范

    ES6标准发布后,前端人员也开发渐渐了解到了es6,但是由于兼容性的问题,仍然没有得到广泛的推广,不过业界也用了一些折中性的方案来解决兼容性和开发体系问题,但大...

    IMWeb前端团队
  • Babel下的ES6兼容性与规范

    ES6标准发布后,前端人员也开发渐渐了解到了es6,但是由于兼容性的问题,仍然没有得到广泛的推广,不过业界也用了一些折中性的方案来解决兼容性和开发体系问题,但大...

    IMWeb前端团队
  • 程序员小抄——GitHub 热点速览 Vol.44

    这周热点是什么?youtube-dl!就是那个超过 72k+ star,又因为版权问题被 GitHub 关闭的项目,GitHub Trending 上一篇“哀嚎...

    HelloGitHub
  • ES6 主要的新特性

    本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用。 ES6(ECMAScript 6)是即将到来的新版本JavaSc...

    庞小明
  • Python快速入门(三)

    Python作为一个,目前最火的编程语言之一,已经渗透到了各行各业。它易学好懂,拥有着丰富的库,功能齐全。人生苦短,就用Python。

    HuangWeiAI

扫码关注云+社区

领取腾讯云代金券