DSInternals/.github
Michael Grafnetter 4272076072
Improved directory structure and help (#74)
2019-01-12 19:58:56 +01:00
..
CONTRIBUTING.md Improved directory structure and help (#74) 2019-01-12 19:58:56 +01:00
README.md Improved directory structure and help (#74) 2019-01-12 19:58:56 +01:00

README.md

DSInternals PowerShell Module and Framework

MIT License PowerShell 3 | 4 | 5 Windows Server 2008 R2 | 2012 R2 | 2016 | 2019 .NET Framework 4.5.1+ Visual Studio 2015 | 2017

Introduction

The DSInternals project consists of these two parts:

DISCLAIMER: Features exposed through these tools are not supported by Microsoft. Improper use might cause irreversible damage to domain controllers or negatively impact domain security.

Author

Michael Grafnetter

Twitter Blog LinkedIn

I have created these tools in my spare time and I am using them while performing AD security audits and also in my lectures to demonstrate how Active Directory works internally. The code has many flaws and I could definitely do better if I had more free time.

I would like to thank all people who have contributed to the project by sending their feedback or by submitting their code. In case you would also like to help with this project, please see the CONTRIBUTING document.

Downloads

PowerShell Gallery Downloads NuGet Gallery Downloads GitHub Downloads

Since PowerShell 5, you can install the DSInternals module directly from the official PowerShell Gallery by running the following command:

Install-Module DSInternals -Force

Offline Module Distribution (PowerShell 3+)

  1. Download the current release from GitHub.
  2. Unblock the ZIP file, using either the Properties dialog or the Unblock-File cmdlet. If you fail to do so, all the extracted DLLs will inherit this attribute and PowerShell will refuse to load them.
  3. Extract the DSInternals directory to your PowerShell modules directory, e.g. C:\Windows\system32\WindowsPowerShell\v1.0\Modules\DSInternals or C:\Users\John\Documents\WindowsPowerShell\Modules\DSInternals.
  4. (Optional) If you copied the module to a different directory than advised in the previous step, you have to manually import it using the Import-Module cmdlet.

NuGet Packages

The easiest way of integrating the DSInternals functionality into .NET applications is by using the DSInternals Framework NuGet packages.

Building from Source Code

You can of course review the source code and compile the Module/Framework yourself. See the CONTRIBUTING guide for more info.

Documentation

Get-Help

The online version of PowerShell Get-Help documentation contains the list of all cmdlets and some usage examples.

Blog Posts

I have also published a series of articles about the DSInternals module on my blog. Here are a few of them:

Slide Decks

Continuous Integration

Release Build + Smoke Tests Debug Build + Unit Tests
Build Status Build Status

Acknowledgements

This project utilizes the following 3rd party copyrighted material:

  • ManagedEsent - Provides managed access to esent.dll, the embeddable database engine native to Windows.
  • AutoMapper - A convention-based object-object mapper in .NET.
  • NDceRpc - Integration of WCF and .NET with MS-RPC and binary serialization.
  • PBKDF2.NET - Provides PBKDF2 for .NET Framework.
  • Mimikatz - The No.1 tool for pass-the-hash attacks. Can use the credentials extracted by the DSInternals module to do some nasty stuff.
  • NTDSXtract - A framework for ntds.dit parsing written in Python.
  • Impacket - Various MSRPC-based protocols implemented in Python.
  • DIT Snapshot Viewer - A graphical inspection tool for Active Directory databases.
  • Esent Workbench - Great tool for displaying the structure of ntds.dit files.