Guía de Hakluke para piratear sin Metasploit

0
16

 

Ah, el viejo nugget de sabiduría “intenta más duro”. Si se toma en el contexto correcto, es un lema para vivir. Desafortunadamente, la mayoría de las personas no lo toman en el contexto correcto. Nueve veces de cada diez, esta afirmación es arrojada por nubes de pedo egoístas en el IRC. En ese contexto, es degradante e inútil.

¿Cómo hackamos sin usar Metasploit? Podría decir “¡Intenta más!” Y terminar el artículo con un gif smarmy trollface, pero en su lugar, voy a compartir algunos (con suerte) consejos útiles y prácticos. Si está tomando la certificación OSCP en este momento, o está pensando en ello, este artículo es para usted.

El uso de Metasploit y otras herramientas similares está muy restringido en el (in) famoso examen OSCP. Hay una buena razón detrás de esto, obliga a los estudiantes a comprender cómo funciona realmente el exploit. Es una mierda en el momento, pero terminas con más conocimiento, que es la razón por la que estás haciendo OSCP en primer lugar, ¿verdad?

Para deshacernos de la dependencia de Metasploit, necesitamos alternativas y una comprensión más profunda de algunos conceptos clave. Al final de este artículo, mi padawan: conoce el camino, lo harás.

 

Conoce el camino, lo harás.
¿Para qué utilizamos Metasploit?
Antes de descubrir cómo no usar Metasploit, necesitamos tener una idea clara de para qué lo usamos en primer lugar. En el contexto de los laboratorios OSCP, esta es probablemente la forma más utilizada:

Encontrar exploits
Personalizar cargas útiles
Escalada de privilegios
Atrapando conchas inversas
Entonces, para no usar Metasploit, necesitamos alternativas para estas cosas. ¡Vamos a sumergirnos!

Encontrar exploits
La manera más rápida y fácil de hacerlo es mediante el uso de la herramienta incluida con Kali llamada “searchsploit”. Si aún no ha descubierto esta herramienta, un nuevo mundo de eficiencia está a punto de adornarse. Searchsploit simplemente busca en la base de datos de exploit-db las palabras clave que usted proporciona. Devolverá los exploits que se pueden usar en Metasploit y exploits de código independientes en varios idiomas.

La sintaxis es fácil de recordar:

searchsploit keyword1 keyword2 keyword3 ...

El resultado se ve así:


Resultado de Searchsploit
¿La mejor parte? Todos estos exploits ya están almacenados en su caja de Kali. Puede copiarlos fácilmente en su directorio actual ejecutando:

searchsploit -m [exploit database id]

Por ejemplo, para copiar el primer exploit en la lista de arriba:


Si searchsploit no puede encontrar ningún exploits jugoso, prueba con Google. Si Google falla, bueno, probablemente no haya un exploit público. ¡ESFORZARSE MÁS!

Trollface.gif

Personalizar cargas útiles
Si tiene mucha experiencia con Metasploit, probablemente ya esté familiarizado con el concepto de cargas útiles. La carga útil que establezca al usar un módulo Metasploit definirá lo que realmente hace el exploit en un intento de explotación exitoso. Por lo general, le gustaría que abra una sesión Meterpreter o un shell inverso para que pueda tomar el control del cuadro de víctimas.

Cuando elige una carga útil en Metasploit, es el equivalente a cambiar manualmente la carga en el código de explotación. Entonces, para reemplazar Metasploit aquí, todo lo que tenemos que hacer es cambiar la carga de forma manual. Esto a menudo significa que necesitamos generar algún Shellcode. ¿Cómo? Sigue leyendo!

Msfvenom
Msfvenom, afortunadamente, puede ser utilizado en el examen. Podemos usarlo para generar nuestra carga útil personalizada, que luego pondremos en nuestro exploit. Una advertencia: si está haciendo el examen OSCP, manténgase dentro de las cargas útiles de shell inversas estándar y no de las de Meterpreter. Meterpreter está prohibido en el examen OSCP.

La sintaxis básica para crear Shellcode es la siguiente:

msfvenom -p [payload] -f [format] LHOST=[your ip] LPORT=[your listener port]

Una vez que tengamos nuestro Shellcode, simplemente lo copiamos / pegamos en nuestro código de exploit para reemplazar la carga actual que está en el exploit.

Por ejemplo, si se trata de un exploit de desbordamiento de búfer que actualmente abre calc.exe (un PoC común entre exploits de Windows), editamos el código de ese exploit, reemplazando el shellcode calc.exe actual con el shellcode generado por msfvenom.

