diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png index ca4f55331..e70bceed6 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png index e70bceed6..d798d9edc 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1).png index d798d9edc..1ec78aebd 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1).png index 1ec78aebd..020fb69e2 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1).png index 020fb69e2..e3657baf3 100644 Binary files a/.gitbook/assets/image (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1).png b/.gitbook/assets/image (1) (1).png index e3657baf3..f95e8e4d5 100644 Binary files a/.gitbook/assets/image (1) (1).png and b/.gitbook/assets/image (1) (1).png differ diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png index f95e8e4d5..9dcb86f81 100644 Binary files a/.gitbook/assets/image (1).png and b/.gitbook/assets/image (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1).png index 7118b03d4..82f1650c7 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1).png index 82f1650c7..176e28e26 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1).png b/.gitbook/assets/image (2) (1) (1).png index 176e28e26..64296ef72 100644 Binary files a/.gitbook/assets/image (2) (1) (1).png and b/.gitbook/assets/image (2) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1).png b/.gitbook/assets/image (2) (1).png index 64296ef72..50038b5d5 100644 Binary files a/.gitbook/assets/image (2) (1).png and b/.gitbook/assets/image (2) (1).png differ diff --git a/.gitbook/assets/image (2).png b/.gitbook/assets/image (2).png index 50038b5d5..9dcb86f81 100644 Binary files a/.gitbook/assets/image (2).png and b/.gitbook/assets/image (2).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1).png index f406f4410..f2f640d8c 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1).png index f2f640d8c..17acb7d7e 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1).png b/.gitbook/assets/image (3) (1) (1).png index 17acb7d7e..11b8e0e8c 100644 Binary files a/.gitbook/assets/image (3) (1) (1).png and b/.gitbook/assets/image (3) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1).png b/.gitbook/assets/image (3) (1).png index 11b8e0e8c..dffdfc131 100644 Binary files a/.gitbook/assets/image (3) (1).png and b/.gitbook/assets/image (3) (1).png differ diff --git a/.gitbook/assets/image (3).png b/.gitbook/assets/image (3).png index dffdfc131..736d79e58 100644 Binary files a/.gitbook/assets/image (3).png and b/.gitbook/assets/image (3).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png index c4dc34691..ffd8adf04 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1).png index ffd8adf04..ee3722524 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1).png index ee3722524..92ceed745 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1).png b/.gitbook/assets/image (4) (1) (1).png index 92ceed745..4c7c93f13 100644 Binary files a/.gitbook/assets/image (4) (1) (1).png and b/.gitbook/assets/image (4) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1).png b/.gitbook/assets/image (4) (1).png index 4c7c93f13..fc56a6956 100644 Binary files a/.gitbook/assets/image (4) (1).png and b/.gitbook/assets/image (4) (1).png differ diff --git a/.gitbook/assets/image (4).png b/.gitbook/assets/image (4).png index fc56a6956..645f58c3e 100644 Binary files a/.gitbook/assets/image (4).png and b/.gitbook/assets/image (4).png differ diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png index 645f58c3e..967f978dc 100644 Binary files a/.gitbook/assets/image.png and b/.gitbook/assets/image.png differ diff --git a/SUMMARY.md b/SUMMARY.md index c5562d362..17a269ff2 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -838,7 +838,8 @@ * [Low-Power Wide Area Network](todo/radio-hacking/low-power-wide-area-network.md) * [Pentesting BLE - Bluetooth Low Energy](todo/radio-hacking/pentesting-ble-bluetooth-low-energy.md) * [Industrial Control Systems Hacking](todo/industrial-control-systems-hacking/README.md) -* [LLM Training - Data Preparation](todo/llm-training-data-preparation.md) +* [LLM Training - Data Preparation](todo/llm-training-data-preparation/README.md) + * [4. Pre-training](todo/llm-training-data-preparation/4.-pre-training.md) * [Burp Suite](todo/burp-suite.md) * [Other Web Tricks](todo/other-web-tricks.md) * [Interesting HTTP](todo/interesting-http.md) diff --git a/binary-exploitation/libc-heap/README.md b/binary-exploitation/libc-heap/README.md index 2e48b0355..7bc6b2d15 100644 --- a/binary-exploitation/libc-heap/README.md +++ b/binary-exploitation/libc-heap/README.md @@ -27,19 +27,19 @@ Nota che se la **memoria richiesta supera una soglia**, **`mmap`** verrà utiliz Nelle applicazioni **multithreaded**, il gestore dell'heap deve prevenire **race conditions** che potrebbero portare a crash. Inizialmente, questo veniva fatto utilizzando un **mutex globale** per garantire che solo un thread potesse accedere all'heap alla volta, ma questo causava **problemi di prestazioni** a causa del collo di bottiglia indotto dal mutex. -Per affrontare questo problema, l'allocatore di heap ptmalloc2 ha introdotto "aree", dove **ogni arena** funge da **heap separato** con le proprie **strutture** di **dati** e **mutex**, consentendo a più thread di eseguire operazioni sull'heap senza interferire tra loro, purché utilizzino aree diverse. +Per affrontare questo problema, l'allocatore di heap ptmalloc2 ha introdotto "arenas", dove **ogni arena** funge da **heap separato** con le proprie **strutture** di dati e **mutex**, consentendo a più thread di eseguire operazioni sull'heap senza interferire tra loro, purché utilizzino arene diverse. -L'arena "principale" predefinita gestisce le operazioni sull'heap per applicazioni a thread singolo. Quando vengono aggiunti **nuovi thread**, il gestore dell'heap assegna loro **aree secondarie** per ridurre la contesa. Prima tenta di collegare ciascun nuovo thread a un'arena non utilizzata, creando nuove aree se necessario, fino a un limite di 2 volte il numero di core CPU per sistemi a 32 bit e 8 volte per sistemi a 64 bit. Una volta raggiunto il limite, **i thread devono condividere le aree**, portando a potenziali conflitti. +L'arena "principale" predefinita gestisce le operazioni sull'heap per applicazioni a thread singolo. Quando vengono aggiunti **nuovi thread**, il gestore dell'heap assegna loro **arene secondarie** per ridurre la contesa. Prima tenta di collegare ciascun nuovo thread a un'arena non utilizzata, creando nuove arene se necessario, fino a un limite di 2 volte il numero di core CPU per sistemi a 32 bit e 8 volte per sistemi a 64 bit. Una volta raggiunto il limite, **i thread devono condividere le arene**, portando a potenziali conflitti. -A differenza dell'arena principale, che si espande utilizzando la chiamata di sistema `brk`, le aree secondarie creano "subheaps" utilizzando `mmap` e `mprotect` per simulare il comportamento dell'heap, consentendo flessibilità nella gestione della memoria per operazioni multithreaded. +A differenza dell'arena principale, che si espande utilizzando la chiamata di sistema `brk`, le arene secondarie creano "subheaps" utilizzando `mmap` e `mprotect` per simulare il comportamento dell'heap, consentendo flessibilità nella gestione della memoria per operazioni multithreaded. ### Subheaps -I subheaps servono come riserve di memoria per le aree secondarie nelle applicazioni multithreaded, consentendo loro di crescere e gestire le proprie regioni di heap separatamente dall'heap principale. Ecco come i subheaps differiscono dall'heap iniziale e come operano: +I subheaps servono come riserve di memoria per le arene secondarie nelle applicazioni multithreaded, consentendo loro di crescere e gestire le proprie regioni di heap separatamente dall'heap principale. Ecco come i subheaps differiscono dall'heap iniziale e come operano: 1. **Heap Iniziale vs. Subheaps**: * L'heap iniziale si trova direttamente dopo il binario del programma in memoria e si espande utilizzando la chiamata di sistema `sbrk`. -* I subheaps, utilizzati dalle aree secondarie, vengono creati tramite `mmap`, una chiamata di sistema che mappa una regione di memoria specificata. +* I subheaps, utilizzati dalle arene secondarie, vengono creati tramite `mmap`, una chiamata di sistema che mappa una regione di memoria specificata. 2. **Riservazione di Memoria con `mmap`**: * Quando il gestore dell'heap crea un subheap, riserva un grande blocco di memoria tramite `mmap`. Questa riservazione non alloca immediatamente memoria; designa semplicemente una regione che altri processi di sistema o allocazioni non dovrebbero utilizzare. * Per impostazione predefinita, la dimensione riservata per un subheap è di 1 MB per processi a 32 bit e 64 MB per processi a 64 bit. @@ -351,7 +351,7 @@ people extending or adapting this malloc. #define clear_inuse_bit_at_offset(p, s) \ (((mchunkptr) (((char *) (p)) + (s)))->mchunk_size &= ~(PREV_INUSE)) ``` -* Imposta intestazione e piè di pagina (quando i numeri dei chunk sono in uso) +* Imposta l'intestazione e il piè di pagina (quando i numeri dei chunk sono in uso) ```c /* Set size at head, without disturbing its use bit */ #define set_head_size(p, s) ((p)->mchunk_size = (((p)->mchunk_size & SIZE_BITS) | (s))) @@ -362,7 +362,7 @@ people extending or adapting this malloc. /* Set size at footer (only when chunk is not in use) */ #define set_foot(p, s) (((mchunkptr) ((char *) (p) + (s)))->mchunk_prev_size = (s)) ``` -* Ottieni la dimensione dei dati realmente utilizzabili all'interno del chunk +* Ottieni la dimensione dei dati utilizzabili reali all'interno del chunk ```c #pragma GCC poison mchunk_size #pragma GCC poison mchunk_prev_size @@ -408,7 +408,7 @@ ptr = malloc(0x10); strcpy(ptr, "panda"); } ``` -Imposta un breakpoint alla fine della funzione principale e scopriamo dove è stata memorizzata l'informazione: +Imposta un breakpoint alla fine della funzione principale e scopriamo dove sono state memorizzate le informazioni:
@@ -470,15 +470,15 @@ return 0; Debuggando l'esempio precedente è possibile vedere come all'inizio ci sia solo 1 arena: -
+
Poi, dopo aver chiamato il primo thread, quello che chiama malloc, viene creata una nuova arena: -
+
e al suo interno si possono trovare alcuni chunk: -
+
## Bins & Memory Allocations/Frees diff --git a/binary-exploitation/libc-heap/heap-memory-functions/unlink.md b/binary-exploitation/libc-heap/heap-memory-functions/unlink.md index 9ebf6323a..45fc2accf 100644 --- a/binary-exploitation/libc-heap/heap-memory-functions/unlink.md +++ b/binary-exploitation/libc-heap/heap-memory-functions/unlink.md @@ -10,7 +10,7 @@ Impara e pratica GCP Hacking: 
 
 * Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
 * **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
+* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
 
 </details>
 {% endhint %}
@@ -67,7 +67,7 @@ p->bk_nextsize->fd_nextsize = p->fd_nextsize;
 
 Controlla questa ottima spiegazione grafica del processo unlink:
 
-<figure><img src=

https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/implementation/figure/unlink_smallbin_intro.png

+

https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/implementation/figure/unlink_smallbin_intro.png

### Controlli di Sicurezza @@ -77,7 +77,7 @@ Controlla questa ottima spiegazione grafica del processo unlink: ### Leak -Un chunk non collegato non pulisce gli indirizzi allocati, quindi avendo accesso a rad, è possibile leak alcuni indirizzi interessanti: +Un chunk non collegato non pulisce gli indirizzi allocati, quindi avendo accesso per leggerlo, è possibile leak alcuni indirizzi interessanti: Libc Leaks: diff --git a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md index 4937fc8a8..dd6bdfd19 100644 --- a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md +++ b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md @@ -17,7 +17,7 @@ Impara e pratica Hacking GCP:

https://www.scs.stanford.edu/brop/bittau-brop.pdf

+

https://www.scs.stanford.edu/brop/bittau-brop.pdf

Questi sarebbero i gadget: @@ -81,7 +81,7 @@ La funzione **`strcmp`** imposta il registro **`rdx`** sulla lunghezza della str * strcmp(\, \) -> crash * strcmp(\, \) -> crash * strcmp(\, \) -> crash -* strcmp(\, \) -> nessun crash +* strcmp(\, \) -> no crash È possibile controllare questo chiamando ciascuna voce della tabella PLT o utilizzando il **PLT slow path** che consiste fondamentalmente nel **chiamare un'entrata nella tabella PLT + 0xb** (che chiama **`dlresolve`**) seguita nello stack dal **numero di entrata che si desidera sondare** (partendo da zero) per esaminare tutte le voci PLT dalla prima: @@ -89,7 +89,7 @@ La funzione **`strcmp`** imposta il registro **`rdx`** sulla lunghezza della str * `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> Andrà in crash * strcmp(\, \) -> crash * `b'A' * offset + canary + rbp + (BROP + 0x9) + p64(0x300) + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -* strcmp(\, \) -> nessun crash +* strcmp(\, \) -> no crash * `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` Ricorda che: @@ -106,7 +106,7 @@ Nota che di solito `rdx` avrà già un valore maggiore di 0, quindi questo passa ### 8. Trovare Write o equivalente -Infine, è necessario un gadget che esfiltri i dati per esfiltrare il binario. E in questo momento è possibile **controllare 2 argomenti e impostare `rdx` maggiore di 0.** +Infine, è necessario un gadget che esfiltri i dati per esfiltrare il binario. E a questo punto è possibile **controllare 2 argomenti e impostare `rdx` maggiore di 0.** Ci sono 3 funzioni comuni che potrebbero essere abusate per questo: diff --git a/binary-exploitation/rop-return-oriented-programing/ret2csu.md b/binary-exploitation/rop-return-oriented-programing/ret2csu.md index f8b9a74fb..ab9f29510 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2csu.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2csu.md @@ -80,7 +80,7 @@ gef➤ search-pattern 0x400560 Un altro modo per controllare **`rdi`** e **`rsi`** dal gadget ret2csu è accedendo a specifici offset: -

