Introduction

This post will talk about my latest PowerShell module BrowserExtensionReporting, which helps with reporting on installed browser extensions for users. Many security frameworks define that browser extensions should be allowed listed only, but following that requirement without understanding what is already out there is quite challenging. Hopefully, this PowerShell module can help with that initial (and why not ongoing) reporting of your browser extension estate.

Installation

The module is published to PowerShell Gallery and has no dependencies so installation is simple

Install-Module -Name BrowserExtensionReporting

Parameters

This section will explore all the parameters of the only available function (Get-BrowserExtensionInfo)

Browser

If not specified, this parameter will default to all supported browsers currently (Chrome, Edge, and Firefox). Edge and Chrome have multiple entries for each channel (Beta, Canary, and Dev) because they store different channels in different folders, Firefox uses the same profile folder for all channels, and it controls at a profile level which profile is connected to each channel.

If a specific browser is required here are the possible values

  • Chrome
  • ChromeBeta
  • ChromeCanary
  • ChromeDev
  • Edge
  • EdgeBeta
  • EdgeCanary
  • EdgeDev
  • Firefox

Examples

Get-BrowserExtensionInfo -Browser Edge,Chrome
Get-BrowserExtensionInfo -Browser Edge,EdgeBeta,EdgeCanary,EdgeDev
Get-BrowserExtensionInfo -Browser Chrome,Firefox

User

If not specified, this parameter will default to currentuser, the user executing the function. Any other options must be run with a user that has administrative privileges (you cannot read other users’ files and folders without it).

The current options are:

Parameter Info
AllUsers Combination of LocalUsers, VirtualUsers and EntraUsers
LocalUsers All accounts under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList with a SID of S-1-5-21-*
VirtualUsers All accounts under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList with a SID of S-1-5-110-*
EntraUsers All accounts under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList with a SID of S-1-12-*
CurrentUser The current user running the function.
LoggedOnUser The active account logged on to a computer. This was created to support programmatically capturing users on Remote Sessions (such as Windows 365, AVD, and DevBox)
Other Once selected, this option will prompt for a username and it should match the profile name.

Note: Note this parameter does not support multiple entries

Examples

Get-BrowserExtensionInfo -User LoggedOnUser
Get-BrowserExtensionInfo -User EntraUsers
Get-BrowserExtensionInfo -User Other
Please provide user name: **user1**

ExposeLoginInfo

The main function has the option (turned off by default) to collect usernames (ProfileGaiaName) and e-mails (ProfileUserName) for profiles where the users signed in. For compliance reasons, harvesting such information might not always be a good idea. If the user has logged on with a personal account, their username and e-mail for that account will be exposed. To enable this function set the parameter to $true.

Examples

Exposing Login Info:

Hidding Login Info:

Other information

Note: Some properties might not show depending on which browser select. ExtensionInstalledByDefault and ProfileGaiaName are exclusive to Chromium browsers, so they will always show empty on Firefox.

Special Thanks

Once again, I’d like to thank Helge Klein for ceding many functions used on this module which are based on his script for uberAgent

Hope that was informative and thanks for reading.

Updated:

Comments