Aquí hay un ejemplo de msfvenom en acción. En este caso, estoy usando un shell inverso de TCP no evaluado, con el LHOST establecido en 1.2.3.4 y el LPORT configurado en 1234.

Carga útil escalonada VS no escalonada
Puede que no lo hayas notado, pero la mayoría de las cargas que usarás tienen un gemelo muy similar. Por ejemplo, tenga en cuenta la sutil diferencia entre “windows / shell_reverse_tcp” y “windows / shell / reverse_tcp”. El primero está sin escena, mientras que el segundo está organizado. Verá la misma convención de nomenclatura con muchas otras cargas útiles también.

¿Cuál es la diferencia entre etapas y sin escenario? Si usa una carga útil no configurada, la carga útil completa se envía de un golpe y se ejecuta en la máquina objetivo. Esto significa que puedes atrapar el caparazón con un simple escucha de netcat y funcionará bien. Si está utilizando una carga útil por etapas, necesita utilizar un controlador múltiple Metasploit para atrapar el caparazón (¡por cierto, esto está permitido en el examen!). Si intentas usar un oyente netcat para atrapar el caparazón, la conexión se recibirá y luego morirá instantáneamente. Las cargas útiles escalonadas son una carga útil inicial más pequeña que luego descarga la carga útil completa del controlador Metasploit en su caja local. Son geniales si no tienes mucho espacio para el exploit. ¿Cuál deberías usar? Tu decides. En el mundo temperamental de desbordamientos de búfer, a veces uno funcionará mientras que el otro no, por lo que es bueno tener ambos en tu bolsa de trucos.

¿Otras opciones de MSFVenom?
Hay muchas otras opciones para hundir los dientes, pero están fuera del alcance de este artículo. Aquí hay una pequeña lista de las más comunes que probablemente utilizará y que aún no se han cubierto:

-e le permitirá elegir un codificador, el más común de los cuales es x86 \ shikata_ga_nai. Esto es genial para evitar malos personajes y evadir AV … Aunque, este último ya no es tan cierto.
-b le permite establecer caracteres incorrectos. Los malos caracteres para un exploit específico a menudo se revelan en el código de explotación pública en sí.
– list (eso es dos guiones) listará las cargas y los formatos, por ejemplo, si quiere ver una lista de todas las cargas posibles, ejecute msfvenom –list payloads
Escalada de privilegios
A veces, la escalada de privilegios con Metasploit es tan fácil como 1, 2, get_system. Desafortunadamente, sin Metasploit, generalmente no es tan fácil. Permítanme comenzar diciendo que este es un gran tema. Demasiado grande para mi humilde artículo, pero voy a proporcionar un pequeño manual aquí y tratar de apuntar en la dirección correcta.

En primer lugar, ningún consejo privesc de Windows estaría completo sin una referencia al legendario artículo “FuzzySecurity Windows Privilege Escalation”. ¡Cubre muy bien los fundamentos del Windows manual de Windows!

En segundo lugar, los exploits de Windows pueden ser molestos para compilarse en un sistema Linux. Si confías, puedes descargar exploits pre compilados de repositorios de Github como este.

En tercer lugar, ese mismo repositorio viene con una buena hoja de cálculo que puede ayudarte a identificar qué exploits son los más propensos a funcionar. Puedes descargarlo aquí.

Atrapando conchas inversas
La buena noticia es que este proceso no cambia mucho en OSCP. La principal diferencia es que no puedes usar Meterpreter. ¿Cómo podemos evitar esto? Simplemente use cargas de shell inversas planas en su lugar.

La última vez que lo verifiqué, puedes usar exploit / multi / handler en Metasploit para capturar proyectiles. Sin embargo, esto no tiene mucha ventaja sobre el uso de un viejo oyente de netcat, ya que no se pueden usar las otras características de Meterpreter o Metasploit. La única excepción es si está utilizando un exploit que tiene un espacio restrictivo para una carga útil, en cuyo caso, es posible que deba usar una carga útil por etapas.

Recordatorio: ¡las cargas útiles escalonadas no funcionan con netcat! Debe usar el módulo exploit / multi / handler de Metasploit.
Si decide ir a la ruta de Netcat, simplemente inicie un oyente usando la siguiente sintaxis.

nc -nvlp [port number]

Dejar respuesta

Please enter your comment!
Please enter your name here