Cloudy with a chance of meatballs
Last updated
Last updated
Today in school, I learnt to code in HTML! View my brand new website! www.lncctf2023.tk
Use nslookup to get cloud domain name
Enumerate the blob service to find /private container
Get instructions.txt
from container, it contains azure creds
Login to az cli using the creds
Generate token and login using azure powershell
Enumerate the storage accounts and find flag under the "lncctf2023private" storage account
Visiting the site provided, we are given a static page with nothing else on the site.
From point 3, we guess that we will be working with the Azure cloud service.
One trick to find the cloud domain name is to use nslookup to look for other aliases of the site:
And of course, the cloud domain name is lncctf2023
. We can now enumerate the different services.
I searched up cloud enumeration tools and ended up using the cloud_enum.py tool as it works well enough.
From the enumeration, we can see that there is a /private
blob container containing a file called instructions.txt
.
We can grab the file by visiting the endpoint as it is open to the public.
We are given the Tenant ID
, Application ID
, and Client Secret
. Upon searching these up, we find that we can use azure cli
to login as the tenant-id using these values.
I wasn't sure how to login to Azure Powershell using these values, but I managed to login to azure cli (make sure to install azure cli if you do not have it)
I wanted to login to Azure Powershell as I am more familiar with the tools that Azure Powershell provides. So I grabbed a command from PayloadAllTheThings to generate a token and login into Azure Powershell. I also grabbed another command that allows me to login to Azure Powershell using that token.
Remember when enumerating the cloud domain name using cloud_enum.py, we found two storage accounts lncctf2023
and lncctf2023private
. Now, the private one seems suspicious, so we will look into that.
Since we are logged in as the tenant, we can try to list the storage accounts we have access to. This can be done in azure cli
by running the command az storage account list
. This is the result:
Using this result, we need to get the name of the storage account
and the resource group
, which in this case is lncctf2023private
and lncctf2023_cloudy_meatball_rg
respectively.
Switching back to Azure Powershell, we can use this portion of PayloadAllTheThings once again, to list and grab the blobs.