diff --git a/src/components/Modals/HelpTexts/AZAddSecret/AZAddSecret.jsx b/src/components/Modals/HelpTexts/AZAddSecret/AZAddSecret.jsx index 955b7bb96..98ebb0b18 100644 --- a/src/components/Modals/HelpTexts/AZAddSecret/AZAddSecret.jsx +++ b/src/components/Modals/HelpTexts/AZAddSecret/AZAddSecret.jsx @@ -6,44 +6,21 @@ import Abuse from './Abuse'; import Opsec from './Opsec'; import References from './References'; -const AZAddSecret = ({ - sourceName, - sourceType, - targetName, - targetType, -}) => { +const AZAddSecret = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZAddSecret/Abuse.jsx b/src/components/Modals/HelpTexts/AZAddSecret/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZAddSecret/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZAddSecret/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZAddSecret/General.jsx b/src/components/Modals/HelpTexts/AZAddSecret/General.jsx index 1e94b5c1f..b87aa73e6 100644 --- a/src/components/Modals/HelpTexts/AZAddSecret/General.jsx +++ b/src/components/Modals/HelpTexts/AZAddSecret/General.jsx @@ -1,11 +1,25 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = `Azure provides several systems and mechanisms for granting control of securable objects within Azure Active Directory, including tenant-scoped admin roles, object-scoped admin roles, explicit object ownership, and API permissions. - - When a principal has been granted "Cloud App Admin" or "App Admin" against the tenant, that principal gains the ability to add new secrets to all Service Principals and App Registrations. Additionally, a principal that has been granted "Cloud App Admin" or "App Admin" against, or explicit ownership of a Service Principal or App Registration gains the ability to add secrets to that particular object. - `; - return { __html: text }; +const General = () => { + return ( + <> +

+ Azure provides several systems and mechanisms for granting + control of securable objects within Azure Active Directory, + including tenant-scoped admin roles, object-scoped admin roles, + explicit object ownership, and API permissions. +

+

+ When a principal has been granted "Cloud App Admin" or "App + Admin" against the tenant, that principal gains the ability to + add new secrets to all Service Principals and App Registrations. + Additionally, a principal that has been granted "Cloud App + Admin" or "App Admin" against, or explicit ownership of a + Service Principal or App Registration gains the ability to add + secrets to that particular object. +

+ + ); }; export default General; diff --git a/src/components/Modals/HelpTexts/AZAddSecret/Opsec.jsx b/src/components/Modals/HelpTexts/AZAddSecret/Opsec.jsx index b4cf80462..8ee8b7f90 100644 --- a/src/components/Modals/HelpTexts/AZAddSecret/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZAddSecret/Opsec.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const Opsec = () => { - let text = ``; - return { __html: text }; + return <> }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZAddSecret/References.jsx b/src/components/Modals/HelpTexts/AZAddSecret/References.jsx index a7992972d..bb21ba56d 100644 --- a/src/components/Modals/HelpTexts/AZAddSecret/References.jsx +++ b/src/components/Modals/HelpTexts/AZAddSecret/References.jsx @@ -1,8 +1,22 @@ +import React from 'react'; + const References = () => { - let text = `ATT&CK T1098: Account Manipulation - Andy Robbins - Azure Privilege Escalation via Service Principal Abuse - Assign Azure AD roles at different scopes`; - return { __html: text }; + return ( + <> + + ATT&CK T1098: Account Manipulation + +
+ + Andy Robbins - Azure Privilege Escalation via Service Principal + Abuse + +
+ + Assign Azure AD roles at different scopes + + + ); }; export default References; diff --git a/src/components/Modals/HelpTexts/AZAvereContributor/AZAvereContributor.jsx b/src/components/Modals/HelpTexts/AZAvereContributor/AZAvereContributor.jsx index e8c152e5f..d4693e8a3 100644 --- a/src/components/Modals/HelpTexts/AZAvereContributor/AZAvereContributor.jsx +++ b/src/components/Modals/HelpTexts/AZAvereContributor/AZAvereContributor.jsx @@ -14,36 +14,18 @@ const AZAvereContributor = ({ }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZAvereContributor/Abuse.jsx b/src/components/Modals/HelpTexts/AZAvereContributor/Abuse.jsx index fd14ebff8..735a5a9e0 100644 --- a/src/components/Modals/HelpTexts/AZAvereContributor/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZAvereContributor/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <> }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZAvereContributor/General.jsx b/src/components/Modals/HelpTexts/AZAvereContributor/General.jsx index dc19cd1df..05afd1000 100644 --- a/src/components/Modals/HelpTexts/AZAvereContributor/General.jsx +++ b/src/components/Modals/HelpTexts/AZAvereContributor/General.jsx @@ -1,6 +1,13 @@ -const General = (sourceName, sourceType, targetName, targetType) => { - let text = `Any principal granted the Avere Contributor role, scoped to the affected VM, can reset the built-in administrator password on the VM.`; - return { __html: text }; +import React from 'react'; + +const General = () => { + return ( +

+ Any principal granted the Avere Contributor role, scoped to the + affected VM, can reset the built-in administrator password on the + VM. +

+ ); }; export default General; diff --git a/src/components/Modals/HelpTexts/AZAvereContributor/Opsec.jsx b/src/components/Modals/HelpTexts/AZAvereContributor/Opsec.jsx index 6e17529d0..e44f4d32e 100644 --- a/src/components/Modals/HelpTexts/AZAvereContributor/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZAvereContributor/Opsec.jsx @@ -1,6 +1,12 @@ +import React from 'react'; + const Opsec = () => { - let text = `Azure will log each password reset event, including who performed the reset, against which account, and at what date and time.`; - return { __html: text }; + return ( +

+ Azure will log each password reset event, including who performed + the reset, against which account, and at what date and time. +

+ ); }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZAvereContributor/References.jsx b/src/components/Modals/HelpTexts/AZAvereContributor/References.jsx index a3816a565..41e65f804 100644 --- a/src/components/Modals/HelpTexts/AZAvereContributor/References.jsx +++ b/src/components/Modals/HelpTexts/AZAvereContributor/References.jsx @@ -1,8 +1,21 @@ +import React from 'react'; + const References = () => { - let text = `ATT&CK T0008: Lateral Movement - ATT&CK T1021: Remote Services - Microsoft Docs - Avere Contributor`; - return { __html: text }; + return ( + <> + + ATT&CK T0008: Lateral Movement + +
+ + ATT&CK T1021: Remote Services + +
+ + Microsoft Docs - Avere Contributor + + + ); }; export default References; diff --git a/src/components/Modals/HelpTexts/AZExecuteCommand/AZExecuteCommand.jsx b/src/components/Modals/HelpTexts/AZExecuteCommand/AZExecuteCommand.jsx index 8ae1ec3cb..702487a8d 100644 --- a/src/components/Modals/HelpTexts/AZExecuteCommand/AZExecuteCommand.jsx +++ b/src/components/Modals/HelpTexts/AZExecuteCommand/AZExecuteCommand.jsx @@ -14,36 +14,18 @@ const AZExecuteCommand = ({ }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZExecuteCommand/Abuse.jsx b/src/components/Modals/HelpTexts/AZExecuteCommand/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZExecuteCommand/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZExecuteCommand/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZExecuteCommand/General.jsx b/src/components/Modals/HelpTexts/AZExecuteCommand/General.jsx index cca3221fb..0d431d693 100644 --- a/src/components/Modals/HelpTexts/AZExecuteCommand/General.jsx +++ b/src/components/Modals/HelpTexts/AZExecuteCommand/General.jsx @@ -1,8 +1,7 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +const General = () => { + return <>; }; export default General; diff --git a/src/components/Modals/HelpTexts/AZExecuteCommand/Opsec.jsx b/src/components/Modals/HelpTexts/AZExecuteCommand/Opsec.jsx index b4cf80462..58573c7e0 100644 --- a/src/components/Modals/HelpTexts/AZExecuteCommand/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZExecuteCommand/Opsec.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const Opsec = () => { - let text = ``; - return { __html: text }; + return <>; }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZExecuteCommand/References.jsx b/src/components/Modals/HelpTexts/AZExecuteCommand/References.jsx index 5aed5a6bb..cc6eb2963 100644 --- a/src/components/Modals/HelpTexts/AZExecuteCommand/References.jsx +++ b/src/components/Modals/HelpTexts/AZExecuteCommand/References.jsx @@ -1,8 +1,17 @@ +import React from 'react'; + const References = () => { - let text = ` - MITRE: Execution - Attacking Azure with custom script extensions`; - return { __html: text }; + return ( + <> + + MITRE: Execution + +
+ + Attacking Azure with custom script extensions + + + ); }; -export default References; \ No newline at end of file +export default References; diff --git a/src/components/Modals/HelpTexts/AZGrant/AZGrant.jsx b/src/components/Modals/HelpTexts/AZGrant/AZGrant.jsx index 224a7ac45..3546e8309 100644 --- a/src/components/Modals/HelpTexts/AZGrant/AZGrant.jsx +++ b/src/components/Modals/HelpTexts/AZGrant/AZGrant.jsx @@ -6,44 +6,21 @@ import Abuse from './Abuse'; import Opsec from './Opsec'; import References from './References'; -const AZGrant = ({ - sourceName, - sourceType, - targetName, - targetType, -}) => { +const AZGrant = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZGrant/Abuse.jsx b/src/components/Modals/HelpTexts/AZGrant/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZGrant/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZGrant/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZGrant/General.jsx b/src/components/Modals/HelpTexts/AZGrant/General.jsx index cca3221fb..0d431d693 100644 --- a/src/components/Modals/HelpTexts/AZGrant/General.jsx +++ b/src/components/Modals/HelpTexts/AZGrant/General.jsx @@ -1,8 +1,7 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +const General = () => { + return <>; }; export default General; diff --git a/src/components/Modals/HelpTexts/AZGrant/Opsec.jsx b/src/components/Modals/HelpTexts/AZGrant/Opsec.jsx index b4cf80462..58573c7e0 100644 --- a/src/components/Modals/HelpTexts/AZGrant/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZGrant/Opsec.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const Opsec = () => { - let text = ``; - return { __html: text }; + return <>; }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZGrant/References.jsx b/src/components/Modals/HelpTexts/AZGrant/References.jsx index 0ec036f55..2cf2e1513 100644 --- a/src/components/Modals/HelpTexts/AZGrant/References.jsx +++ b/src/components/Modals/HelpTexts/AZGrant/References.jsx @@ -1,10 +1,22 @@ +import React from 'react'; + const References = () => { - let text = ` - ATT&CK T1098: Account Manipulation - Andy Robbins - Azure Privilege Escalation via Azure API Permissions Abuse - Microsoft Graph Permission Reference` - ; - return { __html: text }; + return ( + <> + + ATT&CK T1098: Account Manipulation + +
+ + Andy Robbins - Azure Privilege Escalation via Azure API + Permissions Abuse + +
+ + Microsoft Graph Permission Reference + + + ); }; export default References; diff --git a/src/components/Modals/HelpTexts/AZGrantSelf/AZGrantSelf.jsx b/src/components/Modals/HelpTexts/AZGrantSelf/AZGrantSelf.jsx index 5a074b203..8a7c9ecb6 100644 --- a/src/components/Modals/HelpTexts/AZGrantSelf/AZGrantSelf.jsx +++ b/src/components/Modals/HelpTexts/AZGrantSelf/AZGrantSelf.jsx @@ -6,44 +6,21 @@ import Abuse from './Abuse'; import Opsec from './Opsec'; import References from './References'; -const AZGrantSelf = ({ - sourceName, - sourceType, - targetName, - targetType, -}) => { +const AZGrantSelf = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; @@ -54,4 +31,4 @@ AZGrantSelf.propTypes = { targetName: PropTypes.string, targetType: PropTypes.string, }; -export default AZGrantSelf; \ No newline at end of file +export default AZGrantSelf; diff --git a/src/components/Modals/HelpTexts/AZGrantSelf/Abuse.jsx b/src/components/Modals/HelpTexts/AZGrantSelf/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZGrantSelf/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZGrantSelf/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZGrantSelf/General.jsx b/src/components/Modals/HelpTexts/AZGrantSelf/General.jsx index cca3221fb..0d431d693 100644 --- a/src/components/Modals/HelpTexts/AZGrantSelf/General.jsx +++ b/src/components/Modals/HelpTexts/AZGrantSelf/General.jsx @@ -1,8 +1,7 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +const General = () => { + return <>; }; export default General; diff --git a/src/components/Modals/HelpTexts/AZGrantSelf/Opsec.jsx b/src/components/Modals/HelpTexts/AZGrantSelf/Opsec.jsx index b4cf80462..58573c7e0 100644 --- a/src/components/Modals/HelpTexts/AZGrantSelf/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZGrantSelf/Opsec.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const Opsec = () => { - let text = ``; - return { __html: text }; + return <>; }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZGrantSelf/References.jsx b/src/components/Modals/HelpTexts/AZGrantSelf/References.jsx index bde9a9e78..2cf2e1513 100644 --- a/src/components/Modals/HelpTexts/AZGrantSelf/References.jsx +++ b/src/components/Modals/HelpTexts/AZGrantSelf/References.jsx @@ -1,10 +1,22 @@ +import React from 'react'; + const References = () => { - let text = ` - ATT&CK T1098: Account Manipulation - Andy Robbins - Azure Privilege Escalation via Azure API Permissions Abuse - Microsoft Graph Permission Reference` - ; - return { __html: text }; + return ( + <> + + ATT&CK T1098: Account Manipulation + +
+ + Andy Robbins - Azure Privilege Escalation via Azure API + Permissions Abuse + +
+ + Microsoft Graph Permission Reference + + + ); }; export default References; diff --git a/src/components/Modals/HelpTexts/AZHasRole/AZHasRole.jsx b/src/components/Modals/HelpTexts/AZHasRole/AZHasRole.jsx index 159bd1c3b..0ae01805c 100644 --- a/src/components/Modals/HelpTexts/AZHasRole/AZHasRole.jsx +++ b/src/components/Modals/HelpTexts/AZHasRole/AZHasRole.jsx @@ -6,44 +6,21 @@ import Abuse from './Abuse'; import Opsec from './Opsec'; import References from './References'; -const AZHasRole = ({ - sourceName, - sourceType, - targetName, - targetType, -}) => { +const AZHasRole = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZHasRole/Abuse.jsx b/src/components/Modals/HelpTexts/AZHasRole/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZHasRole/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZHasRole/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZHasRole/General.jsx b/src/components/Modals/HelpTexts/AZHasRole/General.jsx index cca3221fb..0d431d693 100644 --- a/src/components/Modals/HelpTexts/AZHasRole/General.jsx +++ b/src/components/Modals/HelpTexts/AZHasRole/General.jsx @@ -1,8 +1,7 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +const General = () => { + return <>; }; export default General; diff --git a/src/components/Modals/HelpTexts/AZHasRole/Opsec.jsx b/src/components/Modals/HelpTexts/AZHasRole/Opsec.jsx index b4cf80462..58573c7e0 100644 --- a/src/components/Modals/HelpTexts/AZHasRole/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZHasRole/Opsec.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const Opsec = () => { - let text = ``; - return { __html: text }; + return <>; }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZHasRole/References.jsx b/src/components/Modals/HelpTexts/AZHasRole/References.jsx index ca59f70d9..9e9252913 100644 --- a/src/components/Modals/HelpTexts/AZHasRole/References.jsx +++ b/src/components/Modals/HelpTexts/AZHasRole/References.jsx @@ -1,7 +1,17 @@ +import React from 'react'; + const References = () => { - let text = `Microsoft Graph Permission Reference - Azure role-based access control`; - return { __html: text }; + return ( + <> + + Microsoft Graph Permission Reference + +
+ + Azure role-based access control + + + ); }; export default References; diff --git a/src/components/Modals/HelpTexts/AZMemberOf/AZMemberOf.jsx b/src/components/Modals/HelpTexts/AZMemberOf/AZMemberOf.jsx index 7a4410a42..7459cc26d 100644 --- a/src/components/Modals/HelpTexts/AZMemberOf/AZMemberOf.jsx +++ b/src/components/Modals/HelpTexts/AZMemberOf/AZMemberOf.jsx @@ -6,44 +6,21 @@ import Abuse from './Abuse'; import Opsec from './Opsec'; import References from './References'; -const AZMemberOf = ({ - sourceName, - sourceType, - targetName, - targetType, -}) => { +const AZMemberOf = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZMemberOf/Abuse.jsx b/src/components/Modals/HelpTexts/AZMemberOf/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZMemberOf/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZMemberOf/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZMemberOf/General.jsx b/src/components/Modals/HelpTexts/AZMemberOf/General.jsx index cca3221fb..0d431d693 100644 --- a/src/components/Modals/HelpTexts/AZMemberOf/General.jsx +++ b/src/components/Modals/HelpTexts/AZMemberOf/General.jsx @@ -1,8 +1,7 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +const General = () => { + return <>; }; export default General; diff --git a/src/components/Modals/HelpTexts/AZMemberOf/Opsec.jsx b/src/components/Modals/HelpTexts/AZMemberOf/Opsec.jsx index b4cf80462..58573c7e0 100644 --- a/src/components/Modals/HelpTexts/AZMemberOf/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZMemberOf/Opsec.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const Opsec = () => { - let text = ``; - return { __html: text }; + return <>; }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZMemberOf/References.jsx b/src/components/Modals/HelpTexts/AZMemberOf/References.jsx index 0ba1ec61d..c41cd329e 100644 --- a/src/components/Modals/HelpTexts/AZMemberOf/References.jsx +++ b/src/components/Modals/HelpTexts/AZMemberOf/References.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const References = () => { - let text = ``; - return { __html: text }; + return <>; }; export default References; diff --git a/src/components/Modals/HelpTexts/AZOwner/AZOwner.jsx b/src/components/Modals/HelpTexts/AZOwner/AZOwner.jsx index a46063434..1e4db9508 100644 --- a/src/components/Modals/HelpTexts/AZOwner/AZOwner.jsx +++ b/src/components/Modals/HelpTexts/AZOwner/AZOwner.jsx @@ -6,44 +6,21 @@ import Abuse from './Abuse'; import Opsec from './Opsec'; import References from './References'; -const AZOwner = ({ - sourceName, - sourceType, - targetName, - targetType, -}) => { +const AZOwner = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZOwner/Abuse.jsx b/src/components/Modals/HelpTexts/AZOwner/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZOwner/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZOwner/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZOwner/General.jsx b/src/components/Modals/HelpTexts/AZOwner/General.jsx index 6d3d37d73..453fcccb1 100644 --- a/src/components/Modals/HelpTexts/AZOwner/General.jsx +++ b/src/components/Modals/HelpTexts/AZOwner/General.jsx @@ -1,6 +1,12 @@ -const General = (sourceName, sourceType, targetName, targetType) => { - let text = `Object ownership means almost all abuses are possible against the target object.`; - return { __html: text }; +import React from 'react'; + +const General = () => { + return ( +

+ Object ownership means almost all abuses are possible against the + target object. +

+ ); }; export default General; diff --git a/src/components/Modals/HelpTexts/AZOwner/Opsec.jsx b/src/components/Modals/HelpTexts/AZOwner/Opsec.jsx index 79603dbcd..054594c28 100644 --- a/src/components/Modals/HelpTexts/AZOwner/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZOwner/Opsec.jsx @@ -1,6 +1,12 @@ +import React from 'react'; + const Opsec = () => { - let text = `This depends on which abuse you perform, but in general Azure will create a log for each abuse action.`; - return { __html: text }; + return ( +

+ This depends on which abuse you perform, but in general Azure will + create a log for each abuse action. +

+ ); }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZOwner/References.jsx b/src/components/Modals/HelpTexts/AZOwner/References.jsx index 9418f1a27..3f995b0d0 100644 --- a/src/components/Modals/HelpTexts/AZOwner/References.jsx +++ b/src/components/Modals/HelpTexts/AZOwner/References.jsx @@ -1,7 +1,17 @@ +import React from 'react'; + const References = () => { - let text = `Attacking Azure with custom script extensions - Azure role-based access control - Owner`; - return { __html: text }; + return ( + <> + + Attacking Azure with custom script extensions + +
+ + Azure role-based access control - Owner + + + ); }; export default References; diff --git a/src/components/Modals/HelpTexts/AZVMAdminLogin/AZVMAdminLogin.jsx b/src/components/Modals/HelpTexts/AZVMAdminLogin/AZVMAdminLogin.jsx index 2c8dea7ac..612471ef2 100644 --- a/src/components/Modals/HelpTexts/AZVMAdminLogin/AZVMAdminLogin.jsx +++ b/src/components/Modals/HelpTexts/AZVMAdminLogin/AZVMAdminLogin.jsx @@ -6,44 +6,21 @@ import Abuse from './Abuse'; import Opsec from './Opsec'; import References from './References'; -const AZVMAdminLogin = ({ - sourceName, - sourceType, - targetName, - targetType, -}) => { +const AZVMAdminLogin = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/AZVMAdminLogin/Abuse.jsx b/src/components/Modals/HelpTexts/AZVMAdminLogin/Abuse.jsx index fd14ebff8..51a9037f0 100644 --- a/src/components/Modals/HelpTexts/AZVMAdminLogin/Abuse.jsx +++ b/src/components/Modals/HelpTexts/AZVMAdminLogin/Abuse.jsx @@ -1,6 +1,7 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = ``; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return <>; }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/AZVMAdminLogin/General.jsx b/src/components/Modals/HelpTexts/AZVMAdminLogin/General.jsx index 6a74aed8e..99acc1914 100644 --- a/src/components/Modals/HelpTexts/AZVMAdminLogin/General.jsx +++ b/src/components/Modals/HelpTexts/AZVMAdminLogin/General.jsx @@ -1,10 +1,22 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = `When a virtual machine is configured to allow logon with Azure AD credentials, the VM automatically has certain principals added to its local administrators group, including any principal granted the Virtual Machine Administrator Login (or "VMAL") admin role. - - Any principal granted this role, scoped to the affected VM, can connect to the VM via RDP and will be granted local admin rights on the VM.`; - return { __html: text }; +const General = () => { + return ( + <> +

+ When a virtual machine is configured to allow logon with Azure + AD credentials, the VM automatically has certain principals + added to its local administrators group, including any principal + granted the Virtual Machine Administrator Login (or "VMAL") + admin role. +

+

+ Any principal granted this role, scoped to the affected VM, can + connect to the VM via RDP and will be granted local admin rights + on the VM. +

+ + ); }; export default General; diff --git a/src/components/Modals/HelpTexts/AZVMAdminLogin/Opsec.jsx b/src/components/Modals/HelpTexts/AZVMAdminLogin/Opsec.jsx index b4cf80462..58573c7e0 100644 --- a/src/components/Modals/HelpTexts/AZVMAdminLogin/Opsec.jsx +++ b/src/components/Modals/HelpTexts/AZVMAdminLogin/Opsec.jsx @@ -1,6 +1,7 @@ +import React from 'react'; + const Opsec = () => { - let text = ``; - return { __html: text }; + return <>; }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/AZVMAdminLogin/References.jsx b/src/components/Modals/HelpTexts/AZVMAdminLogin/References.jsx index d2e8aed4e..98c1b2eb5 100644 --- a/src/components/Modals/HelpTexts/AZVMAdminLogin/References.jsx +++ b/src/components/Modals/HelpTexts/AZVMAdminLogin/References.jsx @@ -1,8 +1,20 @@ +import React from 'react'; + const References = () => { - let text = `ATT&CK T0008: Lateral Movement - ATT&CK T1021: Remote Services - Login to Windows virtual machine in Azure using Azure Active Directory authentication`; - return { __html: text }; + return ( + <> + + ATT&CK T0008: Lateral Movement + + + ATT&CK T1021: Remote Services + + + Login to Windows virtual machine in Azure using Azure Active + Directory authentication + + + ); }; export default References; diff --git a/src/components/Modals/HelpTexts/DCSync/Abuse.jsx b/src/components/Modals/HelpTexts/DCSync/Abuse.jsx index 9c6504375..296a5a79a 100644 --- a/src/components/Modals/HelpTexts/DCSync/Abuse.jsx +++ b/src/components/Modals/HelpTexts/DCSync/Abuse.jsx @@ -1,10 +1,26 @@ -const Abuse = (sourceName, sourceType, targetName, targetType) => { - let text = `You may perform a dcsync attack to get the password hash of an arbitrary principal using mimikatz: - - lsadump::dcsync /domain:testlab.local /user:Administrator - - You can also perform the more complicated ExtraSids attack to hop domain trusts. For information on this see the blog post by harmj0y in the references tab.`; - return { __html: text }; +import React from 'react'; + +const Abuse = () => { + return ( + <> +

+ You may perform a dcsync attack to get the password hash of an + arbitrary principal using mimikatz: +

+
+                
+                    {
+                        'lsadump::dcsync /domain:testlab.local /user:Administrator'
+                    }
+                
+            
+

+ You can also perform the more complicated ExtraSids attack to + hop domain trusts. For information on this see the blog post by + harmj0y in the references tab. +

+ + ); }; export default Abuse; diff --git a/src/components/Modals/HelpTexts/DCSync/DCSync.jsx b/src/components/Modals/HelpTexts/DCSync/DCSync.jsx index 6ef37e035..db59f816b 100644 --- a/src/components/Modals/HelpTexts/DCSync/DCSync.jsx +++ b/src/components/Modals/HelpTexts/DCSync/DCSync.jsx @@ -9,36 +9,22 @@ import References from './References'; const DCSync = ({ sourceName, sourceType, targetName, targetType }) => { return ( - - - - + + + + + + + + + + + + ); }; diff --git a/src/components/Modals/HelpTexts/DCSync/General.jsx b/src/components/Modals/HelpTexts/DCSync/General.jsx index cc3847f86..c055824e2 100644 --- a/src/components/Modals/HelpTexts/DCSync/General.jsx +++ b/src/components/Modals/HelpTexts/DCSync/General.jsx @@ -1,13 +1,28 @@ -import { groupSpecialFormat} from '../Formatter'; +import React from 'react'; +import PropTypes from 'prop-types'; +import { groupSpecialFormat } from '../Formatter'; -const General = (sourceName, sourceType, targetName, targetType) => { - let text = `${groupSpecialFormat( - sourceType, - sourceName - )} the DS-Replication-Get-Changes and the DS-Replication-Get-Changes-All privilege on the domain ${targetName}. - - These two privileges allow a principal to perform a DCSync attack.`; - return { __html: text }; +const General = ({ sourceName, sourceType, targetName }) => { + return ( + <> +

+ {groupSpecialFormat(sourceType, sourceName)} the + DS-Replication-Get-Changes and the + DS-Replication-Get-Changes-All privilege on the domain{' '} + {targetName}. +

+

+ These two privileges allow a principal to perform a DCSync + attack. +

+ + ); +}; + +General.propTypes = { + sourceName: PropTypes.string, + sourceType: PropTypes.string, + targetName: PropTypes.string, }; export default General; diff --git a/src/components/Modals/HelpTexts/DCSync/Opsec.jsx b/src/components/Modals/HelpTexts/DCSync/Opsec.jsx index 29a700580..fdb726579 100644 --- a/src/components/Modals/HelpTexts/DCSync/Opsec.jsx +++ b/src/components/Modals/HelpTexts/DCSync/Opsec.jsx @@ -1,6 +1,12 @@ +import React from 'react'; + const Opsec = () => { - let text = `For detailed information on detection of dcsync as well as opsec considerations, see the adsecurity post in the references tab.`; - return { __html: text }; + return ( +

+ For detailed information on detection of dcsync as well as opsec + considerations, see the adsecurity post in the references tab. +

+ ); }; export default Opsec; diff --git a/src/components/Modals/HelpTexts/DCSync/References.jsx b/src/components/Modals/HelpTexts/DCSync/References.jsx index 64eb42d02..51ac9e92e 100644 --- a/src/components/Modals/HelpTexts/DCSync/References.jsx +++ b/src/components/Modals/HelpTexts/DCSync/References.jsx @@ -1,7 +1,17 @@ +import React from 'react'; + const References = () => { - let text = `https://adsecurity.org/?p=1729 - http://www.harmj0y.net/blog/redteaming/mimikatz-and-dcsync-and-extrasids-oh-my/`; - return { __html: text }; + return ( + <> + + https://adsecurity.org/?p=1729 + +
+ + http://www.harmj0y.net/blog/redteaming/mimikatz-and-dcsync-and-extrasids-oh-my/ + + + ); }; export default References;