Commit Graph

181 Commits

Author SHA1 Message Date
HarmJ0y f94a5d298a swapped default kerberoasting output formats 2018-07-02 13:08:36 -04:00
HarmJ0y be932ce2be re-added -Domain to Get-DomainForeignUser/GroupMember 2017-11-12 13:28:17 -08:00
HarmJ0y 398b0f2246 -Redid the default DC bindserver logic for Get-DomainSearcher
-fixed Get-DomainForeignUser / Get-DomainForeignGroupMember when using a global catalog
    -target group/member domains are now extracted from found DN names
2017-10-29 17:44:25 -07:00
HarmJ0y 50e18ef8ab -changed default enumeration method for Get-DomainTrust to LDAP
-Added WhenCreated/WhenChanged as default output for Get-DomainTrust
2017-10-15 21:21:44 -07:00
HarmJ0y f6e6c09b8b Added mod to Get-DomainSPNTicket from @leechristensen to better parse tickets 2017-10-15 20:46:13 -07:00
HarmJ0y c5eb994f84 corrected verbose output for some PowerView functions 2017-09-17 12:55:10 -07:00
HarmJ0y fe7746f030 Added Remove-DomainObjectAcl 2017-09-17 12:53:21 -07:00
HarmJ0y 35452ce62f Fixed Kerberoasting output so it at least cracks now for john's new format change. 2017-09-17 12:11:06 -07:00
HarmJ0y a4a3ae5492 Fixed New-ADObjectAccessControlEntry so -PrincipalIdentity now accepts built-in sids. 2017-09-17 12:03:22 -07:00
Will e24d64224b Merge pull request #243 from cfalta/master
Host parsing extension for IP ranges
2017-09-17 14:25:57 -04:00
Andy Robbins fcc35ac7e7 Add Remove-DomainGroupMember function
Add-DomainGroupMember allows for adding users to a group, and is especially useful given its ability to supply alternate credentials when establishing the connection to the DC. Remove-DomainGroupMember is intended to act as a "cleanup" function for attack paths that abuse DACL misconfigurations, where we need to remove a principal from a group after we are done abusing that group's existing permissions.
2017-09-17 10:40:55 -07:00
b33f b038f09ceb Typo fix 2017-07-22 17:04:44 +01:00
b33f 7a3e16ace5 +Region check on Find-DomainLocalGroupMember
If a user does not manually specify $GroupName it defaults to "Administrators" which may not be valid in specific regions. I added a check to pull out the Group Name from the Admin SID, see:
https://github.com/PowerShellMafia/PowerSploit/issues/176
2017-07-22 14:33:20 +01:00
b33f 0bbf86e021 Merge pull request #241 from byt3bl33d3r/dev
Fixed alias typo for Find-GPOComputerAdmin
2017-07-17 23:14:12 +01:00
HarmJ0y 872f711e3d -Added the dynamic -UACFilter parameter that completes based on the $UACEnum enumeration
Example: Get-DomainUser -UACFilter DONT_REQ_PREAUTH,NOT_PASSWORD_EXPIRED
        Returns users with kerberos preauth not set AND where the password isn't expired
