/ README.md
README.md
1  2 3 <p align="center"> 4 Monitor creation, deletion and changes to LDAP objects live during your pentest or system administration! 5 <br> 6 <img alt="GitHub downloads" src="https://img.shields.io/github/downloads/p0dalirius/LDAPmonitor/total"> 7 <img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/p0dalirius/LDAPmonitor"> 8 <a href="https://twitter.com/intent/follow?screen_name=podalirius_" title="Follow"><img src="https://img.shields.io/twitter/follow/podalirius_?label=Podalirius&style=social"></a> 9 <a href="https://www.youtube.com/c/Podalirius_?sub_confirmation=1" title="Subscribe"><img alt="YouTube Channel Subscribers" src="https://img.shields.io/youtube/channel/subscribers/UCF_x5O7CSfr82AfNVTKOv_A?style=social"></a> 10 <br> 11 </p> 12 13 With this tool you can quickly see if your attack worked and if it changed LDAP attributes of the target object. 14 15  16 17 ## Features 18 19 | Feature | [Python (.py)](./python/) | [CSharp (.exe)](./csharp/) | [Powershell (.ps1)](./powershell/) | 20 |---------|--------|--------|------------| 21 | LDAPS support | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 22 | Random delay in seconds between queries | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 23 | Custom delay in seconds between queries | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 24 | Save output to logfile | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 25 | Colored or not colored output with `--no-colors` | :heavy_check_mark: | :x: | :x: | 26 | Custom page size for paged queries | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 27 | Authenticate with user and password | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 28 | Authenticate as current shell user | :x: | :heavy_check_mark: | :heavy_check_mark: | 29 | Authenticate with LM:NT hashes | :heavy_check_mark: | :x: | :x: | 30 | Authenticate with kerberos tickets | :heavy_check_mark: | :x: | :x: | 31 | Option to ignore user logon events | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 32 | Custom search base | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 33 | Iterate over all naming contexts | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 34 35 ## Typical use cases 36 37 Here is a few use cases where this tool can be useful: 38 39 - Detect account lockout in real time 40  41 42 - Check if your privilege escalation worked (with ntlmrelay's `--escalate-user` option) 43  44 45 - Detect when users are login in to know when to start a network poisoning. 46  47 48 ## Cross platform ! 49 50 ### [In Python (.py)](./python/) 51 52  53 54 ### [In CSharp (.exe)](./csharp/) 55 56  57 58 ### [In Powershell (.ps1)](./powershell/) 59 60  61 62 ## Demonstration 63 64 https://user-images.githubusercontent.com/79218792/136900209-d2156d4c-d83d-4227-b51e-999ec99b2314.mp4 65 66 ## Limitations 67 68 LDAP paged queries returns **pageSize** results per page, and it takes approximately 1 second to query a page. Therefore your monitoring refresh rate is **(number of LDAP objects // pageSize)** seconds. On most domain controllers **pageSize = 5000**. 69 70 71 ## Contributing 72 73 Pull requests are welcome. Feel free to open an issue if you want to add other features.