Pentesting Methodology
Si estás interesado en una carrera de hacking y hackear lo inhackeable - ¡estamos contratando! (se requiere polaco fluido escrito y hablado).
Metodología de Pentesting
Los logos de Hacktricks fueron diseñados por @ppiernacho.
0- Ataques Físicos
¿Tienes acceso físico a la máquina que deseas atacar? Deberías leer algunos trucos sobre ataques físicos y otros sobre escapar de aplicaciones GUI.
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).
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 (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 esnifar algunos datos para aprender pasivamente/activamente (MitM) qué puedes encontrar dentro de la red. Puedes leer Pentesting Network.
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.
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 izquierdo la SECCIÓN DE PENTESTING (los servicios están ordenados por sus puertos predeterminados).
Quiero hacer una mención especial a la Pentesting Web parte (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.
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, 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 para fuerza bruta.
6- Phishing
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í:
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.
Especialmente en Windows, podrías necesitar ayuda para evitar antivirus: Revisa esta página.\
8- Dentro
Si tienes problemas con la shell, aquí puedes encontrar una pequeña compilación de los comandos más útiles para pentesters:
9 - Exfiltración
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.
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 y en Windows. También deberías revisar estas páginas sobre cómo funciona Windows:
Cómo funciona NTLM
Cómo robar credenciales en Windows
Algunos trucos sobre Active Directory
No olvides revisar las mejores herramientas para enumerar rutas de Escalación de Privilegios locales en Windows y Linux: Suite PEAS
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. 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.
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.
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. Definitivamente también deberías revisar el post sobre Metodología de pentesting de Active Directory. Allí encontrarás trucos interesantes para moverte lateralmente, escalar privilegios y extraer credenciales. Revisa también la página sobre NTLM, podría ser muy útil para pivotar en entornos de Windows.
MÁS
Explotación
Trucos de Cripto
Si estás interesado en una carrera de hacking y hackear lo inhackeable - ¡estamos contratando! (se requiere polaco fluido escrito y hablado).
Last updated