https://www.scs.stanford.edu/brop/bittau-brop.pdf

+

https://www.scs.stanford.edu/brop/bittau-brop.pdf

Controlla questa pagina per ulteriori informazioni: diff --git a/generic-methodologies-and-resources/external-recon-methodology/README.md b/generic-methodologies-and-resources/external-recon-methodology/README.md index 4a1d50899..c24878e54 100644 --- a/generic-methodologies-and-resources/external-recon-methodology/README.md +++ b/generic-methodologies-and-resources/external-recon-methodology/README.md @@ -15,9 +15,9 @@ Learn & practice GCP Hacking: {% endhint %} -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_è richiesta la conoscenza fluente della lingua polacca, scritta e parlata_). +Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_è richiesta una buona conoscenza del polacco scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} @@ -25,12 +25,12 @@ Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - ** > Ti è stato detto che tutto ciò che appartiene a una certa azienda è all'interno dell'ambito, e vuoi capire cosa possiede effettivamente questa azienda. -L'obiettivo di questa fase è ottenere tutte le **aziende possedute dalla società principale** e poi tutti i **beni** di queste aziende. Per farlo, procederemo a: +L'obiettivo di questa fase è ottenere tutte le **aziende possedute dalla società principale** e poi tutti gli **asset** di queste aziende. Per farlo, procederemo a: 1. Trovare le acquisizioni della società principale, questo ci darà le aziende all'interno dell'ambito. 2. Trovare l'ASN (se presente) di ciascuna azienda, questo ci darà gli intervalli IP posseduti da ciascuna azienda. 3. Utilizzare ricerche whois inverse per cercare altre voci (nomi delle organizzazioni, domini...) correlate alla prima (questo può essere fatto ricorsivamente). -4. Utilizzare altre tecniche come i filtri shodan `org` e `ssl` per cercare altri beni (il trucco `ssl` può essere fatto ricorsivamente). +4. Utilizzare altre tecniche come i filtri shodan `org` e `ssl` per cercare altri asset (il trucco `ssl` può essere fatto ricorsivamente). ### **Acquisizioni** @@ -38,14 +38,14 @@ Prima di tutto, dobbiamo sapere quali **altre aziende sono possedute dalla socie Un'opzione è visitare [https://www.crunchbase.com/](https://www.crunchbase.com), **cercare** la **società principale** e **cliccare** su "**acquisizioni**". Lì vedrai altre aziende acquisite dalla principale.\ Un'altra opzione è visitare la pagina **Wikipedia** della società principale e cercare le **acquisizioni**. -> Ok, a questo punto dovresti conoscere tutte le aziende all'interno dell'ambito. Scopriamo come trovare i loro beni. +> Ok, a questo punto dovresti conoscere tutte le aziende all'interno dell'ambito. Scopriamo come trovare i loro asset. -### **ASN** +### **ASNs** Un numero di sistema autonomo (**ASN**) è un **numero unico** assegnato a un **sistema autonomo** (AS) dall'**Internet Assigned Numbers Authority (IANA)**.\ -Un **AS** consiste in **blocchi** di **indirizzi IP** che hanno una politica chiaramente definita per l'accesso a reti esterne e sono amministrati da un'unica organizzazione, ma possono essere composti da più operatori. +Un **AS** è composto da **blocchi** di **indirizzi IP** che hanno una politica chiaramente definita per l'accesso a reti esterne e sono amministrati da un'unica organizzazione, ma possono essere composti da più operatori. -È interessante scoprire se la **società ha assegnato un ASN** per trovare i suoi **intervalli IP.** Sarà interessante eseguire un **test di vulnerabilità** contro tutti gli **host** all'interno dell'**ambito** e **cercare domini** all'interno di questi IP.\ +È interessante scoprire se la **società ha assegnato qualche ASN** per trovare i suoi **intervalli IP.** Sarà interessante eseguire un **test di vulnerabilità** contro tutti gli **host** all'interno dell'**ambito** e **cercare domini** all'interno di questi IP.\ Puoi **cercare** per nome dell'azienda, per **IP** o per **dominio** in [**https://bgp.he.net/**](https://bgp.he.net)**.**\ **A seconda della regione dell'azienda, questi link potrebbero essere utili per raccogliere ulteriori dati:** [**AFRINIC**](https://www.afrinic.net) **(Africa),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Nord America),** [**APNIC**](https://www.apnic.net) **(Asia),** [**LACNIC**](https://www.lacnic.net) **(America Latina),** [**RIPE NCC**](https://www.ripe.net) **(Europa). Comunque, probabilmente tutte le** informazioni utili **(intervalli IP e Whois)** appaiono già nel primo link. ```bash @@ -85,7 +85,7 @@ Inoltre, potresti lanciare alcune [**scansioni delle porte**](../pentesting-netw _Please, nota che nelle seguenti tecniche proposte puoi anche trovare sottodomini e che queste informazioni non dovrebbero essere sottovalutate._ -Prima di tutto dovresti cercare il(i) **dominio(i) principale(i)** di ciascuna azienda. Ad esempio, per _Tesla Inc._ sarà _tesla.com_. +Prima di tutto dovresti cercare il(i) **dominio(i) principale(i)** di ogni azienda. Ad esempio, per _Tesla Inc._ sarà _tesla.com_. ### **Reverse DNS** @@ -141,7 +141,7 @@ python3 favihash.py -f https://target/favicon.ico -t targets.txt -s In parole semplici, favihash ci permetterà di scoprire domini che hanno lo stesso hash dell'icona favicon del nostro obiettivo. -Inoltre, puoi anche cercare tecnologie utilizzando l'hash della favicon come spiegato in [**questo post del blog**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Ciò significa che se conosci il **hash della favicon di una versione vulnerabile di una tecnologia web** puoi cercare in shodan e **trovare più luoghi vulnerabili**: +Inoltre, puoi anche cercare tecnologie utilizzando l'hash della favicon come spiegato in [**questo post del blog**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Ciò significa che se conosci l'**hash della favicon di una versione vulnerabile di una tecnologia web** puoi cercare in shodan e **trovare più luoghi vulnerabili**: ```bash shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}' ``` @@ -194,13 +194,13 @@ Potresti accedere al **certificato TLS** della pagina web principale, ottenere i **Assetfinder** -[**Assetfinder** ](https://github.com/tomnomnom/assetfinder)è uno strumento che cerca **domini correlati** con un dominio principale e **sottodomini** di essi, davvero sorprendente. +[**Assetfinder** ](https://github.com/tomnomnom/assetfinder)è uno strumento che cerca **domini correlati** a un dominio principale e **sottodomini** di essi, davvero sorprendente. ### **Looking for vulnerabilities** Controlla per qualche [domain takeover](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Forse qualche azienda sta **utilizzando un dominio** ma ha **perso la proprietà**. Registralo (se abbastanza economico) e fai sapere all'azienda. -Se trovi qualche **dominio con un IP diverso** da quelli già trovati nella scoperta degli asset, dovresti eseguire una **scansione di vulnerabilità di base** (usando Nessus o OpenVAS) e qualche [**port scan**](../pentesting-network/#discovering-hosts-from-the-outside) con **nmap/masscan/shodan**. A seconda dei servizi in esecuzione puoi trovare in **questo libro alcuni trucchi per "attaccarli"**.\ +Se trovi qualche **dominio con un IP diverso** da quelli già trovati nella scoperta degli asset, dovresti eseguire una **scansione di vulnerabilità di base** (usando Nessus o OpenVAS) e qualche [**port scan**](../pentesting-network/#discovering-hosts-from-the-outside) con **nmap/masscan/shodan**. A seconda dei servizi in esecuzione, puoi trovare in **questo libro alcuni trucchi per "attaccarli"**.\ _Nota che a volte il dominio è ospitato all'interno di un IP che non è controllato dal cliente, quindi non è nel campo, fai attenzione._ \ @@ -226,7 +226,7 @@ dnsrecon -a -d tesla.com ``` ### **OSINT** -Il modo più veloce per ottenere molti subdomini è cercare in fonti esterne. Gli **strumenti** più utilizzati sono i seguenti (per risultati migliori configura le chiavi API): +Il modo più veloce per ottenere molti sottodomini è cercare in fonti esterne. Gli **strumenti** più utilizzati sono i seguenti (per risultati migliori configura le chiavi API): * [**BBOT**](https://github.com/blacklanternsecurity/bbot) ```bash @@ -468,27 +468,27 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http: ``` ### **Buckets Brute Force** -Mentre cerchi **sottodomini**, fai attenzione a vedere se sta **puntando** a qualche tipo di **bucket**, e in tal caso [**controlla i permessi**](../../network-services-pentesting/pentesting-web/buckets/)**.**\ -Inoltre, poiché a questo punto conoscerai tutti i domini all'interno dell'ambito, prova a [**forzare i nomi dei bucket possibili e controlla i permessi**](../../network-services-pentesting/pentesting-web/buckets/). +Mentre cerchi **subdomini**, fai attenzione a vedere se sta **puntando** a qualche tipo di **bucket**, e in tal caso [**controlla i permessi**](../../network-services-pentesting/pentesting-web/buckets/)**.**\ +Inoltre, poiché a questo punto conoscerai tutti i domini all'interno dell'ambito, prova a [**brute force i possibili nomi dei bucket e controlla i permessi**](../../network-services-pentesting/pentesting-web/buckets/). ### **Monitorizzazione** -Puoi **monitorare** se vengono creati **nuovi sottodomini** di un dominio monitorando i **Certificate Transparency** Logs [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py). +Puoi **monitorare** se vengono creati **nuovi subdomini** di un dominio monitorando i **Certificate Transparency** Logs [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py). ### **Cercare vulnerabilità** Controlla possibili [**subdomain takeovers**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\ -Se il **sottodominio** punta a qualche **S3 bucket**, [**controlla i permessi**](../../network-services-pentesting/pentesting-web/buckets/). +Se il **subdominio** sta puntando a qualche **S3 bucket**, [**controlla i permessi**](../../network-services-pentesting/pentesting-web/buckets/). -Se trovi un **sottodominio con un IP diverso** da quelli già trovati nella scoperta delle risorse, dovresti eseguire una **scansione di vulnerabilità di base** (utilizzando Nessus o OpenVAS) e una [**scansione delle porte**](../pentesting-network/#discovering-hosts-from-the-outside) con **nmap/masscan/shodan**. A seconda dei servizi in esecuzione, puoi trovare in **questo libro alcuni trucchi per "attaccarli"**.\ -_Tieni presente che a volte il sottodominio è ospitato all'interno di un IP che non è controllato dal cliente, quindi non è nell'ambito, fai attenzione._ +Se trovi un **subdominio con un IP diverso** da quelli già trovati nella scoperta delle risorse, dovresti eseguire una **scansione di vulnerabilità di base** (utilizzando Nessus o OpenVAS) e una [**scansione delle porte**](../pentesting-network/#discovering-hosts-from-the-outside) con **nmap/masscan/shodan**. A seconda dei servizi in esecuzione, puoi trovare in **questo libro alcuni trucchi per "attaccarli"**.\ +_Tieni presente che a volte il subdominio è ospitato all'interno di un IP che non è controllato dal cliente, quindi non è nell'ambito, fai attenzione._ ## IPs -Nei passaggi iniziali potresti aver **trovato alcuni intervalli di IP, domini e sottodomini**.\ -È tempo di **raccogliere tutti gli IP da quegli intervalli** e per i **domini/sottodomini (query DNS).** +Nei passaggi iniziali potresti aver **trovato alcuni intervalli di IP, domini e subdomini**.\ +È tempo di **raccogliere tutti gli IP da quegli intervalli** e per i **domini/subdomini (query DNS).** -Utilizzando i servizi delle seguenti **api gratuite**, puoi anche trovare **IP precedenti utilizzati da domini e sottodomini**. Questi IP potrebbero ancora essere di proprietà del cliente (e potrebbero permetterti di trovare [**CloudFlare bypasses**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)) +Utilizzando i servizi delle seguenti **api gratuite**, puoi anche trovare **IP precedenti utilizzati da domini e subdomini**. Questi IP potrebbero ancora essere di proprietà del cliente (e potrebbero permetterti di trovare [**CloudFlare bypasses**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)) * [**https://securitytrails.com/**](https://securitytrails.com/) @@ -502,7 +502,7 @@ Puoi anche controllare i domini che puntano a un indirizzo IP specifico utilizza ## Caccia ai server web -> Abbiamo trovato tutte le aziende e i loro asset e conosciamo gli intervalli di IP, domini e sottodomini all'interno dell'ambito. È tempo di cercare server web. +> Abbiamo trovato tutte le aziende e i loro asset e conosciamo gli intervalli di IP, domini e subdomini all'interno dell'ambito. È tempo di cercare server web. Nei passaggi precedenti probabilmente hai già eseguito alcune **ricerche sugli IP e domini scoperti**, quindi potresti aver **già trovato tutti i possibili server web**. Tuttavia, se non lo hai fatto, ora vedremo alcuni **trucchi rapidi per cercare server web** all'interno dell'ambito. @@ -516,7 +516,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ``` ### **Screenshots** -Ora che hai scoperto **tutti i server web** presenti nell'ambito (tra gli **IP** dell'azienda e tutti i **domini** e **sottodomini**) probabilmente **non sai da dove cominciare**. Quindi, rendiamolo semplice e iniziamo semplicemente a fare screenshot di tutti loro. Basta **dare un'occhiata** alla **pagina principale** per trovare endpoint **strani** che sono più **propensi** ad essere **vulnerabili**. +Ora che hai scoperto **tutti i server web** presenti nell'ambito (tra gli **IP** dell'azienda e tutti i **domini** e **sottodomini**) probabilmente **non sai da dove cominciare**. Quindi, rendiamolo semplice e iniziamo semplicemente a fare screenshot di tutti loro. Basta **dare un'occhiata** alla **pagina principale** per trovare **endpoint strani** che sono più **propensi** ad essere **vulnerabili**. Per eseguire l'idea proposta puoi usare [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/), [**Gowitness**](https://github.com/sensepost/gowitness) o [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**.** @@ -524,7 +524,7 @@ Inoltre, potresti poi usare [**eyeballer**](https://github.com/BishopFox/eyeball ## Public Cloud Assets -Per trovare potenziali asset cloud appartenenti a un'azienda dovresti **iniziare con un elenco di parole chiave che identificano quell'azienda**. Ad esempio, per una crypto per un'azienda di criptovalute potresti usare parole come: `"crypto", "wallet", "dao", "", <"subdomain_names">`. +Per trovare potenziali asset cloud appartenenti a un'azienda dovresti **iniziare con un elenco di parole chiave che identificano quell'azienda**. Ad esempio, per una crypto di un'azienda crypto potresti usare parole come: `"crypto", "wallet", "dao", "", <"subdomain_names">`. Avrai anche bisogno di wordlist di **parole comuni usate nei bucket**: @@ -568,11 +568,11 @@ Se trovi credenziali **valide trapelate**, questa è una vittoria molto facile. ## Secrets Leaks -Le perdite di credenziali sono correlate agli attacchi alle aziende in cui **informazioni sensibili sono state trapelate e vendute**. Tuttavia, le aziende potrebbero essere colpite da **altre perdite** le cui informazioni non sono in quelle banche dati: +Le perdite di credenziali sono correlate agli attacchi alle aziende dove **informazioni sensibili sono state trapelate e vendute**. Tuttavia, le aziende potrebbero essere colpite da **altre perdite** le cui informazioni non sono in quelle banche dati: ### Github Leaks -Credenziali e API potrebbero essere trapelate nei **repository pubblici** dell'**azienda** o degli **utenti** che lavorano per quell'azienda su github.\ +Credenziali e API potrebbero essere trapelate nei **repository pubblici** dell'**azienda** o degli **utenti** che lavorano per quell'azienda github.\ Puoi usare lo **strumento** [**Leakos**](https://github.com/carlospolop/Leakos) per **scaricare** tutti i **repo pubblici** di un'**organizzazione** e dei suoi **sviluppatori** e eseguire [**gitleaks**](https://github.com/zricethezav/gitleaks) su di essi automaticamente. **Leakos** può anche essere usato per eseguire **gitleaks** contro tutto il **testo** fornito **URL passati** ad esso poiché a volte **le pagine web contengono anche segreti**. @@ -622,7 +622,7 @@ Voglio anche fare una menzione speciale alla sezione [**Web Automated Scanners o ## Recapitulation -> Congratulazioni! A questo punto hai già eseguito **tutta l'enumerazione di base**. Sì, è di base perché può essere eseguita molta più enumerazione (vedremo altri trucchi più avanti). +> Congratulazioni! A questo punto hai già eseguito **tutta l'enumerazione di base**. Sì, è di base perché può essere fatta molta più enumerazione (vedremo altri trucchi più avanti). Quindi hai già: @@ -649,9 +649,9 @@ Ci sono diversi strumenti là fuori che eseguiranno parte delle azioni proposte * Tutti i corsi gratuiti di [**@Jhaddix**](https://twitter.com/Jhaddix) come [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI) -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta fluente di polacco scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} diff --git a/generic-methodologies-and-resources/pentesting-methodology.md b/generic-methodologies-and-resources/pentesting-methodology.md index bc91e6bc1..23bea5d46 100644 --- a/generic-methodologies-and-resources/pentesting-methodology.md +++ b/generic-methodologies-and-resources/pentesting-methodology.md @@ -15,9 +15,9 @@ Impara e pratica GCP Hacking: {% endhint %} -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'impossibile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} @@ -33,10 +33,10 @@ Hai **accesso fisico** alla macchina che vuoi attaccare? Dovresti leggere alcuni ### 1 - [Scoprire host all'interno della rete](pentesting-network/#discovering-hosts)/ [Scoprire le risorse dell'azienda](external-recon-methodology/) -**A seconda** se il **test** che stai eseguendo è un **test interno o esterno**, potresti essere interessato a trovare **host all'interno della rete aziendale** (test interno) o **trovare risorse dell'azienda su Internet** (test esterno). +**A seconda** se il **test** che stai eseguendo è un **test interno o esterno**, potresti essere interessato a trovare **host all'interno della rete aziendale** (test interno) o **trovare risorse dell'azienda su internet** (test esterno). {% hint style="info" %} -Nota che se stai eseguendo un test esterno, una volta che riesci a ottenere accesso alla rete interna dell'azienda, dovresti riavviare questa guida. +Nota che se stai eseguendo un test esterno, una volta che riesci a ottenere accesso alla rete interna dell'azienda dovresti riavviare questa guida. {% endhint %} ### **2-** [**Divertirsi con la rete**](pentesting-network/) **(Interno)** @@ -50,7 +50,7 @@ La prima cosa da fare quando **cerchi vulnerabilità in un host** è sapere qual ### **4-** [Cercare exploit di versioni di servizio](search-exploits.md) -Una volta che sai quali servizi sono in esecuzione, e forse la loro versione, devi **cercare vulnerabilità note**. Forse sei fortunato e c'è un exploit che ti dà una shell... +Una volta che sai quali servizi sono in esecuzione, e forse la loro versione, devi **cercare vulnerabilità note**. Forse hai fortuna e c'è un exploit che ti dà una shell... ### **5-** Servizi di Pentesting @@ -58,10 +58,10 @@ Se non c'è alcun exploit interessante per alcun servizio in esecuzione, dovrest **All'interno di questo libro troverai una guida per pentestare i servizi più comuni** (e altri che non sono così comuni)**. Per favore, cerca nell'indice a sinistra la** _**SEZIONE PENTESTING**_ **(i servizi sono ordinati per le loro porte predefinite).** -**Voglio fare una menzione speciale della** [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **parte (poiché è la più estesa).**\ +**Voglio fare una menzione speciale della** [**parte Pentesting Web**](../network-services-pentesting/pentesting-web/) **(poiché è la più estesa).**\ Inoltre, una piccola guida su come [**trovare vulnerabilità note nel software**](search-exploits.md) può essere trovata qui. -**Se il tuo servizio non è nell'indice, cerca su Google** altri tutorial e **fammi sapere se vuoi che lo aggiunga.** Se non **riesci a trovare nulla** su Google, esegui il tuo **blind pentesting**, potresti iniziare **collegandoti al servizio, fuzzandolo e leggendo le risposte** (se ce ne sono). +**Se il tuo servizio non è nell'indice, cerca su Google** altri tutorial e **fammi sapere se vuoi che lo aggiunga.** Se non **riesci a trovare nulla** su Google, esegui il tuo **blind pentesting**, potresti iniziare **collegandoti al servizio, fuzzandolo e leggendo le risposte** (se ci sono). #### 5.1 Strumenti Automatici @@ -77,11 +77,11 @@ Se a questo punto non hai trovato alcuna vulnerabilità interessante, **potresti ### **7-** [**Ottenere Shell**](reverse-shells/) -In qualche modo dovresti aver trovato **un modo per eseguire codice** nella vittima. Quindi, [un elenco di possibili strumenti all'interno del sistema che puoi usare per ottenere una reverse shell sarebbe molto utile](reverse-shells/). +In qualche modo dovresti aver trovato **un modo per eseguire codice** nella vittima. Quindi, [una lista di possibili strumenti all'interno del sistema che puoi usare per ottenere una reverse shell sarebbe molto utile](reverse-shells/). Specialmente in Windows potresti aver bisogno di aiuto per **evitare gli antivirus**: [**Controlla questa pagina**](../windows-hardening/av-bypass.md)**.**\\ -### 8- Interno +### 8- Dentro Se hai problemi con la shell, puoi trovare qui una piccola **compilazione dei comandi più utili** per i pentester: @@ -116,20 +116,20 @@ Qui puoi trovare una [**metodologia che spiega le azioni più comuni per enumera #### **11**.1 - Saccheggio -Controlla se puoi trovare più **password** all'interno dell'host o se hai **accesso ad altre macchine** con i **privilegi** del tuo **utente**.\ +Controlla se puoi trovare altre **password** all'interno dell'host o se hai **accesso ad altre macchine** con i **privilegi** del tuo **utente**.\ Trova qui diversi modi per [**dumpare password in Windows**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md). #### 11.2 - Persistenza **Usa 2 o 3 diversi tipi di meccanismi di persistenza in modo da non dover sfruttare di nuovo il sistema.**\ -**Qui puoi trovare alcuni** [**trucchi di persistenza su active directory**](../windows-hardening/active-directory-methodology/#persistence)**.** +**Qui puoi trovare alcuni** [**trucchi di persistenza su Active Directory**](../windows-hardening/active-directory-methodology/#persistence)**.** -TODO: Completare il post sulla persistenza in Windows e Linux +TODO: Completare la persistenza Post in Windows e Linux ### 12 - Pivoting Con le **credenziali raccolte** potresti avere accesso ad altre macchine, o forse devi **scoprire e scansionare nuovi host** (inizia di nuovo la Metodologia di Pentesting) all'interno di nuove reti a cui è connessa la tua vittima.\ -In questo caso, il tunneling potrebbe essere necessario. Qui puoi trovare [**un post che parla di tunneling**](tunneling-and-port-forwarding.md).\ +In questo caso il tunneling potrebbe essere necessario. Qui puoi trovare [**un post che parla di tunneling**](tunneling-and-port-forwarding.md).\ Dovresti anche controllare il post sulla [Metodologia di pentesting di Active Directory](../windows-hardening/active-directory-methodology/). Lì troverai trucchi interessanti per muoverti lateralmente, escalare privilegi e dumpare credenziali.\ Controlla anche la pagina su [**NTLM**](../windows-hardening/ntlm/), potrebbe essere molto utile per pivotare in ambienti Windows. @@ -151,9 +151,9 @@ Controlla anche la pagina su [**NTLM**](../windows-hardening/ntlm/), potrebbe es * [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md) * [**Padding Oracle**](../crypto-and-stego/padding-oracle-priv.md) -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'impossibile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} diff --git a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md index a920f28f6..1af951b3c 100644 --- a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md +++ b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md @@ -15,9 +15,9 @@ Impara e pratica Hacking GCP: 
 </details>
 {% endhint %}
 
-<figure><img src=
+
-Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). +Se sei interessato a una **carriera di hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} @@ -53,7 +53,7 @@ Da una prospettiva di red team, questo rende **complicato scaricare ed eseguire* ## Bypass più semplice: Script -Nota che ho menzionato i binari, puoi **eseguire qualsiasi script** purché l'interprete sia all'interno della macchina, come uno **script shell** se `sh` è presente o uno **script python** se `python` è installato. +Nota che ho menzionato i binari, puoi **eseguire qualsiasi script** purché l'interprete sia presente nella macchina, come uno **script shell** se `sh` è presente o uno **script python** se `python` è installato. Tuttavia, questo non è sufficiente per eseguire la tua backdoor binaria o altri strumenti binari che potresti aver bisogno di eseguire. @@ -68,9 +68,9 @@ Se hai alcuni potenti motori di script all'interno della macchina, come **Python Per questo puoi facilmente usare il progetto [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec). Puoi passargli un binario e genererà uno script nel linguaggio indicato con il **binario compresso e codificato in b64** con le istruzioni per **decodificarlo e decomprimerlo** in un **fd** creato chiamando la syscall `create_memfd` e una chiamata alla syscall **exec** per eseguirlo. {% hint style="warning" %} -Questo non funziona in altri linguaggi di scripting come PHP o Node perché non hanno alcun **modo predefinito per chiamare syscall raw** da uno script, quindi non è possibile chiamare `create_memfd` per creare il **fd di memoria** per memorizzare il binario. +Questo non funziona in altri linguaggi di scripting come PHP o Node perché non hanno alcun **modo predefinito per chiamare syscall raw** da uno script, quindi non è possibile chiamare `create_memfd` per creare il **memory fd** per memorizzare il binario. -Inoltre, creare un **fd regolare** con un file in `/dev/shm` non funzionerà, poiché non ti sarà permesso eseguirlo a causa dell'applicazione della **protezione no-exec**. +Inoltre, creare un **fd regolare** con un file in `/dev/shm` non funzionerà, poiché non ti sarà permesso eseguirlo a causa della **protezione no-exec** che si applicherà. {% endhint %} ### DDexec / EverythingExec @@ -127,12 +127,12 @@ Utilizzando il linguaggio di scripting potresti **enumerare il sistema** utilizz Se non ci sono protezioni **`read-only/no-exec`** potresti abusare della tua reverse shell per **scrivere nel file system i tuoi binari** e **eseguirli**. {% hint style="success" %} -Tuttavia, in questo tipo di container queste protezioni di solito esistono, ma potresti utilizzare le **tecniche di esecuzione in memoria precedenti per bypassarle**. +Tuttavia, in questo tipo di container queste protezioni di solito esistono, ma potresti utilizzare le **precedenti tecniche di esecuzione in memoria per bypassarle**. {% endhint %} Puoi trovare **esempi** su come **sfruttare alcune vulnerabilità RCE** per ottenere reverse shell di linguaggi di scripting ed eseguire binari dalla memoria in [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE). -
+
Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). diff --git a/network-services-pentesting/pentesting-snmp/README.md b/network-services-pentesting/pentesting-snmp/README.md index 15b700392..7a69a0033 100644 --- a/network-services-pentesting/pentesting-snmp/README.md +++ b/network-services-pentesting/pentesting-snmp/README.md @@ -1,27 +1,27 @@ # 161,162,10161,10162/udp - Pentesting SNMP {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Impara e pratica Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Impara e pratica Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Supporta HackTricks -* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! -* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** -* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)! +* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
{% endhint %} -
+
-If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_). +Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta conoscenza fluente della lingua polacca scritta e parlata_). {% embed url="https://www.stmcyber.com/careers" %} -## Basic Information +## Informazioni di base **SNMP - Simple Network Management Protocol** è un protocollo utilizzato per monitorare diversi dispositivi nella rete (come router, switch, stampanti, IoT...). ``` @@ -48,7 +48,7 @@ Inoltre, ai fornitori è concessa la libertà di stabilire rami privati. All'int ![](<../../.gitbook/assets/SNMP\_OID\_MIB\_Tree (1).png>) Puoi **navigare** attraverso un **albero OID** dal web qui: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) o **vedere cosa significa un OID** (come `1.3.6.1.2.1.1`) accedendo a [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\ -Ci sono alcuni **OID ben noti** come quelli all'interno di [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) che fanno riferimento alle variabili del Simple Network Management Protocol (SNMP) definite in MIB-2. E dagli **OID in attesa di questo** puoi ottenere alcuni dati interessanti sull'host (dati di sistema, dati di rete, dati dei processi...) +Ci sono alcuni **OID ben noti** come quelli all'interno di [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) che fanno riferimento alle variabili del Simple Network Management Protocol (SNMP) definite in MIB-2. E dagli **OID in attesa di questo** puoi ottenere alcuni dati interessanti sull'host (dati di sistema, dati di rete, dati sui processi...) ### **Esempio di OID** @@ -67,7 +67,7 @@ Ecco una suddivisione di questo indirizzo. Questi primi sei valori tendono a essere gli stessi per tutti i dispositivi e forniscono le informazioni di base su di essi. Questa sequenza di numeri sarà la stessa per tutti gli OID, tranne quando il dispositivo è realizzato dal governo. -Passando al set successivo di numeri. +Passando al prossimo insieme di numeri. * 1452 – fornisce il nome dell'organizzazione che ha fabbricato questo dispositivo. * 1 – spiega il tipo di dispositivo. In questo caso, è una sveglia. @@ -87,7 +87,7 @@ Il resto dei valori fornisce informazioni specifiche sul dispositivo. Ci sono 2 versioni importanti di SNMP: -* **SNMPv1**: La principale, è ancora la più frequente, l'**autenticazione si basa su una stringa** (community string) che viaggia in **testo semplice** (tutte le informazioni viaggiano in testo semplice). **Versione 2 e 2c** inviano il **traffico in testo semplice** anche e utilizzano una **community string come autenticazione**. +* **SNMPv1**: La principale, è ancora la più frequente, l'**autenticazione si basa su una stringa** (community string) che viaggia in **testo chiaro** (tutte le informazioni viaggiano in testo chiaro). **Versione 2 e 2c** inviano il **traffico in testo chiaro** anche e utilizzano una **community string come autenticazione**. * **SNMPv3**: Utilizza una forma di **autenticazione** migliore e le informazioni viaggiano **crittografate** (un **attacco a dizionario** potrebbe essere eseguito ma sarebbe molto più difficile trovare le credenziali corrette rispetto a SNMPv1 e v2). ### Community Strings @@ -101,7 +101,7 @@ Ci sono **2 tipi di community strings**: Nota che **la scrivibilità di un OID dipende dalla community string utilizzata**, quindi **anche** se scopri che viene utilizzato "**public**", potresti essere in grado di **scrivere alcuni valori.** Inoltre, potrebbero **esistere** oggetti che sono **sempre "Read Only".**\ Se provi a **scrivere** un oggetto, si riceve un errore **`noSuchName` o `readOnly`**.\*\*.\*\* -Nelle versioni 1 e 2/2c, se utilizzi una **community string** **errata**, il server non **risponderà**. Quindi, se risponde, è stata utilizzata una **community string valida**. +Nelle versioni 1 e 2/2c, se utilizzi una **community string errata**, il server non **risponderà**. Quindi, se risponde, è stata utilizzata una **community string valida**. ## Porte @@ -117,7 +117,7 @@ Per **indovinare la community string** potresti eseguire un attacco a dizionario ## Enumerare SNMP -È consigliato installare quanto segue per vedere cosa significa **ogni OID raccolto** dal dispositivo: +Si raccomanda di installare quanto segue per vedere cosa significa **ogni OID raccolto** dal dispositivo: ```bash apt-get install snmp-mibs-downloader download-mibs @@ -140,7 +140,7 @@ nmap --script "snmp* and not snmp-brute" braa @:.1.3.6.* #Bruteforce specific OID ``` -Grazie a query estese (download-mibs), è possibile enumerare ulteriormente il sistema con il seguente comando : +Grazie a query estese (download-mibs), è possibile enumerare ancora di più sul sistema con il seguente comando : ```bash snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull ``` @@ -154,7 +154,7 @@ Nel campo della gestione della rete, alcune configurazioni e parametri sono fond ### Impostazioni di accesso -Due impostazioni principali abilitano l'accesso all'**intero albero OID**, che è un componente cruciale nella gestione della rete: +Due impostazioni principali abilitano l'accesso all'**albero OID completo**, che è un componente cruciale nella gestione della rete: 1. **`rwuser noauth`** è impostato per consentire l'accesso completo all'albero OID senza la necessità di autenticazione. Questa impostazione è semplice e consente un accesso illimitato. 2. Per un controllo più specifico, l'accesso può essere concesso utilizzando: @@ -243,7 +243,7 @@ Se c'è un ACL che consente solo ad alcuni IP di interrogare il servizio SMNP, p * snmpd.conf * snmp-config.xml -
+
Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). diff --git a/network-services-pentesting/pentesting-snmp/cisco-snmp.md b/network-services-pentesting/pentesting-snmp/cisco-snmp.md index ed08a8cad..1810a2aed 100644 --- a/network-services-pentesting/pentesting-snmp/cisco-snmp.md +++ b/network-services-pentesting/pentesting-snmp/cisco-snmp.md @@ -15,7 +15,7 @@ Learn & practice GCP Hacking: {% endhint %} -
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_). @@ -23,9 +23,9 @@ If you are interested in **hacking career** and hack the unhackable - **we are h ## Pentesting Cisco Networks -**SNMP** funziona su UDP con le porte 161/UDP per messaggi generali e 162/UDP per messaggi trap. Questo protocollo si basa su stringhe di comunità, che fungono da password che abilitano la comunicazione tra agenti e server SNMP. Queste stringhe sono fondamentali poiché determinano i livelli di accesso, specificamente **permessi di sola lettura (RO) o lettura-scrittura (RW)**. Un vettore d'attacco notevole per i pentester è il **brute-forcing delle stringhe di comunità**, mirato a infiltrarsi nei dispositivi di rete. +**SNMP** funziona su UDP con le porte 161/UDP per messaggi generali e 162/UDP per messaggi di trap. Questo protocollo si basa su stringhe di comunità, che fungono da password che abilitano la comunicazione tra agenti e server SNMP. Queste stringhe sono fondamentali poiché determinano i livelli di accesso, specificamente **permessi di sola lettura (RO) o lettura-scrittura (RW)**. Un vettore d'attacco notevole per i pentester è il **brute-forcing delle stringhe di comunità**, con l'obiettivo di infiltrarsi nei dispositivi di rete. -Uno strumento pratico per eseguire tali attacchi di forza bruta è [**onesixtyone**](https://github.com/trailofbits/onesixtyone), che richiede un elenco di potenziali stringhe di comunità e gli indirizzi IP degli obiettivi: +Uno strumento pratico per eseguire tali attacchi di brute-force è [**onesixtyone**](https://github.com/trailofbits/onesixtyone), che richiede un elenco di potenziali stringhe di comunità e gli indirizzi IP degli obiettivi: ```bash onesixtyone -c communitystrings -i targets ``` @@ -52,9 +52,9 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit * [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta conoscenza fluente del polacco scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta fluente in polacco scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} @@ -68,7 +68,7 @@ Impara e pratica GCP Hacking: {% endhint %} diff --git a/network-services-pentesting/pentesting-web/README.md b/network-services-pentesting/pentesting-web/README.md index a070f40a8..8c9671396 100644 --- a/network-services-pentesting/pentesting-web/README.md +++ b/network-services-pentesting/pentesting-web/README.md @@ -1,8 +1,8 @@ # 80,443 - Metodologia di Pentesting Web {% hint style="success" %} -Impara e pratica Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Impara e pratica Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Impara e pratica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Impara e pratica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -15,13 +15,13 @@ Impara e pratica Hacking GCP: {% endhint %} -
+
Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} -## Informazioni di base +## Informazioni di Base Il servizio web è il servizio più **comune ed esteso** e esistono molti **tipi diversi di vulnerabilità**. @@ -115,7 +115,7 @@ Alcuni **trucchi** per **trovare vulnerabilità** in diverse **tecnologie** ben * [**WebDav**](put-method-webdav.md) * [**Werkzeug**](werkzeug.md) * [**Wordpress**](wordpress.md) -* [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/) +* [**Electron Desktop (XSS a RCE)**](electron-desktop-apps/) _Tieni presente che il **stesso dominio** può utilizzare **tecnologie diverse** in **porte**, **cartelle** e **sottodomini** diversi._\ Se l'applicazione web utilizza qualche **tecnologia/piattaforma ben nota elencata sopra** o **qualsiasi altra**, non dimenticare di **cercare su Internet** nuovi trucchi (e fammi sapere!). @@ -151,7 +151,7 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi ``` #### Scanner CMS -Se viene utilizzato un CMS non dimenticare di **eseguire uno scanner**, potrebbe essere trovato qualcosa di succoso: +Se viene utilizzato un CMS, non dimenticare di **eseguire uno scanner**, potrebbe essere trovato qualcosa di succoso: [**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/)**, Railo, Axis2, Glassfish**\ [**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/), **Joomla**, **vBulletin** siti web per problemi di sicurezza. (GUI)\ @@ -185,12 +185,12 @@ joomlavs.rb #https://github.com/rastating/joomlavs I server web possono **comportarsi in modo imprevisto** quando vengono inviati dati strani. Questo può aprire **vulnerabilità** o **divulgare informazioni sensibili**. -* Accedi a **pagine false** come /whatever\_fake.php (.aspx,.html,.ecc) +* Accedi a **pagine false** come /whatever\_fake.php (.aspx,.html,.etc) * **Aggiungi "\[]", "]]" e "\[\["** nei **valori dei cookie** e nei **valori dei parametri** per creare errori * Genera un errore fornendo input come **`/~randomthing/%s`** alla **fine** dell'**URL** * Prova **diversi verbi HTTP** come PATCH, DEBUG o errati come FAKE -#### **Controlla se puoi caricare file (**[**verbo PUT, WebDav**](put-method-webdav.md)**)** +#### **Controlla se puoi caricare file (**[**PUT verb, WebDav**](put-method-webdav.md)**)** Se scopri che **WebDav** è **abilitato** ma non hai abbastanza permessi per **caricare file** nella cartella radice, prova a: @@ -199,10 +199,10 @@ Se scopri che **WebDav** è **abilitato** ma non hai abbastanza permessi per **c ### **Vulnerabilità SSL/TLS** -* Se l'applicazione **non costringe l'utente a utilizzare HTTPS** in nessuna parte, allora è **vulnerabile a MitM** +* Se l'applicazione **non costringe l'uso di HTTPS** in nessuna parte, allora è **vulnerabile a MitM** * Se l'applicazione **invia dati sensibili (password) utilizzando HTTP**. Allora è una vulnerabilità alta. -Usa [**testssl.sh**](https://github.com/drwetter/testssl.sh) per controllare le **vulnerabilità** (nei programmi Bug Bounty probabilmente questo tipo di vulnerabilità non sarà accettato) e usa [**a2sv**](https://github.com/hahwul/a2sv) per ricontrollare le vulnerabilità: +Usa [**testssl.sh**](https://github.com/drwetter/testssl.sh) per controllare le **vulnerabilità** (nei programmi di Bug Bounty probabilmente questo tipo di vulnerabilità non sarà accettato) e usa [**a2sv**](https://github.com/hahwul/a2sv) per ricontrollare le vulnerabilità: ```bash ./testssl.sh [--htmlfile] 10.10.10.10:443 #Use the --htmlfile to save the output inside an htmlfile also @@ -218,19 +218,19 @@ Informazioni sulle vulnerabilità SSL/TLS: ### Spidering -Lanciare qualche tipo di **spider** all'interno del web. L'obiettivo dello spider è **trovare il maggior numero possibile di percorsi** dall'applicazione testata. Pertanto, dovrebbero essere utilizzati il crawling web e fonti esterne per trovare il maggior numero possibile di percorsi validi. +Lanciare qualche tipo di **spider** all'interno del web. L'obiettivo dello spider è **trovare il maggior numero possibile di percorsi** dall'applicazione testata. Pertanto, dovrebbero essere utilizzati web crawling e fonti esterne per trovare il maggior numero possibile di percorsi validi. * [**gospider**](https://github.com/jaeles-project/gospider) (go): spider HTML, LinkFinder in file JS e fonti esterne (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com). * [**hakrawler**](https://github.com/hakluke/hakrawler) (go): spider HML, con LinkFinder per file JS e Archive.org come fonte esterna. * [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): spider HTML, indica anche "file succulenti". -* [**evine** ](https://github.com/saeeddhqan/evine)(go): spider HTML CLI interattivo. Cerca anche in Archive.org. +* [**evine** ](https://github.com/saeeddhqan/evine)(go): spider HTML interattivo da CLI. Cerca anche in Archive.org. * [**meg**](https://github.com/tomnomnom/meg) (go): Questo strumento non è uno spider ma può essere utile. Puoi semplicemente indicare un file con host e un file con percorsi e meg recupererà ogni percorso su ogni host e salverà la risposta. * [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): spider HTML con capacità di rendering JS. Tuttavia, sembra che non sia mantenuto, la versione precompilata è vecchia e il codice attuale non si compila. * [**gau**](https://github.com/lc/gau) (go): spider HTML che utilizza fornitori esterni (wayback, otx, commoncrawl). * [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Questo script troverà URL con parametri e li elencherà. * [**galer**](https://github.com/dwisiswant0/galer) (go): spider HTML con capacità di rendering JS. * [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): spider HTML, con capacità di abbellimento JS in grado di cercare nuovi percorsi in file JS. Potrebbe valere la pena dare un'occhiata anche a [JSScanner](https://github.com/dark-warlord14/JSScanner), che è un wrapper di LinkFinder. -* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Per estrarre endpoint sia nel codice sorgente HTML che nei file javascript incorporati. Utile per cacciatori di bug, red teamers, ninja dell'infosec. +* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Per estrarre endpoint sia nel sorgente HTML che nei file javascript incorporati. Utile per bug hunter, red teamers, infosec ninjas. * [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Uno script python 2.7 che utilizza Tornado e JSBeautifier per analizzare URL relativi da file JavaScript. Utile per scoprire facilmente richieste AJAX. Sembra non essere mantenuto. * [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Dato un file (HTML) estrarrà URL da esso utilizzando espressioni regolari per trovare ed estrarre gli URL relativi da file brutti (minificati). * [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, diversi strumenti): Raccogliere informazioni interessanti da file JS utilizzando diversi strumenti. @@ -242,7 +242,7 @@ Lanciare qualche tipo di **spider** all'interno del web. L'obiettivo dello spide * [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Questo è uno strumento utilizzato per scoprire endpoint per un dato target. * [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Scoprire link dalla wayback machine (scaricando anche le risposte nella wayback e cercando ulteriori link). * [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawl (anche compilando moduli) e trova anche informazioni sensibili utilizzando regex specifici. -* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite è un avanzato crawler/spider web GUI multi-funzione progettato per professionisti della sicurezza informatica. +* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite è un avanzato crawler/spider web GUI multi-funzionale progettato per professionisti della sicurezza informatica. * [**jsluice**](https://github.com/BishopFox/jsluice) (go): È un pacchetto Go e [strumento da riga di comando](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) per estrarre URL, percorsi, segreti e altri dati interessanti dal codice sorgente JavaScript. * [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge è una semplice **estensione di Burp Suite** per **estrarre i parametri e gli endpoint** dalla richiesta per creare una wordlist personalizzata per fuzzing ed enumerazione. * [**katana**](https://github.com/projectdiscovery/katana) (go): Strumento fantastico per questo. @@ -264,7 +264,7 @@ Strumenti: * [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Rimuovi URL con funzionalità duplicate (basato su importazioni js). * [**Chamaleon**](https://github.com/iustin24/chameleon): Utilizza wapalyzer per rilevare le tecnologie utilizzate e selezionare le wordlist da utilizzare. -**Dizionari consigliati:** +**Dizionari raccomandati:** * [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt) * [**Dizionario incluso in Dirsearch**](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt) @@ -283,13 +283,13 @@ Strumenti: * _/usr/share/wordlists/dirb/big.txt_ * _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_ -_Nota che ogni volta che viene scoperta una nuova directory durante il brute-forcing o lo spidering, dovrebbe essere brute-forzata._ +_Nota che ogni volta che viene scoperta una nuova directory durante il brute-forcing o lo spidering, dovrebbe essere Brute-Forzata._ -### Cosa controllare su ogni file trovato +### Cosa controllare in ogni file trovato * [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Trova link rotti all'interno degli HTML che potrebbero essere soggetti a takeover. -* **File di backup**: Una volta trovati tutti i file, cerca i backup di tutti i file eseguibili ("_.php_", "_.aspx_"...). Le variazioni comuni per nominare un backup sono: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp e file.old._ Puoi anche utilizzare lo strumento [**bfac**](https://github.com/mazen160/bfac) **o** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.** -* **Scoprire nuovi parametri**: Puoi utilizzare strumenti come [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **e** [**Param Miner**](https://github.com/PortSwigger/param-miner) **per scoprire parametri nascosti. Se puoi, potresti provare a cercare** parametri nascosti in ogni file web eseguibile. +* **Backup di file**: Una volta trovati tutti i file, cerca backup di tutti i file eseguibili ("_.php_", "_.aspx_"...). Le variazioni comuni per nominare un backup sono: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp e file.old._ Puoi anche utilizzare lo strumento [**bfac**](https://github.com/mazen160/bfac) **o** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.** +* **Scoprire nuovi parametri**: Puoi utilizzare strumenti come [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **e** [**Param Miner**](https://github.com/PortSwigger/param-miner) **per scoprire parametri nascosti. Se puoi, potresti provare a cercare** parametri nascosti in ciascun file web eseguibile. * _Arjun tutte le wordlist predefinite:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db) * _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params) * _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io) @@ -298,7 +298,7 @@ _Nota che ogni volta che viene scoperta una nuova directory durante il brute-for * Se stai partecipando a un **CTF**, un trucco "comune" è **nascondere** **informazioni** all'interno dei commenti a destra della **pagina** (utilizzando **centinaia** di **spazi** in modo da non vedere i dati se apri il codice sorgente con il browser). Un'altra possibilità è utilizzare **diverse nuove righe** e **nascondere informazioni** in un commento in fondo alla pagina web. * **Chiavi API**: Se **trovi una chiave API** c'è una guida che indica come utilizzare le chiavi API di diverse piattaforme: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird). * Chiavi API di Google: Se trovi una chiave API che assomiglia a **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik puoi utilizzare il progetto [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) per controllare quali API la chiave può accedere. -* **S3 Buckets**: Durante lo spidering controlla se qualche **sottodominio** o qualche **link** è correlato a qualche **S3 bucket**. In tal caso, [**controlla** le **permissive** del bucket](buckets/). +* **S3 Buckets**: Durante lo spidering controlla se qualche **subdominio** o qualche **link** è correlato a qualche **S3 bucket**. In tal caso, [**controlla** le **permissive** del bucket](buckets/). ### Scoperte speciali @@ -309,7 +309,7 @@ _Nota che ogni volta che viene scoperta una nuova directory durante il brute-for * Cerca **link** ad altri file all'interno dei file **CSS**. * [Se trovi un file _**.git**_ alcune informazioni possono essere estratte](git.md). * Se trovi un _**.env**_ informazioni come chiavi API, password db e altre informazioni possono essere trovate. -* Se trovi **endpoint API** dovresti [testarli anche](web-api-pentesting.md). Questi non sono file, ma probabilmente "sembra" che lo siano. +* Se trovi **endpoint API** dovresti [testarli anche](web-api-pentesting.md). Questi non sono file, ma probabilmente "sembreranno" tali. * **File JS**: Nella sezione spidering sono stati menzionati diversi strumenti che possono estrarre percorsi da file JS. Inoltre, sarebbe interessante **monitorare ogni file JS trovato**, poiché in alcune occasioni, una modifica potrebbe indicare che una potenziale vulnerabilità è stata introdotta nel codice. Potresti utilizzare ad esempio [**JSMon**](https://github.com/robre/jsmon)**.** * Dovresti anche controllare i file JS scoperti con [**RetireJS**](https://github.com/retirejs/retire.js/) o [**JSHole**](https://github.com/callforpapers-source/jshole) per scoprire se è vulnerabile. * **Deobfuscator e Unpacker Javascript:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator). @@ -327,17 +327,17 @@ _Nota che ogni volta che viene scoperta una nuova directory durante il brute-for **502 Proxy Error** -Se qualche pagina **risponde** con quel **codice**, è probabilmente un **proxy mal configurato**. **Se invii una richiesta HTTP come: `GET https://google.com HTTP/1.1`** (con l'intestazione host e altre intestazioni comuni), il **proxy** cercherà di **accedere** a _**google.com**_ **e avrai trovato un** SSRF. +Se qualche pagina **risponde** con quel **codice**, è probabilmente un **proxy mal configurato**. **Se invii una richiesta HTTP come: `GET https://google.com HTTP/1.1`** (con l'intestazione host e altre intestazioni comuni), il **proxy** cercherà di **accedere** _**google.com**_ **e avrai trovato un** SSRF. -**Autenticazione NTLM - Divulgazione di informazioni** +**Autenticazione NTLM - Informazioni divulgate** Se il server in esecuzione richiede autenticazione è **Windows** o trovi un login che richiede le tue **credenziali** (e richiede il **nome del dominio**), puoi provocare una **divulgazione di informazioni**.\ -**Invia** l'**intestazione**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` e a causa di come funziona l'**autenticazione NTLM**, il server risponderà con informazioni interne (versione IIS, versione Windows...) all'interno dell'intestazione "WWW-Authenticate".\ +**Invia** l'**intestazione**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` e a causa di come funziona **l'autenticazione NTLM**, il server risponderà con informazioni interne (versione IIS, versione Windows...) all'interno dell'intestazione "WWW-Authenticate".\ Puoi **automatizzare** questo utilizzando il **plugin nmap** "_http-ntlm-info.nse_". **HTTP Redirect (CTF)** -È possibile **inserire contenuti** all'interno di una **Redirection**. Questo contenuto **non sarà mostrato all'utente** (poiché il browser eseguirà la redirezione) ma qualcosa potrebbe essere **nascosto** lì dentro. +È possibile **inserire contenuti** all'interno di una **Redirection**. Questo contenuto **non sarà mostrato all'utente** (poiché il browser eseguirà il reindirizzamento) ma qualcosa potrebbe essere **nascosto** lì. ### Controllo delle vulnerabilità web @@ -353,11 +353,11 @@ Trova ulteriori informazioni sulle vulnerabilità web in: * [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html) * [https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection](https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection) -### Monitorare le pagine per le modifiche +### Monitorare le pagine per modifiche Puoi utilizzare strumenti come [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) per monitorare le pagine per modifiche che potrebbero inserire vulnerabilità. -
+
Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). diff --git a/network-services-pentesting/pentesting-web/drupal/drupal-rce.md b/network-services-pentesting/pentesting-web/drupal/drupal-rce.md index ef903fee8..97cec6e77 100644 --- a/network-services-pentesting/pentesting-web/drupal/drupal-rce.md +++ b/network-services-pentesting/pentesting-web/drupal/drupal-rce.md @@ -18,16 +18,16 @@ Learn & practice GCP Hacking: 
 ## Con il modulo PHP Filter
 
 {% hint style= (**Controlla**) _PHP Filter_ -> _Salva configurazione_ ![](<../../../.gitbook/assets/image (247) (1).png>) -Poi clicca su _Aggiungi contenuto_ -> Seleziona _Pagina base_ o _Articolo_ -> Scrivi _php shellcode nel corpo_ -> Seleziona _PHP code_ in _Formato testo_ -> Seleziona _Anteprima_ +Poi clicca su _Aggiungi contenuto_ -> Seleziona _Pagina base_ o _Articolo_ -> Scrivi _php shellcode nel corpo_ -> Seleziona _Codice PHP_ in _Formato testo_ -> Seleziona _Anteprima_ ![](<../../../.gitbook/assets/image (338).png>) @@ -35,7 +35,7 @@ Infine accedi semplicemente al nodo appena creato: ```bash curl http://drupal-site.local/node/3 ``` -## Installa il modulo PHP Filter +## Installazione del modulo PHP Filter {% hint style="warning" %} Nelle versioni attuali non è più possibile installare plugin avendo accesso solo al web dopo l'installazione predefinita. @@ -62,7 +62,7 @@ Un modulo con backdoor può essere creato **aggiungendo una shell a un modulo es wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz tar xvf captcha-8.x-1.2.tar.gz ``` -* Crea un **PHP web shell** con i contenuti: +* Crea una **web shell PHP** con i contenuti: ```php +## Backdooring Drupal con sincronizzazione della configurazione **Post condiviso da** [**Coiffeur0x90**](https://twitter.com/Coiffeur0x90) @@ -93,17 +93,17 @@ Nel menu _Estendi_ (/admin/modules), puoi attivare quelli che sembrano essere pl Prima dell'attivazione: -
+
Dopo l'attivazione: -
+
-
+
### Parte 2 (sfruttare la funzionalità _Sincronizzazione della configurazione_) -Sfrutteremo la funzionalità _Sincronizzazione della configurazione_ per scaricare (esportare) e caricare (importare) le voci di configurazione di Drupal: +Sfrutteremo la funzionalità _Sincronizzazione della configurazione_ per esportare e importare le voci di configurazione di Drupal: * /admin/config/development/configuration/single/export * /admin/config/development/configuration/single/import @@ -122,7 +122,7 @@ allow_insecure_uploads: false ... ``` -
+
A: @@ -136,7 +136,7 @@ allow_insecure_uploads: true ... ``` -
+
**Patch field.field.media.document.field\_media\_document.yml** @@ -166,7 +166,7 @@ file_extensions: 'htaccess txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp od ... ``` -> Non lo uso in questo post del blog, ma è importante notare che è possibile definire l'entry `file_directory` in modo arbitrario e che è vulnerabile a un attacco di traversata del percorso (quindi possiamo risalire all'interno dell'albero del filesystem di Drupal). +> Non lo uso in questo post del blog, ma è importante notare che è possibile definire l'entry `file_directory` in modo arbitrario e che è vulnerabile a un attacco di path traversal (quindi possiamo risalire all'interno dell'albero del filesystem di Drupal).
@@ -202,7 +202,7 @@ Semplicemente perché se prendiamo il seguente file, ad esempio [core/LICENSE.tx
-File: LICENSE.txt patchato +File: Patched LICENSE.txt ```txt ... @@ -233,7 +233,7 @@ programs whose distribution conditions are different, write to the author ``` #### **Parte 3.1 (carica file .htaccess)** -Per prima cosa, sfruttiamo la funzione _Aggiungi Documento_ (/media/add/document) per caricare il nostro file contenente le direttive Apache (.htaccess). +Prima, sfruttiamo la funzione _Aggiungi Documento_ (/media/add/document) per caricare il nostro file contenente le direttive Apache (.htaccess).
@@ -275,11 +275,11 @@ Learn & practice GCP Hacking: 
 
 <details>
 
-<summary>Support HackTricks</summary>
+<summary>Supporta HackTricks</summary>
 
-* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
-* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
+* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
 
 </details>
 {% endhint %}
diff --git a/network-services-pentesting/pentesting-web/jira.md b/network-services-pentesting/pentesting-web/jira.md
index 541f22645..c1bec0c7e 100644
--- a/network-services-pentesting/pentesting-web/jira.md
+++ b/network-services-pentesting/pentesting-web/jira.md
@@ -15,59 +15,59 @@ Learn & practice GCP Hacking: <img src= {% endhint %} -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_è richiesta la conoscenza fluente della lingua polacca, scritta e parlata_). +Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} ## Controlla i privilegi -In Jira, **i privilegi possono essere controllati** da qualsiasi utente, autenticato o meno, attraverso gli endpoint `/rest/api/2/mypermissions` o `/rest/api/3/mypermissions`. Questi endpoint rivelano i privilegi attuali dell'utente. Una preoccupazione notevole sorge quando **gli utenti non autenticati detengono privilegi**, indicando una **vulnerabilità di sicurezza** che potrebbe potenzialmente essere idonea per un **bounty**. Allo stesso modo, **privilegi inaspettati per gli utenti autenticati** evidenziano anch'essi una **vulnerabilità**. +In Jira, **i privilegi possono essere controllati** da qualsiasi utente, autenticato o meno, attraverso gli endpoint `/rest/api/2/mypermissions` o `/rest/api/3/mypermissions`. Questi endpoint rivelano i privilegi attuali dell'utente. Una preoccupazione notevole sorge quando **gli utenti non autenticati detengono privilegi**, indicando una **vulnerabilità di sicurezza** che potrebbe potenzialmente essere idonea per un **bounty**. Allo stesso modo, **privilegi inaspettati per gli utenti autenticati** evidenziano anche una **vulnerabilità**. Un'importante **aggiornamento** è stato effettuato il **1° febbraio 2019**, richiedendo che l'endpoint 'mypermissions' includesse un **parametro 'permission'**. Questo requisito mira a **migliorare la sicurezza** specificando i privilegi richiesti: [controllalo qui](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter) * ADD\_COMMENTS -* ADMINISTER -* ADMINISTER\_PROJECTS -* ASSIGNABLE\_USER -* ASSIGN\_ISSUES -* BROWSE\_PROJECTS -* BULK\_CHANGE -* CLOSE\_ISSUES -* CREATE\_ATTACHMENTS -* CREATE\_ISSUES -* CREATE\_PROJECT -* CREATE\_SHARED\_OBJECTS -* DELETE\_ALL\_ATTACHMENTS -* DELETE\_ALL\_COMMENTS -* DELETE\_ALL\_WORKLOGS -* DELETE\_ISSUES -* DELETE\_OWN\_ATTACHMENTS -* DELETE\_OWN\_COMMENTS -* DELETE\_OWN\_WORKLOGS -* EDIT\_ALL\_COMMENTS -* EDIT\_ALL\_WORKLOGS -* EDIT\_ISSUES -* EDIT\_OWN\_COMMENTS -* EDIT\_OWN\_WORKLOGS -* LINK\_ISSUES -* MANAGE\_GROUP\_FILTER\_SUBSCRIPTIONS -* MANAGE\_SPRINTS\_PERMISSION -* MANAGE\_WATCHERS -* MODIFY\_REPORTER -* MOVE\_ISSUES -* RESOLVE\_ISSUES -* SCHEDULE\_ISSUES -* SET\_ISSUE\_SECURITY -* SYSTEM\_ADMIN -* TRANSITION\_ISSUES -* USER\_PICKER -* VIEW\_AGGREGATED\_DATA -* VIEW\_DEV\_TOOLS -* VIEW\_READONLY\_WORKFLOW -* VIEW\_VOTERS\_AND\_WATCHERS -* WORK\_ON\_ISSUES +* ADMINISTRARE +* ADMINISTRARE\_PROGETTI +* UTENTE\_ASSEGNAZIONE +* ASSEGNA\_QUESTIONI +* NAVIGARE\_PROGETTI +* MODIFICA\_MASSIVA +* CHIUDI\_QUESTIONI +* CREA\_ALLEGATI +* CREA\_QUESTIONI +* CREA\_PROGETTO +* CREA\_OGGETTI\_CONDIVISI +* ELIMINA\_TUTTI\_GLI\_ALLEGATI +* ELIMINA\_TUTTI\_I\_COMMENTI +* ELIMINA\_TUTTI\_I\_WORKLOG +* ELIMINA\_QUESTIONI +* ELIMINA\_PROPRI\_ALLEGATI +* ELIMINA\_PROPRI\_COMMENTI +* ELIMINA\_PROPRI\_WORKLOG +* MODIFICA\_TUTTI\_I\_COMMENTI +* MODIFICA\_TUTTI\_I\_WORKLOG +* MODIFICA\_QUESTIONI +* MODIFICA\_PROPRI\_COMMENTI +* MODIFICA\_PROPRI\_WORKLOG +* COLLEGA\_QUESTIONI +* GESTISCI\_ISCRIZIONI\_FILTRI\_GRUPPO +* GESTISCI\_PERMESSO\_SPRINT +* GESTISCI\_OSSERVER +* MODIFICA\_REPORTER +* MUOVI\_QUESTIONI +* RISOLVI\_QUESTIONI +* PROGRAMMA\_QUESTIONI +* IMPOSTA\_SICUREZZA\_QUESTIONI +* AMMINISTRATORE\_DI\_SYSTEMA +* TRANSIZIONE\_QUESTIONI +* SELEZIONATORE\_UTENTE +* VISUALIZZA\_DATI\_AGGREGATI +* VISUALIZZA\_STRUMENTI\_DEV +* VISUALIZZA\_WORKFLOW\_DI\_SOLI\_LETTURA +* VISUALIZZA\_VOTANTI\_E\_OSSERVER +* LAVORA\_SU\_QUESTIONI Esempio: `https://your-domain.atlassian.net/rest/api/2/mypermissions?permissions=BROWSE_PROJECTS,CREATE_ISSUES,ADMINISTER_PROJECTS` ```bash @@ -122,16 +122,16 @@ Una volta trovato un XSS, in [**questo repo github**](https://github.com/cyllect Queste sono alcune delle azioni che un plugin malevolo potrebbe eseguire: -* **Nascondere i plugin agli amministratori**: È possibile nascondere il plugin malevolo iniettando del javascript front-end. -* **Esfiltrare allegati e pagine**: Consentire di accedere e esfiltrare tutti i dati. -* **Furto di token di sessione**: Aggiungere un endpoint che restituirà gli header nella risposta (con il cookie) e del javascript che lo contatterà e esfiltrerà i cookie. -* **Esecuzione di comandi**: Ovviamente è possibile creare un plugin che eseguirà codice. -* **Shell inversa**: O ottenere una shell inversa. +* **Nascondere i Plugin dagli Amministratori**: È possibile nascondere il plugin malevolo iniettando del javascript front-end. +* **Esfiltrare Allegati e Pagine**: Consentire di accedere e esfiltrare tutti i dati. +* **Furto di Token di Sessione**: Aggiungere un endpoint che restituirà gli header nella risposta (con il cookie) e del javascript che lo contatterà e esfiltrerà i cookie. +* **Esecuzione di Comandi**: Ovviamente è possibile creare un plugin che eseguirà codice. +* **Reverse Shell**: O ottenere una reverse shell. * **Proxying DOM**: Se Confluence è all'interno di una rete privata, sarebbe possibile stabilire una connessione attraverso il browser di un utente con accesso e, ad esempio, contattare il server eseguendo comandi attraverso di esso. -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta fluente di polacco scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} diff --git a/pentesting-web/file-upload/README.md b/pentesting-web/file-upload/README.md index 05b6e5d45..1a8f85297 100644 --- a/pentesting-web/file-upload/README.md +++ b/pentesting-web/file-upload/README.md @@ -15,7 +15,7 @@ Impara e pratica il hacking GCP: 
 </details>
 {% endhint %}
 
