dissect.database 1.2.dev9__tar.gz → 1.2.dev10__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 (222) hide show
  1. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/PKG-INFO +1 -1
  2. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/ntds.py +5 -0
  3. dissect_database-1.2.dev10/dissect/database/ese/ntds/objects/c_dnsnode.py +109 -0
  4. dissect_database-1.2.dev10/dissect/database/ese/ntds/objects/c_dnsnode.pyi +146 -0
  5. dissect_database-1.2.dev10/dissect/database/ese/ntds/objects/dnsnode.py +443 -0
  6. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/util.py +3 -0
  7. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect.database.egg-info/PKG-INFO +1 -1
  8. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect.database.egg-info/SOURCES.txt +4 -0
  9. dissect_database-1.2.dev10/tests/ese/ntds/objects/test_dnsnode.py +260 -0
  10. dissect_database-1.2.dev10/tests/sqlite3/__init__.py +0 -0
  11. dissect_database-1.2.dev9/dissect/database/ese/ntds/objects/dnsnode.py +0 -13
  12. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/.git-blame-ignore-revs +0 -0
  13. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/COPYRIGHT +0 -0
  14. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/LICENSE +0 -0
  15. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/MANIFEST.in +0 -0
  16. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/README.md +0 -0
  17. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/__init__.py +0 -0
  18. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/__init__.py +0 -0
  19. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/c_db.py +0 -0
  20. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/c_db.pyi +0 -0
  21. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/db.py +0 -0
  22. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/tools/__init__.py +0 -0
  23. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/tools/c_rpm.py +0 -0
  24. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/tools/c_rpm.pyi +0 -0
  25. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/bsd/tools/rpm.py +0 -0
  26. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/__init__.py +0 -0
  27. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/c_ese.py +0 -0
  28. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/c_ese.pyi +0 -0
  29. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/compression.py +0 -0
  30. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/cursor.py +0 -0
  31. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ese.py +0 -0
  32. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/exception.py +0 -0
  33. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/index.py +0 -0
  34. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/lcmapstring.py +0 -0
  35. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/__init__.py +0 -0
  36. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/c_ds.py +0 -0
  37. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/c_ds.pyi +0 -0
  38. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/c_pek.py +0 -0
  39. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/c_pek.pyi +0 -0
  40. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/c_sd.py +0 -0
  41. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/c_sd.pyi +0 -0
  42. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/database.py +0 -0
  43. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/__init__.py +0 -0
  44. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/applicationsettings.py +0 -0
  45. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/attributeschema.py +0 -0
  46. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/builtindomain.py +0 -0
  47. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/certificationauthority.py +0 -0
  48. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/classschema.py +0 -0
  49. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/classstore.py +0 -0
  50. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/computer.py +0 -0
  51. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/configuration.py +0 -0
  52. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/container.py +0 -0
  53. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/controlaccessright.py +0 -0
  54. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/crldistributionpoint.py +0 -0
  55. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/crossref.py +0 -0
  56. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/crossrefcontainer.py +0 -0
  57. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/dfsconfiguration.py +0 -0
  58. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/displayspecifier.py +0 -0
  59. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/dmd.py +0 -0
  60. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/dnszone.py +0 -0
  61. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/domain.py +0 -0
  62. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/domaindns.py +0 -0
  63. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/domainpolicy.py +0 -0
  64. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/dsuisettings.py +0 -0
  65. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/filelinktracking.py +0 -0
  66. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/foreignsecurityprincipal.py +0 -0
  67. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/group.py +0 -0
  68. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/grouppolicycontainer.py +0 -0
  69. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/infrastructureupdate.py +0 -0
  70. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/intersitetransport.py +0 -0
  71. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/intersitetransportcontainer.py +0 -0
  72. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ipsecbase.py +0 -0
  73. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ipsecfilter.py +0 -0
  74. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ipsecisakmppolicy.py +0 -0
  75. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ipsecnegotiationpolicy.py +0 -0
  76. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ipsecnfa.py +0 -0
  77. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ipsecpolicy.py +0 -0
  78. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/leaf.py +0 -0
  79. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/linktrackobjectmovetable.py +0 -0
  80. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/linktrackvolumetable.py +0 -0
  81. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/locality.py +0 -0
  82. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/lostandfound.py +0 -0
  83. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msauthz_centralaccesspolicies.py +0 -0
  84. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msauthz_centralaccessrules.py +0 -0
  85. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_content.py +0 -0
  86. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_contentset.py +0 -0
  87. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_globalsettings.py +0 -0
  88. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_localsettings.py +0 -0
  89. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_member.py +0 -0
  90. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_replicationgroup.py +0 -0
  91. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_subscriber.py +0 -0
  92. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_subscription.py +0 -0
  93. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdfsr_topology.py +0 -0
  94. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msdns_serversettings.py +0 -0
  95. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_authnpolicies.py +0 -0
  96. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_authnpolicysilos.py +0 -0
  97. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_claimstransformationpolicies.py +0 -0
  98. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_claimtype.py +0 -0
  99. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_claimtypepropertybase.py +0 -0
  100. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_claimtypes.py +0 -0
  101. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_optionalfeature.py +0 -0
  102. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_passwordsettingscontainer.py +0 -0
  103. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_quotacontainer.py +0 -0
  104. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_resourceproperties.py +0 -0
  105. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_resourceproperty.py +0 -0
  106. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_resourcepropertylist.py +0 -0
  107. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_shadowprincipalcontainer.py +0 -0
  108. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msds_valuetype.py +0 -0
  109. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msfve_recoveryinformation.py +0 -0
  110. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msimaging_psps.py +0 -0
  111. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/mskds_provserverconfiguration.py +0 -0
  112. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msmqenterprisesettings.py +0 -0
  113. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/mspki_enterpriseoid.py +0 -0
  114. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/mspki_privatekeyrecoveryagent.py +0 -0
  115. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/msspp_activationobjectscontainer.py +0 -0
  116. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/mstpm_informationobjectscontainer.py +0 -0
  117. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ntdsconnection.py +0 -0
  118. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ntdsdsa.py +0 -0
  119. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ntdsservice.py +0 -0
  120. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ntdssitesettings.py +0 -0
  121. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ntfrssettings.py +0 -0
  122. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/object.py +0 -0
  123. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/organizationalperson.py +0 -0
  124. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/organizationalunit.py +0 -0
  125. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/person.py +0 -0
  126. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/physicallocation.py +0 -0
  127. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/pkicertificatetemplate.py +0 -0
  128. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/pkienrollmentservice.py +0 -0
  129. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/querypolicy.py +0 -0
  130. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ridmanager.py +0 -0
  131. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/ridset.py +0 -0
  132. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/rpccontainer.py +0 -0
  133. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/rrasadministrationdictionary.py +0 -0
  134. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/samserver.py +0 -0
  135. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/secret.py +0 -0
  136. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/securityobject.py +0 -0
  137. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/server.py +0 -0
  138. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/serverscontainer.py +0 -0
  139. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/site.py +0 -0
  140. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/sitelink.py +0 -0
  141. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/sitescontainer.py +0 -0
  142. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/subnetcontainer.py +0 -0
  143. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/subschema.py +0 -0
  144. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/top.py +0 -0
  145. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/trusteddomain.py +0 -0
  146. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/objects/user.py +0 -0
  147. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/pek.py +0 -0
  148. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/query.py +0 -0
  149. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/schema.py +0 -0
  150. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/sd.py +0 -0
  151. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/tools/__init__.py +0 -0
  152. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/ntds/tools/ntds.py +0 -0
  153. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/page.py +0 -0
  154. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/record.py +0 -0
  155. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/sorting_table.py +0 -0
  156. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/table.py +0 -0
  157. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/tools/__init__.py +0 -0
  158. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/tools/certlog.py +0 -0
  159. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/tools/impacket.py +0 -0
  160. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/tools/sru.py +0 -0
  161. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/tools/ual.py +0 -0
  162. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/ese/util.py +0 -0
  163. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/exception.py +0 -0
  164. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/__init__.py +0 -0
  165. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/c_sqlite3.py +0 -0
  166. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/c_sqlite3.pyi +0 -0
  167. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/encryption/__init__.py +0 -0
  168. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/encryption/sqlcipher/__init__.py +0 -0
  169. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/encryption/sqlcipher/exception.py +0 -0
  170. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/encryption/sqlcipher/sqlcipher.py +0 -0
  171. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/exception.py +0 -0
  172. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/sqlite3.py +0 -0
  173. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/util.py +0 -0
  174. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect/database/sqlite3/wal.py +0 -0
  175. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect.database.egg-info/dependency_links.txt +0 -0
  176. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect.database.egg-info/entry_points.txt +0 -0
  177. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect.database.egg-info/requires.txt +0 -0
  178. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/dissect.database.egg-info/top_level.txt +0 -0
  179. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/pyproject.toml +0 -0
  180. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/setup.cfg +0 -0
  181. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/__init__.py +0 -0
  182. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/_docs/Makefile +0 -0
  183. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/_docs/conf.py +0 -0
  184. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/_docs/index.rst +0 -0
  185. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/_tools/sqlite3/__init__.py +0 -0
  186. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/_tools/sqlite3/generate_sqlite.py +0 -0
  187. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/_util.py +0 -0
  188. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/bsd/__init__.py +0 -0
  189. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/bsd/conftest.py +0 -0
  190. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/bsd/test_db.py +0 -0
  191. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/bsd/test_rpm.py +0 -0
  192. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/conftest.py +0 -0
  193. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/__init__.py +0 -0
  194. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/conftest.py +0 -0
  195. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/__init__.py +0 -0
  196. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/conftest.py +0 -0
  197. {dissect_database-1.2.dev9/tests/ese/tools → dissect_database-1.2.dev10/tests/ese/ntds/objects}/__init__.py +0 -0
  198. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/test_benchmark.py +0 -0
  199. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/test_ntds.py +0 -0
  200. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/test_pek.py +0 -0
  201. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/test_query.py +0 -0
  202. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/test_schema.py +0 -0
  203. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/test_sd.py +0 -0
  204. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/ntds/test_util.py +0 -0
  205. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/test_cursor.py +0 -0
  206. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/test_ese.py +0 -0
  207. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/test_index.py +0 -0
  208. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/test_page.py +0 -0
  209. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/test_record.py +0 -0
  210. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/test_table.py +0 -0
  211. {dissect_database-1.2.dev9/tests/sqlite3 → dissect_database-1.2.dev10/tests/ese/tools}/__init__.py +0 -0
  212. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/tools/test_certlog.py +0 -0
  213. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/tools/test_sru.py +0 -0
  214. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/ese/tools/test_ual.py +0 -0
  215. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/sqlite3/conftest.py +0 -0
  216. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/sqlite3/test_default_values.py +0 -0
  217. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/sqlite3/test_row.py +0 -0
  218. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/sqlite3/test_sqlcipher.py +0 -0
  219. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/sqlite3/test_sqlite3.py +0 -0
  220. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/sqlite3/test_util.py +0 -0
  221. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tests/sqlite3/test_wal.py +0 -0
  222. {dissect_database-1.2.dev9 → dissect_database-1.2.dev10}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.database
