Az - CosmosDB Post Exploitation
Reading time: 6 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
CosmosDB Post Exploitation
SQL Database에 대한 자세한 정보는 다음을 확인하세요:
Microsoft.DocumentDB/databaseAccounts/read
&& Microsoft.DocumentDB/databaseAccounts/write
이 권한을 사용하면 Azure Cosmos DB 계정을 생성하거나 업데이트할 수 있습니다. 여기에는 계정 수준 구성 수정, 자동 장애 조치 활성화 또는 비활성화, 네트워크 접근 제어 관리, 백업 정책 설정 및 일관성 수준 조정이 포함됩니다. 이 권한을 가진 공격자는 보안 제어를 약화시키거나 가용성을 방해하거나 네트워크 규칙을 수정하여 데이터를 유출할 수 있습니다.
az cosmosdb update \
--name <account_name> \
--resource-group <resource_group_name> \
--public-network-access ENABLED
az cosmosdb update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--capabilities EnableMongoRoleBasedAccessControl
계정에서 관리되는 ID를 활성화할 수 있습니다:
az cosmosdb identity assign \
--name <cosmosdb_account_name> \
--resource-group <resource_group_name>
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write
이 권한을 사용하면 Azure Cosmos DB 계정의 SQL 데이터베이스 내에서 컨테이너(컬렉션)를 생성하거나 수정할 수 있습니다. 컨테이너는 데이터를 저장하는 데 사용되며, 이들에 대한 변경은 데이터베이스의 구조와 접근 패턴에 영향을 미칠 수 있습니다.
# Create
az cosmosdb sql container create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <database_name> \
--name <container_name> \
--partition-key-path <partition_key_path>
#Update
az cosmosdb sql container update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <database_name> \
--name <container_name> \
--ttl 3600
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read
이 권한을 사용하면 Azure Cosmos DB 계정 내에서 SQL 데이터베이스를 생성하거나 수정할 수 있습니다. 이를 통해 데이터베이스 구조를 관리하고 계정에 새로운 데이터베이스를 추가할 수 있습니다. 이 권한은 데이터베이스 생성을 가능하게 하지만, 부적절하거나 무단 사용은 불필요한 리소스 소비, 비용 증가 또는 운영 비효율성을 초래할 수 있습니다.
az cosmosdb sql database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action
이 권한을 사용하면 Azure Cosmos DB 데이터베이스 계정의 지역에 대한 장애 조치 우선 순위를 변경할 수 있습니다. 이 작업은 장애 조치 이벤트 중에 지역이 기본이 되는 순서를 결정합니다. 이 권한을 부적절하게 사용하면 데이터베이스의 고가용성이 중단되거나 의도하지 않은 운영 영향을 초래할 수 있습니다.
az cosmosdb failover-priority-change \
--name <database_account_name> \
--resource-group <resource_group_name> \
--failover-policies <region1=priority1> <region2=priority2>
Microsoft.DocumentDB/databaseAccounts/regenerateKey/action
이 권한을 사용하면 Azure Cosmos DB 계정의 기본 또는 보조 키를 재생성할 수 있습니다. 이는 일반적으로 이전 키를 교체하여 보안을 강화하는 데 사용되지만, 현재 키에 의존하는 서비스나 애플리케이션의 접근을 방해할 수 있습니다.
az cosmosdb keys regenerate \
--name <account_name> \
--resource-group <resource_group_name> \
--key-kind <primary|secondary>
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read
이 권한을 사용하면 Azure Cosmos DB 계정의 SQL 데이터베이스 컨테이너 내에서 트리거를 생성하거나 수정할 수 있습니다. 트리거는 작업에 대한 응답으로 서버 측 로직을 실행할 수 있게 해줍니다.
az cosmosdb sql trigger create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <trigger_name> \
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
--type Pre \
--operation All
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read
이 권한을 사용하면 Azure Cosmos DB 계정의 SQL 데이터베이스 컨테이너 내에서 저장 프로시저를 생성하거나 수정할 수 있습니다. Cosmos DB의 저장 프로시저는 데이터 처리 또는 데이터베이스 내에서 직접 작업을 수행하기 위한 로직을 캡슐화할 수 있는 서버 측 JavaScript 함수입니다.
az cosmosdb sql stored-procedure create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <stored_procedure_name> \
--body 'function sample() { return "Hello, Cosmos!"; }'
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read
이 권한을 사용하면 Azure Cosmos DB 계정의 SQL 데이터베이스 컨테이너 내에서 트리거를 생성하거나 수정할 수 있습니다. 트리거는 삽입, 업데이트 또는 삭제와 같은 작업에 대한 응답으로 서버 측 로직을 실행할 수 있게 해줍니다.
az cosmosdb sql trigger create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <trigger_name> \
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
--type Pre \
--operation All
Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read
&& Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write
이 권한을 사용하면 Azure Cosmos DB 계정 내의 MongoDB 데이터베이스에서 컬렉션을 생성하거나 수정할 수 있습니다. 컬렉션은 문서를 저장하고 데이터의 구조 및 파티셔닝을 정의하는 데 사용됩니다.
az cosmosdb mongodb collection create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <mongodb_database_name> \
--name <collection_name>
Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write
&& Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read
이 권한을 사용하면 Azure Cosmos DB 계정 내에서 새로운 MongoDB 데이터베이스를 생성할 수 있습니다. 이를 통해 컬렉션과 문서를 저장하고 관리하기 위한 새로운 데이터베이스를 프로비저닝할 수 있습니다.
az cosmosdb mongodb database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.