dissect.database 1.1.dev12__tar.gz → 1.1.dev14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. {dissect_database-1.1.dev12/dissect.database.egg-info → dissect_database-1.1.dev14}/PKG-INFO +13 -2
  2. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/README.md +12 -1
  3. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/object.py +5 -0
  4. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/top.py +5 -0
  5. dissect_database-1.1.dev14/dissect/database/ese/ntds/tools/ntds.py +28 -0
  6. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/tools/sru.py +14 -5
  7. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/tools/ual.py +6 -1
  8. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14/dissect.database.egg-info}/PKG-INFO +13 -2
  9. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect.database.egg-info/SOURCES.txt +3 -0
  10. dissect_database-1.1.dev14/dissect.database.egg-info/entry_points.txt +7 -0
  11. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/pyproject.toml +8 -0
  12. dissect_database-1.1.dev14/tests/sqlite3/__init__.py +0 -0
  13. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/COPYRIGHT +0 -0
  14. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/LICENSE +0 -0
  15. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/MANIFEST.in +0 -0
  16. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/__init__.py +0 -0
  17. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/__init__.py +0 -0
  18. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/c_db.py +0 -0
  19. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/c_db.pyi +0 -0
  20. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/db.py +0 -0
  21. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/tools/__init__.py +0 -0
  22. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/tools/c_rpm.py +0 -0
  23. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/tools/c_rpm.pyi +0 -0
  24. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/bsd/tools/rpm.py +0 -0
  25. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/__init__.py +0 -0
  26. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/btree.py +0 -0
  27. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/c_ese.py +0 -0
  28. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/c_ese.pyi +0 -0
  29. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/compression.py +0 -0
  30. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/cursor.py +0 -0
  31. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ese.py +0 -0
  32. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/exception.py +0 -0
  33. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/index.py +0 -0
  34. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/lcmapstring.py +0 -0
  35. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/__init__.py +0 -0
  36. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/c_ds.py +0 -0
  37. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/c_ds.pyi +0 -0
  38. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/c_pek.py +0 -0
  39. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/c_pek.pyi +0 -0
  40. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/c_sd.py +0 -0
  41. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/c_sd.pyi +0 -0
  42. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/database.py +0 -0
  43. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/ntds.py +0 -0
  44. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/__init__.py +0 -0
  45. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/applicationsettings.py +0 -0
  46. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/attributeschema.py +0 -0
  47. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/builtindomain.py +0 -0
  48. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/certificationauthority.py +0 -0
  49. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/classschema.py +0 -0
  50. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/classstore.py +0 -0
  51. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/computer.py +0 -0
  52. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/configuration.py +0 -0
  53. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/container.py +0 -0
  54. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/controlaccessright.py +0 -0
  55. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/crldistributionpoint.py +0 -0
  56. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/crossref.py +0 -0
  57. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/crossrefcontainer.py +0 -0
  58. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/dfsconfiguration.py +0 -0
  59. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/displayspecifier.py +0 -0
  60. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/dmd.py +0 -0
  61. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/dnsnode.py +0 -0
  62. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/dnszone.py +0 -0
  63. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/domain.py +0 -0
  64. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/domaindns.py +0 -0
  65. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/domainpolicy.py +0 -0
  66. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/dsuisettings.py +0 -0
  67. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/filelinktracking.py +0 -0
  68. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/foreignsecurityprincipal.py +0 -0
  69. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/group.py +0 -0
  70. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/grouppolicycontainer.py +0 -0
  71. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/infrastructureupdate.py +0 -0
  72. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/intersitetransport.py +0 -0
  73. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/intersitetransportcontainer.py +0 -0
  74. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ipsecbase.py +0 -0
  75. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ipsecfilter.py +0 -0
  76. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ipsecisakmppolicy.py +0 -0
  77. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ipsecnegotiationpolicy.py +0 -0
  78. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ipsecnfa.py +0 -0
  79. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ipsecpolicy.py +0 -0
  80. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/leaf.py +0 -0
  81. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/linktrackobjectmovetable.py +0 -0
  82. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/linktrackvolumetable.py +0 -0
  83. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/locality.py +0 -0
  84. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/lostandfound.py +0 -0
  85. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msauthz_centralaccesspolicies.py +0 -0
  86. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msauthz_centralaccessrules.py +0 -0
  87. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_content.py +0 -0
  88. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_contentset.py +0 -0
  89. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_globalsettings.py +0 -0
  90. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_localsettings.py +0 -0
  91. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_member.py +0 -0
  92. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_replicationgroup.py +0 -0
  93. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_subscriber.py +0 -0
  94. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_subscription.py +0 -0
  95. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdfsr_topology.py +0 -0
  96. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msdns_serversettings.py +0 -0
  97. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_authnpolicies.py +0 -0
  98. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_authnpolicysilos.py +0 -0
  99. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_claimstransformationpolicies.py +0 -0
  100. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_claimtype.py +0 -0
  101. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_claimtypepropertybase.py +0 -0
  102. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_claimtypes.py +0 -0
  103. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_optionalfeature.py +0 -0
  104. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_passwordsettingscontainer.py +0 -0
  105. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_quotacontainer.py +0 -0
  106. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_resourceproperties.py +0 -0
  107. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_resourceproperty.py +0 -0
  108. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_resourcepropertylist.py +0 -0
  109. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_shadowprincipalcontainer.py +0 -0
  110. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msds_valuetype.py +0 -0
  111. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msimaging_psps.py +0 -0
  112. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/mskds_provserverconfiguration.py +0 -0
  113. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msmqenterprisesettings.py +0 -0
  114. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/mspki_enterpriseoid.py +0 -0
  115. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/mspki_privatekeyrecoveryagent.py +0 -0
  116. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/msspp_activationobjectscontainer.py +0 -0
  117. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/mstpm_informationobjectscontainer.py +0 -0
  118. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ntdsconnection.py +0 -0
  119. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ntdsdsa.py +0 -0
  120. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ntdsservice.py +0 -0
  121. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ntdssitesettings.py +0 -0
  122. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ntfrssettings.py +0 -0
  123. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/organizationalperson.py +0 -0
  124. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/organizationalunit.py +0 -0
  125. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/person.py +0 -0
  126. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/physicallocation.py +0 -0
  127. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/pkicertificatetemplate.py +0 -0
  128. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/pkienrollmentservice.py +0 -0
  129. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/querypolicy.py +0 -0
  130. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ridmanager.py +0 -0
  131. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/ridset.py +0 -0
  132. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/rpccontainer.py +0 -0
  133. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/rrasadministrationdictionary.py +0 -0
  134. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/samserver.py +0 -0
  135. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/secret.py +0 -0
  136. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/securityobject.py +0 -0
  137. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/server.py +0 -0
  138. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/serverscontainer.py +0 -0
  139. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/site.py +0 -0
  140. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/sitelink.py +0 -0
  141. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/sitescontainer.py +0 -0
  142. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/subnetcontainer.py +0 -0
  143. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/subschema.py +0 -0
  144. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/trusteddomain.py +0 -0
  145. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/objects/user.py +0 -0
  146. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/pek.py +0 -0
  147. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/query.py +0 -0
  148. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/schema.py +0 -0
  149. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/sd.py +0 -0
  150. {dissect_database-1.1.dev12/dissect/database/ese → dissect_database-1.1.dev14/dissect/database/ese/ntds}/tools/__init__.py +0 -0
  151. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/ntds/util.py +0 -0
  152. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/page.py +0 -0
  153. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/record.py +0 -0
  154. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/sorting_table.py +0 -0
  155. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/table.py +0 -0
  156. {dissect_database-1.1.dev12/tests → dissect_database-1.1.dev14/dissect/database/ese/tools}/__init__.py +0 -0
  157. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/tools/certlog.py +0 -0
  158. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/tools/impacket.py +0 -0
  159. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/ese/util.py +0 -0
  160. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/exception.py +0 -0
  161. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/__init__.py +0 -0
  162. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/c_sqlite3.py +0 -0
  163. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/c_sqlite3.pyi +0 -0
  164. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/encryption/__init__.py +0 -0
  165. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/encryption/sqlcipher/__init__.py +0 -0
  166. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/encryption/sqlcipher/exception.py +0 -0
  167. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/encryption/sqlcipher/sqlcipher.py +0 -0
  168. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/exception.py +0 -0
  169. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/sqlite3.py +0 -0
  170. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/util.py +0 -0
  171. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect/database/sqlite3/wal.py +0 -0
  172. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect.database.egg-info/dependency_links.txt +0 -0
  173. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect.database.egg-info/requires.txt +0 -0
  174. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/dissect.database.egg-info/top_level.txt +0 -0
  175. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/setup.cfg +0 -0
  176. {dissect_database-1.1.dev12/tests/_tools/sqlite3 → dissect_database-1.1.dev14/tests}/__init__.py +0 -0
  177. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/_docs/Makefile +0 -0
  178. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/_docs/conf.py +0 -0
  179. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/_docs/index.rst +0 -0
  180. {dissect_database-1.1.dev12/tests/bsd → dissect_database-1.1.dev14/tests/_tools/sqlite3}/__init__.py +0 -0
  181. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/_tools/sqlite3/generate_sqlite.py +0 -0
  182. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/_util.py +0 -0
  183. {dissect_database-1.1.dev12/tests/ese → dissect_database-1.1.dev14/tests/bsd}/__init__.py +0 -0
  184. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/bsd/conftest.py +0 -0
  185. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/bsd/test_db.py +0 -0
  186. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/bsd/test_rpm.py +0 -0
  187. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/conftest.py +0 -0
  188. {dissect_database-1.1.dev12/tests/ese/ntds → dissect_database-1.1.dev14/tests/ese}/__init__.py +0 -0
  189. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/conftest.py +0 -0
  190. {dissect_database-1.1.dev12/tests/ese/tools → dissect_database-1.1.dev14/tests/ese/ntds}/__init__.py +0 -0
  191. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/conftest.py +0 -0
  192. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/test_benchmark.py +0 -0
  193. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/test_ntds.py +0 -0
  194. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/test_pek.py +0 -0
  195. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/test_query.py +0 -0
  196. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/test_schema.py +0 -0
  197. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/test_sd.py +0 -0
  198. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/ntds/test_util.py +0 -0
  199. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/test_cursor.py +0 -0
  200. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/test_ese.py +0 -0
  201. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/test_index.py +0 -0
  202. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/test_page.py +0 -0
  203. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/test_record.py +0 -0
  204. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/test_table.py +0 -0
  205. {dissect_database-1.1.dev12/tests/sqlite3 → dissect_database-1.1.dev14/tests/ese/tools}/__init__.py +0 -0
  206. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/tools/test_certlog.py +0 -0
  207. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/tools/test_sru.py +0 -0
  208. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/ese/tools/test_ual.py +0 -0
  209. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/sqlite3/conftest.py +0 -0
  210. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/sqlite3/test_default_values.py +0 -0
  211. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/sqlite3/test_row.py +0 -0
  212. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/sqlite3/test_sqlcipher.py +0 -0
  213. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/sqlite3/test_sqlite3.py +0 -0
  214. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/sqlite3/test_util.py +0 -0
  215. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tests/sqlite3/test_wal.py +0 -0
  216. {dissect_database-1.1.dev12 → dissect_database-1.1.dev14}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.database