3
- Version: 1.2.dev9
3
+ Version: 1.2.dev10
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
@@ -11,6 +11,7 @@ if TYPE_CHECKING:
11
11
 
12
12
  from dissect.database.ese.ntds.objects import (
13
13
  Computer,
14
+ DnsNode,
14
15
  DomainDNS,
15
16
  Group,
16
17
  GroupPolicyContainer,
@@ -118,6 +119,10 @@ class NTDS:
118
119
  """Get all secret objects from the database."""
119
120
  yield from self.search(objectClass="secret")
120
121
 
122
+ def dns_nodes(self) -> Iterator[DnsNode]:
123
+ """Get all DnsNode objects from the database."""
124
+ yield from self.search(objectClass="dnsNode")
125
+
121
126
  def backup_keys(self) -> Iterator[BackupKey]:
122
127
  """Get all DPAPI backup keys from the database."""
123
128
  if not self.pek.unlocked:
@@ -0,0 +1,109 @@
1
+ from __future__ import annotations
2
+
3
+ from dissect.cstruct import cstruct
4
+
5
+ dns_record_def = """
6
+
7
+ // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/39b03b89-2264-4063-8198-d62f62a6441a
8
+ enum DNS_RECORD_TYPE : WORD {
9
+ ZERO = 0x0000, // An empty record type ([RFC1034] section 3.6 and [RFC1035] section 3.2.2).
10
+ A = 0x0001, // An A record type, used for storing an IP address ([RFC1035] section 3.2.2).
11
+ NS = 0x0002, // An authoritative name-server
12
+ // record type ([RFC1034] section 3.6 and [RFC1035] section 3.2.2).
13
+ MD = 0x0003, // A mail-destination record type ([RFC1035] section 3.2.2).
14
+ MF = 0x0004, // A mail forwarder record type ([RFC1035] section 3.2.2).
15
+ CNAME = 0x0005, // A record type that contains the canonical name of a DNS alias ([RFC1035] section 3.2.2).
16
+ SOA = 0x0006, // A Start of Authority (SOA) record type ([RFC1035] section 3.2.2).
17
+ MB = 0x0007, // A mailbox record type ([RFC1035] section 3.2.2).
18
+ MG = 0x0008, // A mail group member record type ([RFC1035] section 3.2.2).
19
+ MR = 0x0009, // A mail-rename record type ([RFC1035] section 3.2.2).
20
+ NULL = 0x000A, // A record type for completion queries ([RFC1035] section 3.2.2).
21
+ WKS = 0x000B, // A record type for a well-known service ([RFC1035] section 3.2.2).
22
+ PTR = 0x000C, // A record type containing FQDN pointer ([RFC1035] section 3.2.2).
23
+ HINFO = 0x000D, // A host information record type ([RFC1035] section 3.2.2).
24
+ MINFO = 0x000E, // A mailbox or mailing list information record type ([RFC1035] section 3.2.2).
25
+ MX = 0x000F, // A mail-exchanger record type ([RFC1035] section 3.2.2).
26
+ TXT = 0x0010, // A record type containing a text string ([RFC1035] section 3.2.2).
27
+ RP = 0x0011, // A responsible-person record type [RFC1183].
28
+ AFSDB = 0x0012, // A record type containing AFS database location [RFC1183].
29
+ X25 = 0x0013, // An X25 PSDN address record type [RFC1183].
30
+ ISDN = 0x0014, // An ISDN address record type [RFC1183].
31
+ RT = 0x0015, // A route through record type [RFC1183].
32
+ SIG = 0x0018, // A cryptographic public key signature record type [RFC2931].
33
+ KEY = 0x0019, // A record type containing public key used in DNSSEC [RFC2535].
34
+ AAAA = 0x001C, // An IPv6 address record type [RFC3596].
35
+ LOC = 0x001D, // A location information record type [RFC1876].
36
+ NXT = 0x001E, // A next-domain record type [RFC2065].
37
+ SRV = 0x0021, // A server selection record type [RFC2782].
38
+ ATMA = 0x0022, // An Asynchronous Transfer Mode (ATM) address record type [ATMA].
39
+ NAPTR = 0x0023, // An NAPTR record type [RFC2915].
40
+ DNAME = 0x0027, // A DNAME record type [RFC2672].
41
+ DS = 0x002B, // A DS record type [RFC4034].
42
+ RRSIG = 0x002E, // An RRSIG record type [RFC4034].
43
+ NSEC = 0x002F, // An NSEC record type [RFC4034].
44
+ DNSKEY = 0x0030, // A DNSKEY record type [RFC4034].
45
+ DHCID = 0x0031, // A DHCID record type [RFC4701].
46
+ NSEC3 = 0x0032, // An NSEC3 record type [RFC5155].
47
+ NSEC3PARAM = 0x0033, // An NSEC3PARAM record type [RFC5155].
48
+ TLSA = 0x0034, // A TLSA record type [RFC6698].
49
+ ALL = 0x00FF, // A query-only type requesting all records [RFC1035].
50
+ WINS = 0xFF01, // A record type containing Windows Internet Name Service (WINS)
51
+ // forward lookup data [MS-WINSRADNS_TYPE_WINSR].
52
+ WINSR = 0xFF02 // A record type containing WINS reverse lookup data [MS-WINSRA].
53
+ };
54
+
55
+ // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/6912b338-5472-4f59-b912-0edb536b6ed8
56
+ typedef struct DNS_RECORD_HEADER {
57
+ WORD DataLength;
58
+ DNS_RECORD_TYPE Type;
59
+ BYTE Version; // Must be 0x05
60
+ BYTE Rank;
61
+ WORD Flags; // Must be 0x00
62
+ DWORD Serial;
63
+ DWORD TtlSeconds; // Big Endian
64
+ DWORD Reserved; // MUST be 0x00000000.
65
+ DWORD TimeStamp;
66
+ CHAR Data[DataLength];
67
+ };
68
+
69
+ // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/3fd41adc-c69e-407b-979e-721251403132
70
+ // MS docs indicate that structure is 4 byte aligned, and that the string MUST NOT be null-terminated.
71
+ // But observed reality is a null terminated string (null char not counted in NameLength)
72
+ typedef struct DNS_RPC_NAME{
73
+ BYTE NameLength;
74
+ CHAR dnsName[NameLength];
75
+ };
76
+
77
+ // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/db37cab7-f121-43ba-81c5-ca0e198d4b9a
78
+ typedef struct DNS_RPC_RECORD_SRV {
79
+ WORD Priority;
80
+ WORD Weight;
81
+ WORD Port;
82
+ DNS_RPC_NAME nameTarget;
83
+ };
84
+
85
+ // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/f647d391-6614-4c3e-b38b-4df971590eb6
86
+ typedef struct DNS_RPC_RECORD_NAME_PREFERENCE {
87
+ WORD Preference;
88
+ DNS_RPC_NAME nameExchange;
89
+ };
90
+
91
+ // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/dcd3ec16-d6bf-4bb4-9128-6172f9e5f066
92
+ typedef struct DNS_RPC_RECORD_SOA {
93
+ DWORD Serial;
94
+ DWORD Refresh;
95
+ DWORD Retry;
96
+ DWORD Expire;
97
+ DWORD MinimumTtl;
98
+ DNS_RPC_NAME namePrimaryServer;
99
+ BYTE _pad;
100
+ DNS_RPC_NAME ZoneAdministratorEmail;
101
+ };
102
+
103
+ // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/def7736a-dd09-4b4a-b8d6-6a702a7ecde0
104
+ typedef struct DNS_RPC_RECORD_TS {
105
+ QWORD EntombedTime;
106
+ };
107
+ """
108
+ c_dns_record = cstruct(dns_record_def)
109
+ DNS_RECORD_TYPE = c_dns_record.DNS_RECORD_TYPE
@@ -0,0 +1,146 @@
1
+ # Generated by cstruct-stubgen
2
+ from typing import BinaryIO, Literal, TypeAlias, overload
3
+
4
+ import dissect.cstruct as __cs__
5
+
6
+ class _c_dns_record(__cs__.cstruct):
7
+ class DNS_RECORD_TYPE(__cs__.Enum):
8
+ ZERO = ...
9
+ A = ...
10
+ NS = ...
11
+ MD = ...
12
+ MF = ...
13
+ CNAME = ...
14
+ SOA = ...
15
+ MB = ...
16
+ MG = ...
17
+ MR = ...
18
+ NULL = ...
19
+ WKS = ...
20
+ PTR = ...
21
+ HINFO = ...
22
+ MINFO = ...
23
+ MX = ...
24
+ TXT = ...
25
+ RP = ...
26
+ AFSDB = ...
27
+ X25 = ...
28
+ ISDN = ...
29
+ RT = ...
30
+ SIG = ...
31
+ KEY = ...
32
+ AAAA = ...
33
+ LOC = ...
34
+ NXT = ...
35
+ SRV = ...
36
+ ATMA = ...
37
+ NAPTR = ...
38
+ DNAME = ...
39
+ DS = ...
40
+ RRSIG = ...
41
+ NSEC = ...
42
+ DNSKEY = ...
43
+ DHCID = ...
44
+ NSEC3 = ...
45
+ NSEC3PARAM = ...
46
+ TLSA = ...
47
+ ALL = ...
48
+ WINS = ...
49
+ WINSR = ...
50
+
51
+ class DNS_RECORD_HEADER(__cs__.Structure):
52
+ DataLength: _c_dns_record.uint16
53
+ Type: _c_dns_record.DNS_RECORD_TYPE
54
+ Version: _c_dns_record.uint8
55
+ Rank: _c_dns_record.uint8
56
+ Flags: _c_dns_record.uint16
57
+ Serial: _c_dns_record.uint32
58
+ TtlSeconds: _c_dns_record.uint32
59
+ Reserved: _c_dns_record.uint32
60
+ TimeStamp: _c_dns_record.uint32
61
+ Data: __cs__.CharArray
62
+ @overload
63
+ def __init__(
64
+ self,
65
+ DataLength: _c_dns_record.uint16 | None = ...,
66
+ Type: _c_dns_record.DNS_RECORD_TYPE | None = ...,
67
+ Version: _c_dns_record.uint8 | None = ...,
68
+ Rank: _c_dns_record.uint8 | None = ...,
69
+ Flags: _c_dns_record.uint16 | None = ...,
70
+ Serial: _c_dns_record.uint32 | None = ...,
71
+ TtlSeconds: _c_dns_record.uint32 | None = ...,
72
+ Reserved: _c_dns_record.uint32 | None = ...,
73
+ TimeStamp: _c_dns_record.uint32 | None = ...,
74
+ Data: __cs__.CharArray | None = ...,
75
+ ): ...
76
+ @overload
77
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
78
+
79
+ class DNS_RPC_NAME(__cs__.Structure):
80
+ NameLength: _c_dns_record.uint8
81
+ dnsName: __cs__.CharArray
82
+ @overload
83
+ def __init__(self, NameLength: _c_dns_record.uint8 | None = ..., dnsName: __cs__.CharArray | None = ...): ...
84
+ @overload
85
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
86
+
87
+ class DNS_RPC_RECORD_SRV(__cs__.Structure):
88
+ Priority: _c_dns_record.uint16
89
+ Weight: _c_dns_record.uint16
90
+ Port: _c_dns_record.uint16
91
+ nameTarget: _c_dns_record.DNS_RPC_NAME
92
+ @overload
93
+ def __init__(
94
+ self,
95
+ Priority: _c_dns_record.uint16 | None = ...,
96
+ Weight: _c_dns_record.uint16 | None = ...,
97
+ Port: _c_dns_record.uint16 | None = ...,
98
+ nameTarget: _c_dns_record.DNS_RPC_NAME | None = ...,
99
+ ): ...
100
+ @overload
101
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
102
+
103
+ class DNS_RPC_RECORD_NAME_PREFERENCE(__cs__.Structure):
104
+ Preference: _c_dns_record.uint16
105
+ nameExchange: _c_dns_record.DNS_RPC_NAME
106
+ @overload
107
+ def __init__(
108
+ self, Preference: _c_dns_record.uint16 | None = ..., nameExchange: _c_dns_record.DNS_RPC_NAME | None = ...
109
+ ): ...
110
+ @overload
111
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
112
+
113
+ class DNS_RPC_RECORD_SOA(__cs__.Structure):
114
+ Serial: _c_dns_record.uint32
115
+ Refresh: _c_dns_record.uint32
116
+ Retry: _c_dns_record.uint32
117
+ Expire: _c_dns_record.uint32
118
+ MinimumTtl: _c_dns_record.uint32
119
+ namePrimaryServer: _c_dns_record.DNS_RPC_NAME
120
+ _pad: _c_dns_record.uint8
121
+ ZoneAdministratorEmail: _c_dns_record.DNS_RPC_NAME
122
+ @overload
123
+ def __init__(
124
+ self,
125
+ Serial: _c_dns_record.uint32 | None = ...,
126
+ Refresh: _c_dns_record.uint32 | None = ...,
127
+ Retry: _c_dns_record.uint32 | None = ...,
128
+ Expire: _c_dns_record.uint32 | None = ...,
129
+ MinimumTtl: _c_dns_record.uint32 | None = ...,
130
+ namePrimaryServer: _c_dns_record.DNS_RPC_NAME | None = ...,
131
+ _pad: _c_dns_record.uint8 | None = ...,
132
+ ZoneAdministratorEmail: _c_dns_record.DNS_RPC_NAME | None = ...,
133
+ ): ...
134
+ @overload
135
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
136
+
137
+ class DNS_RPC_RECORD_TS(__cs__.Structure):
138
+ EntombedTime: _c_dns_record.uint64
139
+ @overload
140
+ def __init__(self, EntombedTime: _c_dns_record.uint64 | None = ...): ...
141
+ @overload
142
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
143
+
144
+ # Technically `c_dns_record` is an instance of `_c_dns_record`, but then we can't use it in type hints
145
+ c_dns_record: TypeAlias = _c_dns_record
146
+ DNS_RECORD_TYPE: TypeAlias = _c_dns_record.DNS_RECORD_TYPE