-<figure><img src=
+
Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). @@ -26,7 +26,7 @@ Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - * Altre estensioni utili: * **PHP**: _.php_, _.php2_, _.php3_, ._php4_, ._php5_, ._php6_, ._php7_, .phps, ._phps_, ._pht_, ._phtm, .phtml_, ._pgif_, _.shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module_ -* **Funzionamento in PHPv8**: _.php_, _.php4_, _.php5_, _.phtml_, _.module_, _.inc_, _.hphp_, _.ctp_ +* **Funzionante in PHPv8**: _.php_, _.php4_, _.php5_, _.phtml_, _.module_, _.inc_, _.hphp_, _.ctp_ * **ASP**: _.asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .cer, .shtml_ * **Jsp:** _.jsp, .jspx, .jsw, .jsv, .jspf, .wss, .do, .action_ * **Coldfusion:** _.cfm, .cfml, .cfc, .dbm_ @@ -36,11 +36,11 @@ Altre estensioni utili: ### Bypass file extensions checks -1. Se applicabile, **controlla** le **estensioni precedenti.** Provale anche usando alcune **lettere maiuscole**: _pHp, .pHP5, .PhAr ..._ +1. Se applicabile, **controlla** le **estensioni precedenti.** Prova anche a usarle con alcune **lettere maiuscole**: _pHp, .pHP5, .PhAr ..._ 2. _Controlla **aggiungendo un'estensione valida prima** dell'estensione di esecuzione (usa anche le estensioni precedenti):_ * _file.png.php_ * _file.png.Php5_ -3. Prova ad aggiungere **caratteri speciali alla fine.** Puoi usare Burp per **bruteforce** tutti i caratteri **ascii** e **Unicode**. (_Nota che puoi anche provare a usare le **estensioni precedentemente** menzionate_) +3. Prova ad aggiungere **caratteri speciali alla fine.** Potresti usare Burp per **bruteforce** tutti i caratteri **ascii** e **Unicode**. (_Nota che puoi anche provare a usare le **estensioni precedentemente** menzionate_) * _file.php%20_ * _file.php%0a_ * _file.php%00_ @@ -62,15 +62,15 @@ Altre estensioni utili: 5. Aggiungi **un altro livello di estensioni** al controllo precedente: * _file.png.jpg.php_ * _file.php%00.png%00.jpg_ -6. Prova a mettere l'**estensione exec prima dell'estensione valida** e spera che il server sia mal configurato. (utile per sfruttare le misconfigurazioni di Apache dove qualsiasi cosa con estensione\*\* _**.php**_**, ma** non necessariamente che termina in .php\*\* eseguirà codice): +6. Prova a mettere l'**estensione di esecuzione prima dell'estensione valida** e spera che il server sia mal configurato. (utile per sfruttare le misconfigurazioni di Apache dove qualsiasi cosa con estensione **_**.php**_**, ma** non necessariamente che termina in .php** eseguirà codice): * _es: file.php.png_ 7. Usando **NTFS alternate data stream (ADS)** in **Windows**. In questo caso, un carattere due punti “:” verrà inserito dopo un'estensione vietata e prima di una consentita. Di conseguenza, un **file vuoto con l'estensione vietata** verrà creato sul server (es. “file.asax:.jpg”). Questo file potrebbe essere modificato in seguito utilizzando altre tecniche come l'uso del suo nome breve. Il modello “**::$data**” può anche essere utilizzato per creare file non vuoti. Pertanto, aggiungere un carattere punto dopo questo modello potrebbe anche essere utile per bypassare ulteriori restrizioni (es. “file.asp::$data.”) -8. Prova a superare i limiti del nome del file. L'estensione valida viene tagliata. E il PHP malevolo rimane. AAA<--SNIP-->AAA.php +8. Prova a superare i limiti del nome del file. L'estensione valida viene tagliata. E il PHP malevolo rimane. AAA<--SNIP-->AAA.php ``` # Linux massimo 255 byte /usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 255 -Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ab3Ab4Ad5Ab6Ab7Ab8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4 # meno 4 qui e aggiungendo .png +Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4 # meno 4 qui e aggiungendo .png # Carica il file e controlla la risposta su quanti caratteri consente. Diciamo 236 python -c 'print "A" * 232' AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -80,9 +80,9 @@ AAA<--SNIP 232 A-->AAA.php.png ### Bypass Content-Type, Magic Number, Compression & Resizing -* Bypass **Content-Type** controllando impostando il **valore** dell'**intestazione Content-Type** a: _image/png_ , _text/plain , application/octet-stream_ +* Bypass **Content-Type** controlli impostando il **valore** dell'**intestazione Content-Type** a: _image/png_, _text/plain_, application/octet-stream_ 1. Content-Type **wordlist**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt) -* Bypass **magic number** controllando aggiungendo all'inizio del file i **byte di una vera immagine** (confondere il comando _file_). Oppure introduci la shell all'interno dei **metadati**:\ +* Bypass **magic number** controllo aggiungendo all'inizio del file i **byte di una vera immagine** (confondere il comando _file_). Oppure introduci la shell all'interno dei **metadati**:\ `exiftool -Comment="' >> img.png` @@ -113,7 +113,7 @@ Se stai cercando di caricare file su un **server ASP**, [dai un'occhiata al truc I file `.phar` sono come i `.jar` per java, ma per php, e possono essere **utilizzati come un file php** (eseguendolo con php, o includendolo all'interno di uno script...) -L'estensione `.inc` è a volte utilizzata per file php che vengono utilizzati solo per **importare file**, quindi, a un certo punto, qualcuno potrebbe aver consentito **l'esecuzione di questa estensione**. +L'estensione `.inc` è a volte utilizzata per file php che sono solo utilizzati per **importare file**, quindi, a un certo punto, qualcuno potrebbe aver consentito **l'esecuzione di questa estensione**. ## **Jetty RCE** @@ -125,7 +125,7 @@ Se puoi caricare un file XML su un server Jetty puoi ottenere [RCE perché **nuo Per un'esplorazione dettagliata di questa vulnerabilità controlla la ricerca originale: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html). -Le vulnerabilità di Remote Command Execution (RCE) possono essere sfruttate nei server uWSGI se si ha la capacità di modificare il file di configurazione `.ini`. I file di configurazione uWSGI sfruttano una sintassi specifica per incorporare variabili "magiche", segnaposto e operatori. In particolare, l'operatore '@', utilizzato come `@(filename)`, è progettato per includere i contenuti di un file. Tra i vari schemi supportati in uWSGI, lo schema "exec" è particolarmente potente, consentendo la lettura dei dati dall'output standard di un processo. Questa funzionalità può essere manipolata per scopi nefasti come Remote Command Execution o Arbitrary File Write/Read quando un file di configurazione `.ini` viene elaborato. +Le vulnerabilità di Remote Command Execution (RCE) possono essere sfruttate nei server uWSGI se si ha la capacità di modificare il file di configurazione `.ini`. I file di configurazione uWSGI sfruttano una sintassi specifica per incorporare variabili "magiche", segnaposto e operatori. Notabilmente, l'operatore '@', utilizzato come `@(filename)`, è progettato per includere i contenuti di un file. Tra i vari schemi supportati in uWSGI, lo schema "exec" è particolarmente potente, consentendo la lettura dei dati dall'output standard di un processo. Questa funzionalità può essere manipolata per scopi nefasti come Remote Command Execution o Arbitrary File Write/Read quando un file di configurazione `.ini` viene elaborato. Considera il seguente esempio di un file `uwsgi.ini` dannoso, che mostra vari schemi: ```ini @@ -237,7 +237,7 @@ tar -cvf test.tar symindex.txt ``` ### Decompress in different folders -La creazione imprevista di file in directory durante la decompressione è un problema significativo. Nonostante le assunzioni iniziali che questa configurazione potesse proteggere contro l'esecuzione di comandi a livello di OS tramite caricamenti di file dannosi, il supporto per la compressione gerarchica e le capacità di traversata delle directory del formato ZIP possono essere sfruttati. Questo consente agli attaccanti di eludere le restrizioni e di uscire dalle directory di upload sicure manipolando la funzionalità di decompressione dell'applicazione mirata. +La creazione imprevista di file in directory durante la decompressione è un problema significativo. Nonostante le assunzioni iniziali che questa configurazione potesse proteggere contro l'esecuzione di comandi a livello di OS tramite caricamenti di file dannosi, il supporto per la compressione gerarchica e le capacità di traversata delle directory del formato ZIP possono essere sfruttate. Questo consente agli attaccanti di eludere le restrizioni e di uscire dalle directory di upload sicure manipolando la funzionalità di decompressione dell'applicazione mirata. Un exploit automatizzato per creare tali file è disponibile su [**evilarc su GitHub**](https://github.com/ptoomey3/evilarc). L'utilità può essere utilizzata come mostrato: ```python @@ -312,7 +312,7 @@ Maggiore informazione in: [https://www.idontplaydarts.com/2012/06/encoding-web-s ## Polyglot Files -I file poliglotti servono come uno strumento unico nella cybersecurity, agendo come camaleonti che possono esistere validamente in più formati di file contemporaneamente. Un esempio intrigante è un [GIFAR](https://en.wikipedia.org/wiki/Gifar), un ibrido che funziona sia come GIF che come archivio RAR. Tali file non sono limitati a questa combinazione; sono anche fattibili combinazioni come GIF e JS o PPT e JS. +I file poliglotti servono come uno strumento unico nella cybersecurity, agendo come camaleonti che possono esistere validamente in più formati di file contemporaneamente. Un esempio intrigante è un [GIFAR](https://en.wikipedia.org/wiki/Gifar), un ibrido che funziona sia come GIF che come archivio RAR. Tali file non sono limitati a questa accoppiamento; combinazioni come GIF e JS o PPT e JS sono anche fattibili. L'utilità principale dei file poliglotti risiede nella loro capacità di eludere le misure di sicurezza che filtrano i file in base al tipo. La prassi comune in varie applicazioni prevede di consentire solo determinati tipi di file per il caricamento—come JPEG, GIF o DOC—per mitigare il rischio posto da formati potenzialmente dannosi (ad es., JS, PHP o file Phar). Tuttavia, un poliglott, conformandosi ai criteri strutturali di più tipi di file, può eludere furtivamente queste restrizioni. @@ -329,7 +329,7 @@ Maggiore informazione in: [https://medium.com/swlh/polyglot-files-a-hackers-best * [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/) * [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a) -
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_). diff --git a/pentesting-web/hacking-jwt-json-web-tokens.md b/pentesting-web/hacking-jwt-json-web-tokens.md index 146235dd5..5a9628659 100644 --- a/pentesting-web/hacking-jwt-json-web-tokens.md +++ b/pentesting-web/hacking-jwt-json-web-tokens.md @@ -10,12 +10,12 @@ Impara e pratica il hacking GCP: {% endhint %} -
+
Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). @@ -36,7 +36,7 @@ Se sei fortunato, lo strumento troverà qualche caso in cui l'applicazione web c ![](<../.gitbook/assets/image (935).png>) -Poi, puoi cercare la richiesta nel tuo proxy o scaricare il JWT utilizzato per quella richiesta usando jwt\_ tool: +Poi, puoi cercare la richiesta nel tuo proxy o scaricare il JWT utilizzato per quella richiesta usando jwt\_tool: ```bash python3 jwt_tool.py -Q "jwttool_706649b802c9f5e41052062a3787b291" ``` @@ -44,15 +44,15 @@ Puoi anche utilizzare l'[**Estensione Burp SignSaboteur**](https://github.com/d0 ### Modifica i dati senza modificare nulla -Puoi semplicemente manomettere i dati lasciando la firma così com'è e controllare se il server sta verificando la firma. Prova a cambiare il tuo nome utente in "admin", ad esempio. +Puoi semplicemente modificare i dati lasciando la firma così com'è e controllare se il server sta verificando la firma. Prova a cambiare il tuo nome utente in "admin", ad esempio. #### **La firma del token viene controllata?** -Per controllare se la firma di un JWT viene verificata: +Per verificare se la firma di un JWT viene verificata: * Un messaggio di errore suggerisce una verifica in corso; i dettagli sensibili negli errori dettagliati dovrebbero essere esaminati. * Un cambiamento nella pagina restituita indica anche una verifica. -* Nessun cambiamento suggerisce nessuna verifica; è il momento di sperimentare con la manomissione delle affermazioni del payload. +* Nessun cambiamento suggerisce nessuna verifica; è il momento di sperimentare con la modifica delle affermazioni del payload. ### Origine @@ -146,7 +146,7 @@ A scenario where the `kid` parameter specifies a file path used within a command #### jku jku sta per **JWK Set URL**.\ -Se il token utilizza un claim di **Header** “**jku**” allora **controlla l'URL fornito**. Questo dovrebbe puntare a un URL contenente il file JWKS che detiene la Chiave Pubblica per verificare il token. Modifica il token per puntare il valore jku a un servizio web che puoi monitorare. +Se il token utilizza un claim di **Header** “**jku**” allora **controlla l'URL fornito**. Questo dovrebbe puntare a un URL contenente il file JWKS che detiene la chiave pubblica per verificare il token. Modifica il token per puntare il valore jku a un servizio web di cui puoi monitorare il traffico. First you need to create a new certificate with new private & public keys. ```bash @@ -260,15 +260,15 @@ La scadenza del token viene controllata utilizzando il claim "exp" Payload. Dato {% embed url="https://github.com/ticarpi/jwt_tool" %} -
+
Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} {% hint style="success" %} -Impara e pratica l'Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Impara e pratica l'Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Impara e pratica il Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Impara e pratica il Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
diff --git a/pentesting-web/ldap-injection.md b/pentesting-web/ldap-injection.md index ed3e36df6..20a238844 100644 --- a/pentesting-web/ldap-injection.md +++ b/pentesting-web/ldap-injection.md @@ -3,23 +3,23 @@ ## LDAP Injection {% hint style="success" %} -Impara e pratica il hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Impara e pratica il hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Supporta HackTricks +Support HackTricks -* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)! -* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** -* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} -
+
-Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} @@ -27,7 +27,7 @@ Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - * ### **LDAP** -**Se vuoi sapere cos'è LDAP accedi alla seguente pagina:** +**Se vuoi sapere cos'è LDAP, accedi alla seguente pagina:** {% content-ref url="../network-services-pentesting/pentesting-ldap.md" %} [pentesting-ldap.md](../network-services-pentesting/pentesting-ldap.md) @@ -37,7 +37,7 @@ Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - * {% file src="../.gitbook/assets/EN-Blackhat-Europe-2008-LDAP-Injection-Blind-LDAP-Injection.pdf" %} -**Filtro** = ( filtercomp )\ +**Filter** = ( filtercomp )\ **Filtercomp** = and / or / not / item\ **And** = & filterlist\ **Or** = |filterlist\ @@ -50,8 +50,8 @@ Se sei interessato a una **carriera nell'hacking** e a hackare l'inhackabile - * **Substring** = attr ”=” \[initial] \* \[final]\ **Initial** = assertionvalue\ **Final** = assertionvalue\ -**(&)** = Assoluto VERO\ -**(|)** = Assoluto FALSO +**(&)** = Absolute TRUE\ +**(|)** = Absolute FALSE Ad esempio:\ `(&(!(objectClass=Impresoras))(uid=s*))`\ @@ -138,7 +138,7 @@ password=any ### Blind LDAP Injection -Puoi forzare risposte False o True per controllare se vengono restituiti dati e confermare una possibile Blind LDAP Injection: +Puoi forzare risposte False o True per verificare se vengono restituiti dati e confermare una possibile Blind LDAP Injection: ```bash #This will result on True, so some information will be shown Payload: *)(objectClass=*))(&objectClass=void @@ -224,15 +224,15 @@ intitle:"phpLDAPadmin" inurl:cmd.php {% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/LDAP%20Injection" %} -
+
Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta fluente in polacco scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} {% hint style="success" %} -Impara e pratica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Impara e pratica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Impara e pratica l'Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Impara e pratica l'Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
diff --git a/pentesting-web/sql-injection/postgresql-injection/README.md b/pentesting-web/sql-injection/postgresql-injection/README.md index 87376fc8a..1d8b62489 100644 --- a/pentesting-web/sql-injection/postgresql-injection/README.md +++ b/pentesting-web/sql-injection/postgresql-injection/README.md @@ -15,9 +15,9 @@ Learn & practice GCP Hacking: 
 </details>
 {% endhint %}
 
