Azurite: Enumeration and reconnaissance activities in the Microsoft Azure Cloud
Azurite
Auditing Cloud services have become an essential task and significant effort is required to assess the security of the available resources.
Azurite was developed to assist penetration testers and auditors during the enumeration and reconnaissance activities within the Microsoft Azure public Cloud environment. It consists of two helper scripts: Azurite Explorer and Azurite Visualizer. The scripts are used to collect, passively, verbose information of the main components within a deployment to be reviewed offline, and visualize the association between the resources using an interactive representation. One of the main features of the visual representation is to provide a quick way to identify insecure Network Security Groups (NSGs) in a subnet or Virtual Machine configuration.
Installation
Requirement
- Download and install the Azure PowerShell Cmdlets (How to install and configure Azure PowerShell).
- Download and install Python 2.7.
- Download and install Firefox.
Install
- Clone the repository:
git clone https://github.com/mwrlabs/Azurite.git
- Get the submodule for netjsongraph.js:
git submodule init
git submodule update
Usage
Azurite Explorer implements functionality to retrieve the configuration of Azure-hosted deployments and export the output in structured JSON objects for offline review. Currently, Azurite Explorer supports only the resources deployed with the Azure Resource Manager deployment model.
Import the AzureRM module:
# PS> Import-Module AzureRM
Import Azurite Explorer module in PowerShell and retrieve the information for an Azure subscription.
# PS> Import-Module AzuriteExplorer.ps1
# PS> Review-AzureRmSubscription
Provide credentials for the Azure subscription under review. The user should belong to one of the following roles:
- Owner
- Contributor
- Reader
It is also required to know the ID of the target Azure subscription.
Azurite Explorer’s output will be saved in the following files:
- azure-vms_<subscription-id>_<user-email>.json
- azure-websites_<subscription-id>_<user-email>.json
- azure-sqlservers_<subscription-id>_<user-email>.json
- azure-key-vaults_<subscription-id>_<user-email>.json
- azure-subscription_<subscription-id>_<user-email>.json
Azurite Visualizer will assist assessor to get a better understanding of the Azure deployment by visualizing the output exported by Azurite Explorer. It also allows to interactively collect information for the resources and it highlights any weak Network Security Groups (NSGs) associated with Subnets and Virtual Machines.
Retrieve the exported file azure-subscription_<subscription-id>_<user-email>.json from Azurite Explorer and use it as input to AzuriteVisualiser.py.
# python AzuriteVisualizer.py azure-subscription_<subscription-id>_<user-email>.json
The aforementioned operation will generate the file azure-subscription-nodes.json which contains the formatted JSON object. Finally, open AzuriteVisualizer.html in Firefox to view the graph representation of the Azure subscription’s topology of the resources.
Example
Starting “Azurite Explorer”
Parsing the JSON file to generate the HTML
Taking a look at the output in Firefox
Image: kvaes
Copyright (c) 2016 MWR InfoSecurity
All rights reserved.
Source: https://github.com/mwrlabs/