# Metodología de Pentesting {{#include ../banners/hacktricks-training.md}} ## Metodología de Pentesting
_Los logotipos de Hacktricks fueron diseñados por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ ### 0- Ataques Físicos ¿Tienes **acceso físico** a la máquina que deseas atacar? Deberías leer algunos [**trucos sobre ataques físicos**](../hardware-physical-access/physical-attacks.md) y otros sobre [**escapar de aplicaciones GUI**](../hardware-physical-access/escaping-from-gui-applications.md). ### 1 - [Descubriendo hosts dentro de la red](pentesting-network/index.html#discovering-hosts)/ [Descubriendo Activos de la empresa](external-recon-methodology/index.html) **Dependiendo** si la **prueba** que estás realizando es una **prueba interna o externa**, puede que te interese encontrar **hosts dentro de la red de la empresa** (prueba interna) o **encontrar activos de la empresa en internet** (prueba externa). > [!NOTE] > Ten en cuenta que si estás realizando una prueba externa, una vez que logres obtener acceso a la red interna de la empresa, deberías reiniciar esta guía. ### **2-** [**Divirtiéndote con la red**](pentesting-network/index.html) **(Interna)** **Esta sección solo se aplica si estás realizando una prueba interna.**\ Antes de atacar un host, tal vez prefieras **robar algunas credenciales** **de la red** o **snifar** algunos **datos** para aprender **pasivamente/activamente (MitM)** qué puedes encontrar dentro de la red. Puedes leer [**Pentesting Network**](pentesting-network/index.html#sniffing). ### 3- [Escaneo de Puertos - Descubrimiento de servicios](pentesting-network/index.html#scanning-hosts) Lo primero que debes hacer al **buscar vulnerabilidades en un host** es saber qué **servicios están corriendo** en qué puertos. Veamos las [**herramientas básicas para escanear puertos de hosts**](pentesting-network/index.html#scanning-hosts). ### **4-** [Buscando exploits de versiones de servicio](../generic-hacking/search-exploits.md) Una vez que sepas qué servicios están corriendo, y tal vez su versión, debes **buscar vulnerabilidades conocidas**. Tal vez tengas suerte y haya un exploit que te dé una shell... ### **5-** Servicios de Pentesting Si no hay ningún exploit interesante para algún servicio en ejecución, deberías buscar **configuraciones incorrectas comunes en cada servicio en ejecución.** **Dentro de este libro encontrarás una guía para pentestear los servicios más comunes** (y otros que no son tan comunes)**. Por favor, busca en el índice de la izquierda la sección _**PENTESTING**_ **(los servicios están ordenados por sus puertos predeterminados).** **Quiero hacer una mención especial a la parte de** [**Pentesting Web**](../network-services-pentesting/pentesting-web/index.html) **(ya que es la más extensa).**\ Además, aquí puedes encontrar una pequeña guía sobre cómo [**encontrar vulnerabilidades conocidas en software**](../generic-hacking/search-exploits.md). **Si tu servicio no está en el índice, busca en Google** otros tutoriales y **déjame saber si quieres que lo agregue.** Si **no puedes encontrar nada** en Google, realiza tu **propio pentesting ciego**, podrías comenzar por **conectarte al servicio, fuzzing y leyendo las respuestas** (si las hay). #### 5.1 Herramientas Automáticas También hay varias herramientas que pueden realizar **evaluaciones automáticas de vulnerabilidades**. **Te recomendaría probar** [**Legion**](https://github.com/carlospolop/legion)**, que es la herramienta que he creado y se basa en las notas sobre pentesting de servicios que puedes encontrar en este libro.** #### **5.2 Fuerza Bruta en servicios** En algunos escenarios, una **Fuerza Bruta** podría ser útil para **comprometer** un **servicio**. [**Encuentra aquí una CheatSheet de diferentes servicios de fuerza bruta**](../generic-hacking/brute-force.md)**.** ### 6- [Phishing](phishing-methodology/index.html) Si en este punto no has encontrado ninguna vulnerabilidad interesante, **puedes necesitar intentar algún phishing** para entrar en la red. Puedes leer mi metodología de phishing [aquí](phishing-methodology/index.html): ### **7-** [**Obteniendo Shell**](../generic-hacking/reverse-shells/index.html) De alguna manera deberías haber encontrado **alguna forma de ejecutar código** en la víctima. Entonces, [una lista de posibles herramientas dentro del sistema que puedes usar para obtener una shell inversa sería muy útil](../generic-hacking/reverse-shells/index.html). Especialmente en Windows, podrías necesitar ayuda para **evitar antivirus**: [**Consulta esta página**](../windows-hardening/av-bypass.md)**.**\\ ### 8- Dentro Si tienes problemas con la shell, aquí puedes encontrar una pequeña **compilación de los comandos más útiles** para pentesters: - [**Linux**](../linux-hardening/useful-linux-commands.md) - [**Windows (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md) - [**Windows (PS)**](../windows-hardening/basic-powershell-for-pentesters/index.html) ### **9 -** [**Exfiltración**](../generic-hacking/exfiltration.md) Probablemente necesitarás **extraer algunos datos de la víctima** o incluso **introducir algo** (como scripts de escalada de privilegios). **Aquí tienes un** [**post sobre herramientas comunes que puedes usar con estos propósitos**](../generic-hacking/exfiltration.md)**.** ### **10- Escalada de Privilegios** #### **10.1- Privesc Local** Si no eres **root/Administrador** dentro de la máquina, deberías encontrar una manera de **escalar privilegios.**\ Aquí puedes encontrar una **guía para escalar privilegios localmente en** [**Linux**](../linux-hardening/privilege-escalation/index.html) **y en** [**Windows**](../windows-hardening/windows-local-privilege-escalation/index.html)**.**\ También deberías revisar estas páginas sobre cómo funciona **Windows**: - [**Autenticación, Credenciales, Privilegios de Token y UAC**](../windows-hardening/authentication-credentials-uac-and-efs/index.html) - Cómo funciona [**NTLM**](../windows-hardening/ntlm/index.html) - Cómo [**robar credenciales**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) en Windows - Algunos trucos sobre [_**Active Directory**_](../windows-hardening/active-directory-methodology/index.html) **No olvides revisar las mejores herramientas para enumerar rutas de Escalación de Privilegios locales en Windows y Linux:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) #### **10.2- Privesc de Dominio** Aquí puedes encontrar una [**metodología que explica las acciones más comunes para enumerar, escalar privilegios y persistir en un Active Directory**](../windows-hardening/active-directory-methodology/index.html). Aunque esto es solo una subsección de una sección, este proceso podría ser **extremadamente delicado** en una asignación de Pentesting/Red Team. ### 11 - POST #### **11**.1 - Saqueo Verifica si puedes encontrar más **contraseñas** dentro del host o si tienes **acceso a otras máquinas** con los **privilegios** de tu **usuario**.\ Encuentra aquí diferentes formas de [**extraer contraseñas en Windows**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md). #### 11.2 - Persistencia **Usa 2 o 3 tipos diferentes de mecanismos de persistencia para que no necesites explotar el sistema nuevamente.**\ **Aquí puedes encontrar algunos** [**trucos de persistencia en active directory**](../windows-hardening/active-directory-methodology/index.html#persistence)**.** TODO: Completar persistencia Post en Windows y Linux ### 12 - Pivoting Con las **credenciales recopiladas** podrías tener acceso a otras máquinas, o tal vez necesites **descubrir y escanear nuevos hosts** (comenzar la Metodología de Pentesting nuevamente) dentro de nuevas redes donde tu víctima está conectada.\ En este caso, el tunneling podría ser necesario. Aquí puedes encontrar [**un post que habla sobre tunneling**](../generic-hacking/tunneling-and-port-forwarding.md).\ Definitivamente también deberías revisar el post sobre [Metodología de pentesting de Active Directory](../windows-hardening/active-directory-methodology/index.html). Allí encontrarás trucos interesantes para moverte lateralmente, escalar privilegios y extraer credenciales.\ Consulta también la página sobre [**NTLM**](../windows-hardening/ntlm/index.html), podría ser muy útil para pivotar en entornos de Windows. ### MÁS #### [Aplicaciones Android](../mobile-pentesting/android-app-pentesting/index.html) #### **Explotación** - [**Explotación Básica en Linux**](broken-reference/index.html) - [**Explotación Básica en Windows**](../binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md) - [**Herramientas básicas de explotación**](../binary-exploitation/basic-stack-binary-exploitation-methodology/tools/index.html) #### [**Python Básico**](python/index.html) #### **Trucos de Cripto** - [**ECB**](../crypto-and-stego/electronic-code-book-ecb.md) - [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md) - [**Padding Oracle**](../crypto-and-stego/padding-oracle-priv.md) {{#include ../banners/hacktricks-training.md}}