-<figure><img src=
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_è richiesta una buona conoscenza del polacco scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} @@ -43,14 +43,14 @@ Controlla come compromettere l'host e aumentare i privilegi da PostgreSQL in: ## WAF bypass -### Funzioni di stringa PostgreSQL +### Funzioni String di PostgreSQL Manipolare le stringhe potrebbe aiutarti a **bypassare i WAF o altre restrizioni**.\ -[**In questa pagina** ](https://www.postgresqltutorial.com/postgresql-string-functions/)**puoi trovare alcune funzioni di stringa utili.** +[**In questa pagina** ](https://www.postgresqltutorial.com/postgresql-string-functions/)**puoi trovare alcune funzioni String utili.** ### Query impilate -Ricorda che postgresql supporta query impilate, ma diverse applicazioni genereranno un errore se vengono restituite 2 risposte quando ci si aspetta solo 1. Ma, puoi comunque abusare delle query impilate tramite l'iniezione di tempo: +Ricorda che PostgreSQL supporta query impilate, ma diverse applicazioni genereranno un errore se vengono restituite 2 risposte quando ci si aspetta solo 1. Tuttavia, puoi comunque abusare delle query impilate tramite l'iniezione temporale: ``` id=1; select pg_sleep(10);-- - 1; SELECT case when (SELECT current_setting('is_superuser'))='on' then pg_sleep(10) end;-- - @@ -97,9 +97,9 @@ SELECT 'hacktricks'; SELECT $$hacktricks$$; SELECT $TAG$hacktricks$TAG$; ``` -
+
-Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_è richiesta la conoscenza fluente del polacco, scritto e parlato_). +Se sei interessato a una **carriera nel hacking** e a hackare l'impossibile - **stiamo assumendo!** (_è richiesta la conoscenza fluente del polacco, scritto e parlato_). {% embed url="https://www.stmcyber.com/careers" %} diff --git a/pentesting-web/xss-cross-site-scripting/README.md b/pentesting-web/xss-cross-site-scripting/README.md index f3da0c26d..28f3a6d63 100644 --- a/pentesting-web/xss-cross-site-scripting/README.md +++ b/pentesting-web/xss-cross-site-scripting/README.md @@ -1,6 +1,6 @@ # XSS (Cross Site Scripting) -
+
Se sei interessato a una **carriera nel hacking** e a hackare l'impossibile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_). @@ -8,7 +8,7 @@ Se sei interessato a una **carriera nel hacking** e a hackare l'impossibile - ** ## Metodologia -1. Controlla se **qualunque valore tu controlli** (_parametri_, _percorso_, _header_?, _cookie_?) è **riflesso** nell'HTML o **utilizzato** dal codice **JS**. +1. Controlla se **qualunque valore tu controlli** (_parametri_, _percorso_, _intestazioni_?, _cookie_?) viene **riflesso** nell'HTML o **utilizzato** dal codice **JS**. 2. **Trova il contesto** in cui è riflesso/utilizzato. 3. Se **riflesso** 1. Controlla **quali simboli puoi usare** e a seconda di ciò, prepara il payload: @@ -45,25 +45,25 @@ Per sfruttare con successo un XSS la prima cosa che devi trovare è un **valore * **Riflesso intermediatamente**: Se scopri che il valore di un parametro o anche il percorso viene riflesso nella pagina web potresti sfruttare un **Reflected XSS**. * **Memorizzato e riflesso**: Se scopri che un valore controllato da te è salvato nel server ed è riflesso ogni volta che accedi a una pagina potresti sfruttare un **Stored XSS**. -* **Accessibile tramite JS**: Se scopri che un valore controllato da te viene accesso utilizzando JS potresti sfruttare un **DOM XSS**. +* **Accesso tramite JS**: Se scopri che un valore controllato da te viene accesso utilizzando JS potresti sfruttare un **DOM XSS**. ## Contesti -Quando cerchi di sfruttare un XSS la prima cosa che devi sapere è **dove il tuo input viene riflesso**. A seconda del contesto, sarai in grado di eseguire codice JS arbitrario in modi diversi. +Quando cerchi di sfruttare un XSS la prima cosa che devi sapere è **dove viene riflesso il tuo input**. A seconda del contesto, sarai in grado di eseguire codice JS arbitrario in modi diversi. ### HTML grezzo -Se il tuo input è **riflesso nell'HTML grezzo** della pagina dovrai abusare di qualche **tag HTML** per eseguire codice JS: `` è codificato o eliminato), a seconda del tag potresti **creare un evento** che esegue codice JS: `" autofocus onfocus=alert(1) x="` 3. Se **non puoi sfuggire dall'attributo** (`"` è codificato o eliminato), allora a seconda di **quale attributo** il tuo valore è riflesso in **se controlli tutto il valore o solo una parte** sarai in grado di abusarne. Per **esempio**, se controlli un evento come `onclick=` sarai in grado di farlo eseguire codice arbitrario quando viene cliccato. Un altro interessante **esempio** è l'attributo `href`, dove puoi usare il protocollo `javascript:` per eseguire codice arbitrario: **`href="javascript:alert(1)"`** -4. Se il tuo input è riflesso all'interno di "**tag non sfruttabili**" potresti provare il trucco **`accesskey`** per abusare della vulnerabilità (avrai bisogno di qualche tipo di ingegneria sociale per sfruttare questo): **`" accesskey="x" onclick="alert(1)" x="`** +4. Se il tuo input è riflesso all'interno di "**tag non sfruttabili**" potresti provare il trucco **`accesskey`** per abusare della vulnerabilità (avrai bisogno di qualche tipo di ingegneria sociale per sfruttarla): **`" accesskey="x" onclick="alert(1)" x="`** Esempio strano di Angular che esegue XSS se controlli un nome di classe: ```html @@ -106,7 +106,7 @@ Un buon modo per scoprire se qualcosa fornito direttamente dall'utente sta cerca Nel caso sia vulnerabile, potresti essere in grado di **attivare un avviso** semplicemente inviando il valore: **`?callback=alert(1)`**. Tuttavia, è molto comune che questi endpoint **validino il contenuto** per consentire solo lettere, numeri, punti e trattini bassi (**`[\w\._]`**). -Tuttavia, anche con questa limitazione è ancora possibile eseguire alcune azioni. Questo perché puoi utilizzare quei caratteri validi per **accedere a qualsiasi elemento nel DOM**: +Tuttavia, anche con quella limitazione è ancora possibile eseguire alcune azioni. Questo perché puoi utilizzare quei caratteri validi per **accedere a qualsiasi elemento nel DOM**: ![](<../../.gitbook/assets/image (747).png>) @@ -275,10 +275,10 @@ Se **non puoi uscire dal tag**, potresti creare nuovi attributi all'interno del ``` ### All'interno dell'attributo -Anche se **non puoi uscire dall'attributo** (`"` viene codificato o eliminato), a seconda di **quale attributo** il tuo valore viene riflesso in **se controlli tutto il valore o solo una parte** sarai in grado di abusarne. Per **esempio**, se controlli un evento come `onclick=` sarai in grado di farlo eseguire codice arbitrario quando viene cliccato.\ +Anche se **non puoi uscire dall'attributo** (`"` viene codificato o eliminato), a seconda di **quale attributo** il tuo valore viene riflesso **se controlli tutto il valore o solo una parte** sarai in grado di abusarne. Per **esempio**, se controlli un evento come `onclick=` sarai in grado di farlo eseguire codice arbitrario quando viene cliccato.\ Un altro **esempio** interessante è l'attributo `href`, dove puoi usare il protocollo `javascript:` per eseguire codice arbitrario: **`href="javascript:alert(1)"`** -**Bypass all'interno dell'evento usando la codifica HTML/URL encode** +**Bypass all'interno dell'evento usando la codifica HTML/codifica URL** I **caratteri codificati in HTML** all'interno del valore degli attributi dei tag HTML vengono **decodificati durante l'esecuzione**. Pertanto qualcosa come il seguente sarà valido (il payload è in grassetto): `Torna Indietro ` @@ -303,7 +303,7 @@ Nota che **qualsiasi tipo di codifica HTML è valido**: ```python Click ``` -**Bypass interno evento utilizzando la codifica Unicode** +**Bypass dell'evento interno utilizzando la codifica Unicode** ```javascript //For some reason you can use unicode to encode "alert" but not "(1)" @@ -359,7 +359,7 @@ _**In questo caso, il trucco di codifica HTML e il trucco di codifica Unicode de ```javascript ``` -Inoltre, c'è un altro **bel trucco** per questi casi: **Anche se il tuo input all'interno di `javascript:...` è codificato in URL, verrà decodificato in URL prima di essere eseguito.** Quindi, se hai bisogno di **uscire** dalla **stringa** usando un **apice singolo** e vedi che **è codificato in URL**, ricorda che **non importa,** verrà **interpretato** come un **apice singolo** durante il **tempo di esecuzione.** +Inoltre, c'è un altro **bel trucco** per questi casi: **Anche se il tuo input all'interno di `javascript:...` è codificato in URL, verrà decodificato in URL prima di essere eseguito.** Quindi, se hai bisogno di **uscire** dalla **stringa** usando un **apice singolo** e vedi che **è codificato in URL**, ricorda che **non importa,** verrà **interpretato** come un **apice singolo** durante il **tempo di esecuzione**. ```javascript '-alert(1)-' %27-alert(1)-%27 @@ -394,7 +394,7 @@ Se puoi iniettare qualsiasi URL in un arbitrario **` //No safari @@ -468,9 +468,9 @@ Ora puoi modificare il nostro link e portarlo alla forma Questo trucco è stato preso da [https://medium.com/@skavans\_/improving-the-impact-of-a-mouse-related-xss-with-styling-and-css-gadgets-b1e5dec2f703](https://medium.com/@skavans\_/improving-the-impact-of-a-mouse-related-xss-with-styling-and-css-gadgets-b1e5dec2f703) -## Iniettare all'interno del codice JavaScript +## Iniezione all'interno del codice JavaScript -In questo caso il tuo **input** verrà **riflesso all'interno del codice JS** di un file `.js` o tra i tag `` o tra eventi HTML che possono eseguire codice JS o tra attributi che accettano il protocollo `javascript:`. +In questo caso il **tuo input** verrà **riflesso all'interno del codice JS** di un file `.js` o tra i tag `` o tra eventi HTML che possono eseguire codice JS o tra attributi che accettano il protocollo `javascript:`. ### Escape del tag \
+
Se sei interessato a una **carriera nel hacking** e a hackare l'inhackabile - **stiamo assumendo!** (_richiesta di polacco fluente scritto e parlato_).