monkey365.psm1
|
#Set-StrictMode -Off #-Version Latest Set-StrictMode -Version Latest $LocalizedDataParams = @{ BindingVariable = 'message'; FileName = 'localized.psd1'; BaseDirectory = "{0}/{1}" -f $PSScriptRoot, "core/utils"; } #Import localized data Import-LocalizedData @LocalizedDataParams; $internal_modules = @( 'core/modules/monkeylogger', 'core/modules/monkeycloudutils', 'core/modules/monkeyutils', 'core/modules/monkeyhttpwebrequest', 'core/modules/psmarkdig', 'core/modules/monkeyhtml', 'core/modules/monkeyjob', 'core/modules/monkeyruleset', 'core/modules/psocsf', 'core/modules/monkeyoutput' ) $internal_modules.ForEach({Import-Module ("{0}{1}{2}" -f $PSScriptRoot,[System.IO.Path]::DirectorySeparatorChar, $_.ToString()) -Force}) New-Variable -Name ScriptPath -Value $PSScriptRoot -Scope Script -Force #Get Azure plugins $cmds = [System.IO.Directory]::EnumerateFiles(("{0}/core/collector" -f $PSScriptRoot),"*.ps1",[System.IO.SearchOption]::AllDirectories) $modules = @( ("{0}/core/modules/monkeyutils" -f $PSScriptRoot) ) $p = @{ ScriptBlock = {Get-MonkeySupportedService -Azure}; ImportCommands = $cmds; ImportModules = $modules; ImportVariables = @{"ScriptPath" = $PSScriptRoot}; } [void](Start-MonkeyJob @p) Get-MonkeyJob | Wait-MonkeyJob $azure_plugins = Get-MonkeyJob | Receive-MonkeyJob #Remove Job Get-MonkeyJob | Remove-MonkeyJob New-Variable -Name azure_plugins -Value $azure_plugins -Scope Script -Force #Get Microsoft 365 plugins $p = @{ ScriptBlock = {Get-MonkeySupportedService -Microsoft365}; ImportModules = $modules; ImportCommands = $cmds; ImportVariables = @{"ScriptPath" = $PSScriptRoot}; } [void](Start-MonkeyJob @p) Get-MonkeyJob | Wait-MonkeyJob $m365_plugins = Get-MonkeyJob | Receive-MonkeyJob New-Variable -Name m365_plugins -Value $m365_plugins -Scope Script -Force #Remove Job Get-MonkeyJob | Remove-MonkeyJob $internal_functions = @( 'core/api/auth', 'core/tenant', 'core/collector', 'core/utils', 'core/subscription', 'core/init', 'core/import', 'core/output', 'core/tasks', 'core/watcher' ) $all_files = $internal_functions.ForEach({ If([System.IO.Directory]::Exists(("{0}/{1}" -f $PSScriptRoot,$_))){ [System.IO.Directory]::EnumerateFiles(("{0}/{1}" -f $PSScriptRoot,$_),"*.ps1",[System.IO.SearchOption]::AllDirectories) } }) $all_files = $all_files.Where({$_.EndsWith('ps1')}) $all_files.ForEach({. $_}) #Internal files $internal_files = @( 'core/api/azure/resourcemanagement/api/Get-MonkeyRMObject.ps1', 'core/api/azure/resourcemanagement/helpers/tenant/Get-MonkeyAzTenant.ps1', 'core/api/azure/resourcemanagement/helpers/subscription/Get-MonkeyAzSubscription.ps1', 'core/api/azure/resourcemanagement/helpers/subscription/Get-MonkeyAzClassicAdministrator.ps1', 'core/api/azure/resourcemanagement/helpers/rbac/Get-MonkeyAzIAMPermission.ps1', 'core/api/azure/resourcemanagement/helpers/rbac/Get-MonkeyAzRoleAssignmentForObject.ps1', 'core/api/azure/resourcemanagement/helpers/rbac/Get-MonkeyAzRoleDefinitionObject.ps1', 'core/api/azure/resourcemanagement/helpers/general/Get-MonkeyAzResourceGroup.ps1', 'core/api/azure/resourcemanagement/helpers/general/Get-MonkeyAzResource.ps1', 'core/api/azure/resourcemanagement/helpers/general/Get-MonkeyAzProviderOperation.ps1', 'core/api/entraid/msgraph/api/Get-MonkeyMSGraphObject.ps1', 'core/api/entraid/msgraph/helpers/general/Get-MonkeyMSGraphOrganization.ps1', 'core/api/entraid/msgraph/helpers/general/Get-MonkeyMSGraphSuscribedSku.ps1', 'core/api/entraid/msgraph/helpers/general/Get-MonkeyMSGraphSuscribedSku.ps1', 'core/api/entraid/msgraph/helpers/domain/Get-MonkeyMSGraphDomain.ps1', 'core/api/entraid/msgraph/helpers/general/Test-CanRequestGroup.ps1', 'core/api/entraid/msgraph/helpers/general/Test-CanRequestUser.ps1', 'core/api/entraid/msgraph/helpers/general/Get-MonkeyMSGraphDirectoryObjectById.ps1', 'core/api/entraid/msgraph/helpers/general/Get-MonkeyMSGraphProfilePhoto.ps1', 'core/api/entraid/msgraph/helpers/users/Get-MonkeyMSGraphUser.ps1', 'core/api/entraid/msgraph/helpers/groups/Get-MonkeyMSGraphGroup.ps1', 'core/api/entraid/msgraph/helpers/groups/Get-MonkeyMSGraphGroupTransitiveMember.ps1', 'core/api/entraid/msgraph/helpers/serviceprincipals/Get-MonkeyMSGraphAADServicePrincipal.ps1', 'core/api/entraid/msgraph/helpers/directoryrole/Get-MonkeyMSGraphEntraDirectoryRole.ps1', 'core/api/entraid/msgraph/helpers/directoryrole/Get-MonkeyMSGraphEntraRoleAssignment.ps1', 'core/api/entraid/msgraph/helpers/directoryrole/Get-MonkeyMSGraphObjectDirectoryRole.ps1', 'core/api/m365/exchangeonline/helpers/Get-PSExoModuleFile.ps1', 'core/api/m365/exchangeonline/api/ConvertTo-ExoRestCommand.ps1', 'core/api/m365/exchangeonline/api/Get-PSExoAdminApiObject.ps1', 'core/api/m365/microsoftteams/api/Get-MonkeyTeamsObject.ps1', 'core/api/m365/microsoftteams/helpers/service/Get-MonkeyTeamsServiceDiscovery.ps1', 'core/api/m365/microsoftteams/helpers/service/Test-TeamsConnection.ps1', 'core/api/m365/sharepointonline/csom/api/Invoke-MonkeyCSOMRequest.ps1', 'core/api/m365/sharepointonline/csom/api/Invoke-MonkeyCSOMDefaultRequest.ps1', 'core/api/m365/sharepointonline/csom/helpers/site/Get-MonkeyCSOMSite.ps1', 'core/api/m365/sharepointonline/csom/helpers/site/Get-MonkeyCSOMSiteProperty.ps1', 'core/api/m365/sharepointonline/utils/Test-IsUserSharepointAdministrator.ps1', 'core/api/m365/sharepointonline/utils/Test-SiteConnection.ps1', 'core/scan/Invoke-AzureScanner.ps1', 'core/scan/Invoke-EntraIDScanner.ps1', 'core/scan/Invoke-M365Scanner.ps1' ) $internal_files = $internal_files.ForEach({[System.IO.FileInfo]::new(("{0}/{1}" -f $PSScriptRoot,$_))}) $internal_files.ForEach({. $_.FullName}) $monkey = ("{0}/Invoke-Monkey365.ps1" -f $PSScriptRoot) . $monkey |