GithubHelp home page GithubHelp logo

5l1v3r1 / zeroday-powershell Goto Github PK

View Code? Open in Web Editor NEW

This project forked from onelogicalmyth/zeroday-powershell

0.0 1.0 0.0 3.74 MB

A PowerShell example of the Windows zero day priv esc

PowerShell 92.07% C++ 7.93%

zeroday-powershell's Introduction

Usage

Set-ExecutionPolicy Bypass Process
.\exploit.ps1 -TargetFile C:\Windows\Some.dll

This will exploit the Windows operating system allowing you to modify the file Some.dll.

Example

Set-ExecutionPolicy Bypass Process
.\example.ps1

https://youtu.be/rNSpxJd3_BM

Finding Vulnerable DLL files

$aapsid = 'NT AUTHORITY\SYSTEM'

ForEach($file in (Get-ChildItem -File -recurse -Path 'C:\windows' -Filter *.dll -ErrorAction SilentlyContinue)) {
 
   $acl = Get-Acl -path $file.FullName
   ForEach($ace in $acl.Access) {
      If(($ace.FileSystemRights -eq
           [Security.AccessControl.FileSystemRights]::FullControl) -and 
            $ace.IdentityReference.Value -in $aapsid) {
               Write-Output $file.FullName
              
      }
        
   }
   
   }

Further Information

The first PoC was released by @SandboxEscaper on the 27th August 2018, however, is now removed from GitHub.

The exploit.dll and the code for the TriggerXPSPrint.cpp comes from her original PoC. The exploit.dll simply launches notepad. I tried to replicate the XPS print api into C# but using System.Printing or System.Drawing.Printing only calls the print job within the current user context, you need to use the API to get the spooler service to initate the print job.

The actual exploit process is the native hardlink and using the Schedule.Service COM object to execute the method SetSecurityDescriptor. This then overwrites the permissions on the hardlinked file thus also updating the DACL on the targetted file. The example.ps1 is purely an instance of how you could use this exploit to replace a SYSTEM level service dll file. In this case it was the XPS printer, but it could also be an executable stored within C:\Program Files for example.

This was patched by Microsoft on the 11th September 2018. The following link has the relevant KB numbers: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-8440

I since then have modified this to work with PowerShell Empire, you can read the pull request here: EmpireProject/Empire#1230

I have only tested this on Windows 10, in theory it should work on other versions.

zeroday-powershell's People

Contributors

onelogicalmyth avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.