use serde_json::json;
pub fn prepare_user_json_template() -> serde_json::value::Value
{
return json!({
"ObjectIdentifier": "SID",
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"domain": "domain.com",
"name": "name@domain.com",
"domainsid": "SID",
"distinguishedname": "CN=name,DN=domain,DN=com",
"highvalue": false,
"description": null,
"whencreated": -1,
"sensitive": false,
"dontreqpreauth": false,
"passwordnotreqd": false,
"unconstraineddelegation": false,
"pwdneverexpires": false,
"enabled": true,
"trustedtoauth": false,
"lastlogon": -1,
"lastlogontimestamp": -1,
"pwdlastset": -1,
"serviceprincipalnames": [],
"hasspn": false,
"displayname": null,
"email": null,
"title": null,
"homedirectory": null,
"logonscript": null,
"samaccountname": null,
"userpassword": null,
"unixpassword": null,
"unicodepassword": null,
"sfupassword": null,
"admincount": false,
"sidhistory": [],
"allowedtodelegate": []
},
"PrimaryGroupSID": null,
"SPNTargets": [],
"Aces": [],
"AllowedToDelegate": [],
"HasSIDHistory": [],
});
}
pub fn prepare_group_json_template() -> serde_json::value::Value
{
return json!({
"ObjectIdentifier": "SID",
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"domain": "domain.com",
"domainsid": "SID",
"name": "name@domain.com",
"distinguishedname": "DN",
"samaccountname": null,
"highvalue": false,
"admincount": false,
"description": null,
"whencreated": -1
},
"Members": [],
"Aces": [],
});
}
pub fn prepare_computer_json_template() -> serde_json::value::Value
{
return json!({
"ObjectIdentifier": "SID",
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"domain": "domain.com",
"name": "name.domain.com",
"distinguishedname": "DN",
"highvalue": false,
"samaccountname": null,
"domainsid": "SID",
"haslaps": false,
"description": null,
"whencreated": -1,
"enabled": true,
"unconstraineddelegation": false,
"trustedtoauth": false,
"lastlogon": -1,
"lastlogontimestamp": -1,
"pwdlastset": -1,
"serviceprincipalnames": [],
"operatingsystem": null,
"sidhistory": [],
},
"PrimaryGroupSID": "PGSID",
"Aces": [],
"AllowedToDelegate": [],
"AllowedToAct": [],
"Status": null,
"HasSIDHistory": [],
"Sessions": {
"Results": [],
"Collected": false,
"FailureReason": null
},
"PrivilegedSessions": {
"Results": [],
"Collected": false,
"FailureReason": null
},
"RegistrySessions": {
"Results": [],
"Collected": false,
"FailureReason": null
},
"LocalAdmins": {
"Results": [],
"Collected": false,
"FailureReason": null
},
"RemoteDesktopUsers": {
"Results": [],
"Collected": false,
"FailureReason": null
},
"DcomUsers": {
"Results": [],
"Collected": false,
"FailureReason": null
},
"PSRemoteUsers": {
"Results": [],
"Collected": false,
"FailureReason": null
},
});
}
pub fn prepare_ou_json_template() -> serde_json::value::Value
{
return json!({
"ObjectIdentifier": "SID",
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"name": "name@domain.com",
"domain": "domain.com",
"domainsid": "SID",
"distinguishedname": "DN",
"highvalue": false,
"description": null,
"blocksinheritance": false,
"whencreated": -1
},
"ACLProtected": false,
"Links": [],
"ChildObjects": [],
"Aces": [],
"GPOChanges": {
"LocalAdmins" : [],
"RemoteDesktopUsers" : [],
"DcomUsers" : [],
"PSRemoteUsers" : [],
"AffectedComputers" : []
},
});
}
pub fn prepare_gpo_json_template() -> serde_json::value::Value
{
return json!({
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"name": "name@domain.com",
"domain": "domain.com",
"domainsid": "SID",
"distinguishedname": "DN",
"highvalue": false,
"description": null,
"gpcpath": "GPO_PATH",
"whencreated": -1
},
"ObjectIdentifier": "SID",
"Aces": [],
});
}
pub fn prepare_domain_json_template() -> serde_json::value::Value
{
return json!({
"ChildObjects": [],
"Trusts": [],
"Aces": [],
"ObjectIdentifier": "SID",
"IsACLProtected": false,
"IsDeleted": false,
"Properties": {
"domain": "domain.com",
"name": "domain.com",
"distinguishedname": "DN",
"domainsid": "SID",
"description": null,
"highvalue": true,
"whencreated": -1,
"functionallevel": "Unknown",
},
"GPOChanges": {
"LocalAdmins" : [],
"RemoteDesktopUsers" : [],
"DcomUsers" : [],
"PSRemoteUsers" : [],
"AffectedComputers" : []
},
"Links": [],
});
}
pub fn prepare_fsp_json_template() -> serde_json::value::Value
{
return json!({
"ObjectIdentifier": "SID",
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"name": "domain.com",
"domainsid": "SID",
"distinguishedname": "DN",
"type":"Unknown",
"whencreated": -1
},
});
}
pub fn prepare_container_json_template() -> serde_json::value::Value
{
return json!({
"ObjectIdentifier": "SID",
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"name": "xyz@domain.com",
"domain": "domain.local",
"domainsid": "SID",
"distinguishedname": "DN",
"highvalue": false,
},
"ChildObjects": [],
"Aces": [],
});
}
pub fn prepare_member_json_template() -> serde_json::value::Value
{
return json!({
"ObjectIdentifier": "",
"ObjectType": ""
});
}
pub fn prepare_acl_relation_template() -> serde_json::value::Value
{
return json!({
"RightName": "",
"IsInherited": false,
"PrincipalSID": "",
"PrincipalType": ""
});
}
pub fn prepare_final_json_file_template(version: i8, bh_type: String) -> serde_json::value::Value
{
return json!({
"data": [],
"meta": {
"methods": 0,
"type": bh_type,
"count": 0,
"version": version
}
});
}
pub fn prepare_gplink_json_template() -> serde_json::value::Value
{
return json!({
"IsEnforced": false,
"GUID": "GUID"
});
}
pub fn prepare_default_group_json_template() -> serde_json::value::Value
{
return json!({
"Members": [],
"Aces": [],
"ObjectIdentifier": "SID",
"IsDeleted": false,
"IsACLProtected": false,
"Properties": {
"name": "name@domain.com",
"domainsid": "SID",
"domain": "domain.com",
"highvalue": false,
},
});
}
pub fn prepare_default_user_json_template() -> serde_json::value::Value
{
return json!({
"AllowedToDelegate": [],
"IsDeleted": false,
"IsACLProtected": false,
"ObjectIdentifier": "SID",
"PrimaryGroupSID": null,
"Properties": {
"domain": "domain.com",
"domainsid": "SID",
"name": "name@domain.com",
},
"SPNTargets": [],
"Aces": [],
"HasSIDHistory": [],
});
}
pub fn prepare_mssqlsvc_spn_json_template() -> serde_json::value::Value
{
return json!({
"ComputerSID": "",
"Port": 1433,
"Service": "SQLAdmin"
});
}
pub fn prepare_trust_json_template() -> serde_json::value::Value
{
return json!({
"TargetDomainSid": "SID",
"TargetDomainName": "DOMAIN.LOCAL",
"IsTransitive": null,
"SidFilteringEnabled": null,
"TrustDirection": 0,
"TrustType": 0
});
}
pub fn prepare_adcs_ca_json_template() -> serde_json::value::Value
{
return json!({
"Properties": {
"name": "CANAME@DOMAIN.LOCAL",
"highvalue": false, "CA Name": "CANAME",
"DNS Name": "fqdn.domain.local",
"Certificate Subject": "DN",
"Certificate Serial Number": "0000000000000000000000000000",
"Certificate Validity Start": "0000-00-00 00:00:00+00:00",
"Certificate Validity End": "0000-00-00 00:00:00+00:00",
"Web Enrollment": "Enabled",
"User Specified SAN": "Enabled", "Request Disposition": "Issue", "domain": "DOMAIN.LOCAL"
},
"ObjectIdentifier": "GUID",
"Aces": []
});
}
pub fn prepare_adcs_template_json_template() -> serde_json::value::Value
{
return json!({
"Properties": {
"name": "NAME@DOMAIN.LOCAL",
"highvalue": false,
"Template Name": "NAME",
"Display Name": "NAME",
"Certificate Authorities": [],
"Enabled": false,
"Client Authentication": false,
"Enrollment Agent": false,
"Any Purpose": false,
"Enrollee Supplies Subject": false,
"Certificate Name Flag": [],
"Enrollment Flag": [],
"Private Key Flag": [],
"Extended Key Usage": [],
"Requires Manager Approval": false,
"Requires Key Archival": false,
"Authorized Signatures Required": 0,
"Validity Period": "x",
"Renewal Period": "x",
"domain": "DOMAIN.LOCAL"
},
"ObjectIdentifier": "GUID",
"Aces": [],
});
}