-Integrated New-DynamicParameter from beatcracker in order to accomplish the dynamic params
-Corrected from help typos
2017-06-18 20:00:12 -04:00
HarmJ0y 7dc41b6fe4 For any "-Identity" values formatted as distinguishednames passed to Verb-Domain* functions,
the object's domain is now extracted from the dn and the directory searcher is rebound to the proper domain.
2017-06-17 21:23:11 -04:00
HarmJ0y 7e4d7ee298 Added Sacl enumeration to Get-DomainObjectACL 2017-06-17 01:33:05 -04:00
HarmJ0y d0e4e270f1 Convert-LDAPProperty now properly parses sidHistory with multiple values 2017-06-16 16:43:23 -04:00
HarmJ0y 035166385e -Added Get-DomainObjectAttributeHistory to retrieve attribute replication metadata from domain objects
-Added Get-DomainObjectLinkedAttributeHistory to retrieve linked attribute replication metadata from domain objects (i.e. group memberships)
-Added Get-DomainGroupMemberDeleted to retrieve information on group members that were removed from a specified group at some point
2017-06-13 19:47:33 -04:00
HarmJ0y 1bfe3a2715 Updated Find-DomainObjectPropertyOutlier approach. 2017-06-13 17:13:17 -04:00
byt3bl33d3r 6889a8efab Fixed alias typo for Find-GPOComputerAdmin 2017-05-31 00:28:52 -06:00
HarmJ0y d9e9231755 -Added negations to some -GroupScope and -GroupProperty values 2017-05-25 01:30:25 -04:00
HarmJ0y 783bff3cc0 -Added "-GroupScope [DomainLocal/Global/Universal]" to Get-DomainGroup
-Added "-GroupProperty [Security/Distribution/CreatedBySystem]" to Get-DomainGroup
2017-05-25 01:14:40 -04:00
HarmJ0y 30c5177e92 -added parsing of the 'useraccountcontrol' property into human readable format
-added parsing of the 'accountexpires' property into human readable format
-added parsing of the 'grouptype' property into human readable format
-added parsing of the 'samaccounttype' property into a readable format
2017-05-24 02:12:42 -04:00
HarmJ0y 786793c298 Merge branch 'dev' of github.com:PowerShellMafia/PowerSploit into dev 2017-05-24 01:36:56 -04:00
Will 0e2daae1b4 Merge pull request #236 from MrAnde7son/patch-3
Get-GPODelegation
2017-05-23 22:34:04 -07:00
HarmJ0y 67891871f6 Get-DomainPolicyData now returns proper object output instead of hashtable.
Modified Get-IniContent and Get-GptTmpl to accept '-OutputObject' to output a PSObject instead of a hashtable
2017-05-20 02:00:41 -04:00
HarmJ0y f8d2a3474b fixed quotes 2017-05-08 23:44:57 -04:00
Itamar 6a71a6e526 Update PowerView.ps1
Fixed null access control entry in results.
2017-05-07 11:21:56 +03:00
Christoph Falta 226c1c1cce Host parsing extension for IP ranges
Small extension of the host parsing function so you can also pass ranges
(e.g 172.16.0.1-172.16.2.254) as target
2017-05-04 16:08:44 +02:00
Itamar 2501e8e912 Get-GPODelegation
Hi,
I know you guys mentioned this before, but I've not this implemented.
I wrote Get-GPODelegation that finds users with write permissions on Group Policy objects, for a potential privilege escalation path.
As requested, moved into dev branch.
2017-05-04 16:11:12 +03:00
HarmJ0y 095988269b Get-DomainGPO - fixed enumerations of 'enforced' GPOs, and
bug fix for nested OUs with similar starting names.
2017-04-28 00:56:52 -04:00
Lee Christensen fc04f97ecf Generalized ACE creation and added LDAP logonhours conversion
Added ConvertFrom-LDAPLogonHours and New-ADObjectAccessControlEntry
2017-04-27 00:30:27 -07:00
HarmJ0y 9f4e32e0f3 Renamed Get-DomainPolicy to Get-DomainPolicyData and generalized the
function to accept any policy.
2017-04-26 17:24:59 -04:00
Will 92e17e5331 Merge pull request #214 from mbrancato/dev
Fix for impersonation in Get-NetLocalGroup*
2017-04-26 14:10:47 -07:00
Will cfc0b647b1 Merge pull request #215 from api0cradle/master
Invoke-CompareAttributesForClass.ps1
2017-04-26 14:10:10 -07:00
Will 97382c215d Merge pull request #226 from joncave/dn_commas
Support for DNs containing commas
2017-04-26 14:08:32 -07:00
Will 0bbc9db5ab Merge pull request #227 from joncave/dfs_domain
The DFS subfunctions only accept a single $Domain
2017-04-26 14:08:01 -07:00
Lee Christensen 834a80fef3 Set explicit LDAP SecurityMask settings
Changed the LDAP SecurityMasks settings so that you can change the Owner/DACL if you only have WriteOwner/WriteDacl permissions on the object (Default SecurityMasks is "Owner, Group, Dacl")
2017-04-17 15:30:06 -07:00
Jon Cave 08b30627d9 Support for DNs containing commas
If an object's distinguished name contains a comma then it ends up quoted:

    CN=Smith\, John,OU=Admins,DC=example,DC=com

This breaks a number of functions which attempt to identify DOMAIN\name
by matching on a \ anywhere in the specified identity before checking if
the identity was a DN (or SID or GUID).

For example, attempting to list members of "Domain Admins" using
Get-DomainGroupMember gives the following:

    VERBOSE: [Convert-ADName] Error initializing translation for 'CN=Smith\, John,OU=Admins,DC=example,DC=com' : Exception calling "InvokeMember" with "5" argument(s): "The specified domain either does not exist or could not be contacted. (Exception from HRESULT: 0x8007054B)"
    VERBOSE: [Convert-ADName] Error translating 'CN=Smith\, John,OU=Admins,DC=example,DC=com' : The specified domain either does not exist or could not be contacted. (Exception from HRESULT: 0x8007054B)
    VERBOSE: [Get-DomainObject] Get-DomainObject filter string: (objectClass=*)

The fix implemented here is to perform more specific pattern matching
prior to falling back to looking for a \. The order is SID, DN, GUID,
qualified name (DOMAIN\name), and then plain name.
2017-04-05 14:05:51 +01:00
Jon Cave f2a9cb2ecc The DFS subfunctions only accept a single $Domain
Specifying the type as an array of strings results in an error when
passing on the parameter to Get-DomainSearcher:

    C:\> Get-DomainDFSShare -Domain test
    Get-DomainSearcher : Cannot process argument transformation on parameter 'Domain'. Cannot convert value to type System.String.
    At PowerView.ps1:10242 char:46
2017-04-05 13:15:54 +01:00
Oddvar Moe c8cee6455a Added Invoke-CompareAttributesForClass.ps1 2017-01-23 07:12:23 +01:00
HarmJ0y 445f7b2510 Changed -KerberosPreauthNotRequired to -PreauthNotRequired 2017-01-16 23:52:19 -05:00
Mike Brancato 6927a26940 Fix for impersonation in Get-NetLocalGroup*
Removed unnecessary warning about the 'WinNT' method
Fixed Get-NetLocalGroup* to use impersonation - netapi32 functions weren't working.
2017-01-16 01:37:34 -05:00
HarmJ0y 454e04005d Standardized output from Find-InterestingDomainAcl 2017-01-11 20:39:57 -05:00
HarmJ0y ea60b0e0a4 Merge branch 'dev' of github.com:PowerShellMafia/PowerSploit into dev 2017-01-11 20:16:20 -05:00
HarmJ0y 510cba8bcd Added displayname to the default filter set for Get-DomainObject[ACL] 2017-01-11 20:16:01 -05:00
HarmJ0y 1dd560b371 Merge pull request #210 from leechristensen/patch-3
Fixed KerberosPreauthNotRequired
2017-01-11 16:16:25 -08:00
HarmJ0y 8a2e1daaa3 Parenthesis for additional LDAP functions 2017-01-11 19:04:56 -05:00
HarmJ0y fa1baa64a8 Parenthesis escaping for Get-DomainObject DN searches 2017-01-11 18:00:27 -05:00