3
- Version: 1.1.dev12
3
+ Version: 1.1.dev14
4
4
  Summary: A Dissect module implementing parsers for various database formats, including Berkeley DB, Microsofts Extensible Storage Engine (ESE) and SQLite3
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License-Expression: Apache-2.0
@@ -53,6 +53,17 @@ This module is also automatically installed if you install the `dissect` package
53
53
 
54
54
  ## Tools
55
55
 
56
+ Some CLI tools related to specific databases exists. These tools allow you to dump or inspect database content.
57
+
58
+ | Commands | Description |
59
+ |--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
60
+ | `dissect-ntds` | Windows NTDS (Active Directory database). |
61
+ | `dissect-ual` | Windows [User Access Logging](https://learn.microsoft.com/en-us/windows-server/administration/user-access-logging/get-started-with-user-access-logging) database. |
62
+ | `dissect-sru` | Windows System Resources And Usage Monitor database. |
63
+ | `dissect-certlog` | Windows [AD CS database](https://learn.microsoft.com/en-us/windows-server/identity/ad-cs/active-directory-certificate-services-overview) database. |
64
+ | `dissect-rpm` | [Red Hat Package Manager](https://rpm.org/) database. |
65
+ | `dissect-impacket` | Impacket compatibility shim for `secretsdump.py`. |
66
+
56
67
  ### Impacket compatibility shim for secretsdump.py
57
68
 
58
69
  Impacket does not ([yet](https://github.com/fortra/impacket/pull/1452)) have native support for `dissect.database`,
@@ -60,7 +71,7 @@ so in the meantime a compatibility shim is provided. To use this shim, simply in
60
71
  instructions above, and execute `secretsdump.py` like so:
61
72
 
62
73
  ```bash
63
- python -m dissect.database.ese.tools.impacket /path/to/impacket/examples/secretsdump.py -h
74
+ dissect-impacket /path/to/impacket/examples/secretsdump.py -h
64
75
  ```
65
76
 
66
77
  Impacket `secretsdump.py` will now use `dissect.database` for parsing the `NTDS.dit` file, resulting in a significant performance improvement!
@@ -20,6 +20,17 @@ This module is also automatically installed if you install the `dissect` package
20
20
 
21
21
  ## Tools
22
22
 
23
+ Some CLI tools related to specific databases exists. These tools allow you to dump or inspect database content.
24
+
25
+ | Commands | Description |
26
+ |--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
27
+ | `dissect-ntds` | Windows NTDS (Active Directory database). |
28
+ | `dissect-ual` | Windows [User Access Logging](https://learn.microsoft.com/en-us/windows-server/administration/user-access-logging/get-started-with-user-access-logging) database. |
29
+ | `dissect-sru` | Windows System Resources And Usage Monitor database. |
30
+ | `dissect-certlog` | Windows [AD CS database](https://learn.microsoft.com/en-us/windows-server/identity/ad-cs/active-directory-certificate-services-overview) database. |
31
+ | `dissect-rpm` | [Red Hat Package Manager](https://rpm.org/) database. |
32
+ | `dissect-impacket` | Impacket compatibility shim for `secretsdump.py`. |
33
+
23
34
  ### Impacket compatibility shim for secretsdump.py
24
35
 
25
36
  Impacket does not ([yet](https://github.com/fortra/impacket/pull/1452)) have native support for `dissect.database`,
@@ -27,7 +38,7 @@ so in the meantime a compatibility shim is provided. To use this shim, simply in
27
38
  instructions above, and execute `secretsdump.py` like so:
28
39
 
29
40
  ```bash
30
- python -m dissect.database.ese.tools.impacket /path/to/impacket/examples/secretsdump.py -h
41
+ dissect-impacket /path/to/impacket/examples/secretsdump.py -h
31
42
  ```
32
43
 
33
44
  Impacket `secretsdump.py` will now use `dissect.database` for parsing the `NTDS.dit` file, resulting in a significant performance improvement!
@@ -147,6 +147,11 @@ class Object:
147
147
  """Return the object's name."""
148
148
  return self.get("name")
149
149
 
150
+ @property
151
+ def cn(self) -> str | None:
152
+ """Return the object's Common Name (CN)."""
153
+ return self.get("cn")
154
+
150
155
  @property
151
156
  def object_category(self) -> str | None:
152
157
  """Return the object's objectCategory."""
@@ -14,3 +14,8 @@ class Top(Object):
14
14
 
15
15
  def __repr_body__(self) -> str:
16
16
  return f"name={self.name!r}"
17
+
18
+ @property
19
+ def display_name(self) -> str | None:
20
+ """Return the displayName for this object."""
21
+ return self.get("displayName")
@@ -0,0 +1,28 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import json
5
+ from pathlib import Path
6
+
7
+ from dissect.database.ese.ntds import NTDS
8
+
9
+
10
+ def main() -> None:
11
+ parser = argparse.ArgumentParser(description="dissect.database.ese.ntds NTDS parser")
12
+ parser.add_argument("input", help="NTDS database to read")
13
+ parser.add_argument("-c", "--objectClass", help="show only objects of this class", required=True)
14
+ parser.add_argument("-j", "--json", action="store_true", default=False, help="output in JSON format")
15
+ args = parser.parse_args()
16
+
17
+ with Path(args.input).open("rb") as fh:
18
+ ntds = NTDS(fh)
19
+
20
+ for record in ntds.search(objectClass=args.objectClass):
21
+ if args.json:
22
+ print(json.dumps(record.as_dict(), default=str))
23
+ else:
24
+ print(record)
25
+
26
+
27
+ if __name__ == "__main__":
28
+ main()
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import argparse
4
+ import json
4
5
  from pathlib import Path
5
6
  from typing import TYPE_CHECKING, BinaryIO
6
7
 
@@ -148,24 +149,32 @@ class Entry:
148
149
  column_values = serialise_record_column_values(self.record)
149
150
  return f"<Entry provider={self.table.name!r} {column_values}>"
150
151
 
152
+ def as_dict(self) -> dict:
153
+ ret = self.record.as_dict()
154
+ ret["provider"] = self.table.name
155
+ return ret
156
+
151
157
 
152
158
  def main() -> None:
153
159
  parser = argparse.ArgumentParser(description="dissect.database.ese SRU parser")
154
160
  parser.add_argument("input", help="SRU database to read")
155
161
  parser.add_argument("-p", "--provider", help="filter records from this provider")
162
+ parser.add_argument("-j", "--json", action="store_true", default=False, help="output in JSON format")
156
163
  args = parser.parse_args()
157
164
 
158
165
  with Path(args.input).open("rb") as fh:
159
166
  parser = SRU(fh)
160
167
 
161
168
  if args.provider in NAME_TO_GUID_MAP:
162
- for e in parser.get_table_entries(table_name=args.provider):
163
- print(e)
169
+ generator = parser.get_table_entries(table_name=args.provider)
164
170
  elif args.provider:
165
- for e in parser.get_table_entries(table_guid=args.provider):
166
- print(e)
171
+ generator = parser.get_table_entries(table_guid=args.provider)
167
172
  else:
168
- for e in parser.entries():
173
+ generator = parser.entries()
174
+ for e in generator:
175
+ if args.json:
176
+ print(json.dumps(e.as_dict(), default=str))
177
+ else:
169
178
  print(e)
170
179
 
171
180
 
@@ -1,6 +1,7 @@
1
1
  import argparse
2
2
  import datetime
3
3
  import ipaddress
4
+ import json
4
5
  from collections.abc import Iterator
5
6
  from pathlib import Path
6
7
  from typing import BinaryIO
@@ -89,6 +90,7 @@ def convert_day_num_to_date(year: int, day_num: int) -> datetime.datetime:
89
90
 
90
91
  def main() -> None:
91
92
  parser = argparse.ArgumentParser(description="dissect.database.ese UAL parser")
93
+ parser.add_argument("-j", "--json", action="store_true", default=False, help="output in JSON format")
92
94
  parser.add_argument("input", help="UAL database to read")
93
95
  args = parser.parse_args()
94
96
 
@@ -100,7 +102,10 @@ def main() -> None:
100
102
  continue
101
103
 
102
104
  for record in parser.get_table_records(table.name):
103
- print(record)
105
+ if args.json:
106
+ print(json.dumps(record, default=str))
107
+ else:
108
+ print(record)
104
109
 
105
110
 
106
111
  if __name__ == "__main__":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.database
3
- Version: 1.1.dev12
3
+ Version: 1.1.dev14
4
4
  Summary: A Dissect module implementing parsers for various database formats, including Berkeley DB, Microsofts Extensible Storage Engine (ESE) and SQLite3
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License-Expression: Apache-2.0
@@ -53,6 +53,17 @@ This module is also automatically installed if you install the `dissect` package
53
53
 
54
54
  ## Tools
55
55
 
56
+ Some CLI tools related to specific databases exists. These tools allow you to dump or inspect database content.
57
+
58
+ | Commands | Description |
59
+ |--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
60
+ | `dissect-ntds` | Windows NTDS (Active Directory database). |
61
+ | `dissect-ual` | Windows [User Access Logging](https://learn.microsoft.com/en-us/windows-server/administration/user-access-logging/get-started-with-user-access-logging) database. |
62
+ | `dissect-sru` | Windows System Resources And Usage Monitor database. |
63
+ | `dissect-certlog` | Windows [AD CS database](https://learn.microsoft.com/en-us/windows-server/identity/ad-cs/active-directory-certificate-services-overview) database. |
64
+ | `dissect-rpm` | [Red Hat Package Manager](https://rpm.org/) database. |
65
+ | `dissect-impacket` | Impacket compatibility shim for `secretsdump.py`. |
66
+
56
67
  ### Impacket compatibility shim for secretsdump.py
57
68
 
58
69
  Impacket does not ([yet](https://github.com/fortra/impacket/pull/1452)) have native support for `dissect.database`,
@@ -60,7 +71,7 @@ so in the meantime a compatibility shim is provided. To use this shim, simply in
60
71
  instructions above, and execute `secretsdump.py` like so:
61
72
 
62
73
  ```bash
63
- python -m dissect.database.ese.tools.impacket /path/to/impacket/examples/secretsdump.py -h
74
+ dissect-impacket /path/to/impacket/examples/secretsdump.py -h
64
75
  ```
65
76
 
66
77
  Impacket `secretsdump.py` will now use `dissect.database` for parsing the `NTDS.dit` file, resulting in a significant performance improvement!
@@ -7,6 +7,7 @@ tox.ini
7
7
  dissect.database.egg-info/PKG-INFO
8
8
  dissect.database.egg-info/SOURCES.txt
9
9
  dissect.database.egg-info/dependency_links.txt
10
+ dissect.database.egg-info/entry_points.txt
10
11
  dissect.database.egg-info/requires.txt
11
12
  dissect.database.egg-info/top_level.txt
12
13
  dissect/database/__init__.py
@@ -152,6 +153,8 @@ dissect/database/ese/ntds/objects/subschema.py
152
153
  dissect/database/ese/ntds/objects/top.py
153
154
  dissect/database/ese/ntds/objects/trusteddomain.py
154
155
  dissect/database/ese/ntds/objects/user.py
156
+ dissect/database/ese/ntds/tools/__init__.py
157
+ dissect/database/ese/ntds/tools/ntds.py
155
158
  dissect/database/ese/tools/__init__.py
156
159
  dissect/database/ese/tools/certlog.py
157
160
  dissect/database/ese/tools/impacket.py
@@ -0,0 +1,7 @@
1
+ [console_scripts]
2
+ dissect-certlog = dissect.database.ese.tools.certlog:main
3
+ dissect-impacket = dissect.database.ese.tools.impacket:main
4
+ dissect-ntds = dissect.database.ese.ntds.tools.ntds:main
5
+ dissect-rpm = dissect.database.bsd.tools.rpm:main
6
+ dissect-sru = dissect.database.ese.tools.sru:main
7
+ dissect-ual = dissect.database.ese.tools.ual:main
@@ -66,6 +66,14 @@ dev = [
66
66
  {include-group = "debug"},
67
67
  ]
68
68
 
69
+ [project.scripts]
70
+ dissect-ntds = "dissect.database.ese.ntds.tools.ntds:main"
71
+ dissect-ual = "dissect.database.ese.tools.ual:main"
72
+ dissect-sru = "dissect.database.ese.tools.sru:main"
73
+ dissect-certlog = "dissect.database.ese.tools.certlog:main"
74
+ dissect-rpm = "dissect.database.bsd.tools.rpm:main"
75
+ dissect-impacket = "dissect.database.ese.tools.impacket:main"
76
+
69
77
  [tool.ruff]
70
78
  line-length = 120
71
79
  required-version = ">=0.13.1"
File without changes