{ "info": { "author": "b0z, flgy", "author_email": "bastien@faure.io, florian.guilbert@synacktiv.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Information Technology", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3 :: Only", "Topic :: Security" ], "description": "=====\nLDEEP\n=====\n\nHelp is self-explanatory. Let's check it out::\n\n\tusage: ldeep [-h] -d FQDN -s LDAPSERVER [-b BASE] [-o OUTFILE]\n\t\t\t\t\t[-u USERNAME] [-p PASSWORD] [-k]\n\t\t\t\t\t{computers,domain_policy,gpo,groups,ou,pso,trusts,users,zones,from_guid,from_sid,memberships,membersof,object,zone,search,all}\n\t\t\t\t\t...\n\n\toptional arguments:\n\t -h, --help show this help message and exit\n\t -d FQDN, --fqdn FQDN The domain FQDN (ex : domain.local)\n\t -s LDAPSERVER, --ldapserver LDAPSERVER\n\t\t\t\t\t\t\tThe LDAP path (ex : ldap://corp.contoso.com:389)\n\t -b BASE, --base BASE LDAP base for query\n\t -o OUTFILE, --outfile OUTFILE\n\t\t\t\t\t\t\tStore the results in a file\n\n\tNTLM authentication:\n\t -u USERNAME, --username USERNAME\n\t\t\t\t\t\t\tThe username\n\t -p PASSWORD, --password PASSWORD\n\t\t\t\t\t\t\tThe password or the corresponding NTLM hash\n\n\tKerberos authentication:\n\t -k, --kerberos For Kerberos authentication, ticket file should be\n\t\t\t\t\t\t\tpointed by $KRB5NAME env variable\n\n\tcommands:\n\t available commands\n\n\t {computers,domain_policy,gpo,groups,ou,pso,trusts,users,zones,from_guid,from_sid,memberships,membersof,object,zone,search,all}\n\t\tcomputers List the computer hostnames and resolve them if\n\t\t\t\t\t\t\t--resolve is specify.\n\t\tdomain_policy Return the domain policy.\n\t\tgpo Return the list of Group policy objects.\n\t\tgroups List the groups.\n\t\tou Return the list of organizational units with linked\n\t\t\t\t\t\t\tGPO.\n\t\tpso List the Password Settings Objects.\n\t\ttrusts List the domain's trust relationships.\n\t\tusers List users according to a filter.\n\t\tzones List the DNS zones configured in the Active Directory.\n\t\tfrom_guid Return the object associated with the given `guid`.\n\t\tfrom_sid Return the object associated with the given `sid`.\n\t\tmemberships List the group for which `users` belongs to.\n\t\tmembersof List the members of `group`.\n\t\tobject Return the records containing `object` in a CN.\n\t\tzone Return the records of a DNS zone.\n\t\tsearch Query the LDAP with `filter` and retrieve ALL or\n\t\t\t\t\t\t\t`attributes` if specified.\n\t\tall Collect and store computers, domain_policy, zones,\n\t\t\t\t\t\t\tgpo, groups, ou, users, trusts, pso information\n\n=======\nINSTALL\n=======\n\n``ldeep`` is Python3 only.::\n\n\tpip3 install ldeep\n\n=====\nUSAGE\n=====\n\nListing users without verbosity::\n\n\t$ ldeep -u Administrator -p 'password' -d winlab.local -s ldap://10.0.0.1 users\n\tuserspn2\n\tuserspn1\n\tgobobo\n\ttest\n\tkrbtgt\n\tDefaultAccount\n\tGuest\n\tAdministrator\n\n\nListing users with reversible password encryption enable and with verbosity::\n\n\t$ ldeep -u Administrator -p 'password' -d winlab.local -s ldap://10.0.0.1 users reversible -v\n\t[\n\t {\n\t \"accountExpires\": \"9999-12-31T23:59:59.999999\",\n\t \"badPasswordTime\": \"1601-01-01T00:00:00+00:00\",\n\t \"badPwdCount\": 0,\n\t \"cn\": \"User SPN1\",\n\t \"codePage\": 0,\n\t \"countryCode\": 0,\n\t \"dSCorePropagationData\": [\n\t \"1601-01-01T00:00:00+00:00\"\n\t ],\n\t \"displayName\": \"User SPN1\",\n\t \"distinguishedName\": \"CN=User SPN1,CN=Users,DC=winlab,DC=local\",\n\t \"dn\": \"CN=User SPN1,CN=Users,DC=winlab,DC=local\",\n\t \"givenName\": \"User\",\n\t \"instanceType\": 4,\n\t \"lastLogoff\": \"1601-01-01T00:00:00+00:00\",\n\t \"lastLogon\": \"1601-01-01T00:00:00+00:00\",\n\t \"logonCount\": 0,\n\t \"msDS-SupportedEncryptionTypes\": 0,\n\t \"name\": \"User SPN1\",\n\t \"objectCategory\": \"CN=Person,CN=Schema,CN=Configuration,DC=winlab,DC=local\",\n\t \"objectClass\": [\n\t \"top\",\n\t \"person\",\n\t \"organizationalPerson\",\n\t \"user\"\n\t ],\n\t \"objectGUID\": \"{593cb08f-3cc5-431a-b3d7-9fbad4511b1e}\",\n\t \"objectSid\": \"S-1-5-21-3640577749-2924176383-3866485758-1112\",\n\t \"primaryGroupID\": 513,\n\t \"pwdLastSet\": \"2018-10-13T12:19:30.099674+00:00\",\n\t \"sAMAccountName\": \"userspn1\",\n\t \"sAMAccountType\": \"SAM_GROUP_OBJECT | SAM_NON_SECURITY_GROUP_OBJECT | SAM_ALIAS_OBJECT | SAM_NON_SECURITY_ALIAS_OBJECT | SAM_USER_OBJECT | SAM_NORMAL_USER_ACCOUNT | SAM_MACHINE_ACCOUNT | SAM_TRUST_ACCOUNT | SAM_ACCOUNT_TYPE_MAX\",\n\t \"servicePrincipalName\": [\n\t \"HOST/blah\"\n\t ],\n\t \"sn\": \"SPN1\",\n\t \"uSNChanged\": 115207,\n\t \"uSNCreated\": 24598,\n\t \"userAccountControl\": \"ENCRYPTED_TEXT_PWD_ALLOWED | NORMAL_ACCOUNT | DONT_REQ_PREAUTH\",\n\t \"userPrincipalName\": \"userspn1@winlab.local\",\n\t \"whenChanged\": \"2018-10-22T18:04:43+00:00\",\n\t \"whenCreated\": \"2018-10-13T12:19:30+00:00\"\n\t }\n\t]\n\nListing GPOs::\n\n\t$ ldeep -u Administrator -p 'password' -d winlab.local -s ldap://10.0.0.1 gpo\n\t{6AC1786C-016F-11D2-945F-00C04fB984F9}: Default Domain Controllers Policy\n\t{31B2F340-016D-11D2-945F-00C04FB984F9}: Default Domain Policy\n\nGetting all things::\n\n\t$ ldeep -u Administrator -p 'password' -d winlab.local -s ldap://10.0.0.1 all /tmp/winlab.local_dump\n\t[+] Retrieving computers output\n\t[+] Retrieving domain_policy output\n\t[+] Retrieving gpo output\n\t[+] Retrieving groups output\n\t[+] Retrieving groups verbose output\n\t[+] Retrieving ou output\n\t[+] Retrieving pso output\n\t[+] Retrieving trusts output\n\t[+] Retrieving users output\n\t[+] Retrieving users verbose output\n\t[+] Retrieving zones output\n\t[+] Retrieving zones verbose output\n\nUsing this last command line switch, you have persistent output in both verbose and non-verbose mode saved::\n\n\t$ ls winlab.local_dump_*\n\twinlab.local_dump_computers.lst winlab.local_dump_groups.json winlab.local_dump_pso.lst winlab.local_dump_users.lst\n\twinlab.local_dump_domain_policy.lst winlab.local_dump_groups.lst winlab.local_dump_trusts.lst winlab.local_dump_zones.json\n\twinlab.local_dump_gpo.lst winlab.local_dump_ou.lst winlab.local_dump_users.json winlab.local_dump_zones.lst\n\n\n========\nUpcoming\n========\n\n* Proper DNS zone enumeration\n* Project tree\n* Python package\n* Useful Kerberos delegation information\n* Any ideas?\n\n================\nRelated projects\n================\n\n* https://github.com/SecureAuthCorp/impacket\n* https://github.com/ropnop/windapsearch\n* https://github.com/shellster/LDAPPER", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/franc-pentest/ldeep", "keywords": "pentesting security windows active-directory networks", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ldeep", "package_url": "https://pypi.org/project/ldeep/", "platform": "any", "project_url": "https://pypi.org/project/ldeep/", "project_urls": { "Homepage": "https://github.com/franc-pentest/ldeep" }, "release_url": "https://pypi.org/project/ldeep/1.0.8/", "requires_dist": null, "requires_python": ">=3.3", "summary": "In-depth ldap enumeration utility", "version": "1.0.8" }, "last_serial": 5417424, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "edce860b223c0f7a5ac175fd85aa51d1", "sha256": "5355a4395fec6a631da055b18c3f35d7a61f1639f11f35ccd26f961901095e23" }, "downloads": -1, "filename": "ldeep-1.0.0.tar.gz", "has_sig": false, "md5_digest": "edce860b223c0f7a5ac175fd85aa51d1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 12968, "upload_time": "2018-10-23T23:00:28", "url": "https://files.pythonhosted.org/packages/c0/2e/124f4946c5e8b82a0521c1ac64e2d88de61e67790ea01e6d715e131f2dce/ldeep-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "51d500b9fc2e67e006cd5a74d1bc0814", "sha256": "0fc36d110350bde6dfa49fa179387a4dd90dc49bd45e5ef82c1d71bc7c567485" }, "downloads": -1, "filename": "ldeep-1.0.1.tar.gz", "has_sig": false, "md5_digest": "51d500b9fc2e67e006cd5a74d1bc0814", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 14579, "upload_time": "2018-11-20T15:29:08", "url": "https://files.pythonhosted.org/packages/df/30/0213245e09ef144599c6c49a9145337cc179198e3c787127dabc842e6413/ldeep-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "40eae03f6d162ceb7dbe7179d3c6d555", "sha256": "366fc24f59f27d10c387af20ba0f62a2ff475db5f95ab993e1661981f7c89d1b" }, "downloads": -1, "filename": "ldeep-1.0.2.tar.gz", "has_sig": false, "md5_digest": "40eae03f6d162ceb7dbe7179d3c6d555", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 13409, "upload_time": "2018-12-12T22:01:09", "url": "https://files.pythonhosted.org/packages/40/99/495cf90cf94639fe09d5e8cc9b0ecc2a4645097a00a073597a3858a9298f/ldeep-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "0157b7e34a517797f435c8503d326ad9", "sha256": "b95b0011a9e6c21186447bf20298697c2d6554cc8308ff4c848ecbf513f9c9f1" }, "downloads": -1, "filename": "ldeep-1.0.3.tar.gz", "has_sig": false, "md5_digest": "0157b7e34a517797f435c8503d326ad9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 13579, "upload_time": "2018-12-19T00:42:40", "url": "https://files.pythonhosted.org/packages/7d/b9/9b44b7212dc7043c3c551693e4aabe6046eee50dd7eef18f649bfda19564/ldeep-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "bd2fd18177ae92e0f1cb5ef513023ba3", "sha256": "5904d50c7f24e660812d67bde85646a1aaae850d1ac4ad584ff09e77e69b6c22" }, "downloads": -1, "filename": "ldeep-1.0.4.tar.gz", "has_sig": false, "md5_digest": "bd2fd18177ae92e0f1cb5ef513023ba3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 13568, "upload_time": "2018-12-19T10:34:35", "url": "https://files.pythonhosted.org/packages/26/d4/a80b260f15d054709e92045123219d373a08719dc856f4cf2013b6571fc5/ldeep-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "80e859d560139c4da87ebc5d8713000d", "sha256": "bd170100207d5ffb74002b0a4012aa3fbc4c3d3a5e7f412839ffa4a9fa8a7099" }, "downloads": -1, "filename": "ldeep-1.0.5.tar.gz", "has_sig": false, "md5_digest": "80e859d560139c4da87ebc5d8713000d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 13704, "upload_time": "2019-01-02T15:45:31", "url": "https://files.pythonhosted.org/packages/58/b8/72e98e53a9a7fea6d9d2cec00f7539bbdea14c68808adfa1e83f8aea2513/ldeep-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "960cad17ad3f4200d20d9701f4e64e1e", "sha256": "85a7f17d62f559c2892d9868018ef68dcb929eb884058641c5e0e256c3c08491" }, "downloads": -1, "filename": "ldeep-1.0.6.tar.gz", "has_sig": false, "md5_digest": "960cad17ad3f4200d20d9701f4e64e1e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 15576, "upload_time": "2019-01-08T16:02:19", "url": "https://files.pythonhosted.org/packages/46/52/b5584e62a6ef621c8e67552c2e9d51435281baaa89f68276085d04122806/ldeep-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "ab49b74ada62f6859e58746b78fa456c", "sha256": "d2c0019b9ea309a2a6403b510f305ce9490cfce32d6f7a520a1cf3eaa342a241" }, "downloads": -1, "filename": "ldeep-1.0.7.tar.gz", "has_sig": false, "md5_digest": "ab49b74ada62f6859e58746b78fa456c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 15177, "upload_time": "2019-02-12T16:40:05", "url": "https://files.pythonhosted.org/packages/b0/2e/b658e0f85099b5b0e0b5172865561b5953879230335531409175c9343e23/ldeep-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "e890a8bfa2b74ca66395de32b879c7d2", "sha256": "62654683f2ce3df72441c1874ec93250c1ef16c03af66cf3e009de6d4e192445" }, "downloads": -1, "filename": "ldeep-1.0.8.tar.gz", "has_sig": false, "md5_digest": "e890a8bfa2b74ca66395de32b879c7d2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 17433, "upload_time": "2019-06-18T21:41:19", "url": "https://files.pythonhosted.org/packages/24/e2/09c2ff64528ba7e556d1f75dec902fee07b80fdde1f9ffcf6dd1e182bfcf/ldeep-1.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e890a8bfa2b74ca66395de32b879c7d2", "sha256": "62654683f2ce3df72441c1874ec93250c1ef16c03af66cf3e009de6d4e192445" }, "downloads": -1, "filename": "ldeep-1.0.8.tar.gz", "has_sig": false, "md5_digest": "e890a8bfa2b74ca66395de32b879c7d2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 17433, "upload_time": "2019-06-18T21:41:19", "url": "https://files.pythonhosted.org/packages/24/e2/09c2ff64528ba7e556d1f75dec902fee07b80fdde1f9ffcf6dd1e182bfcf/ldeep-1.0.8.tar.gz" } ] }