Cómo alquilé OSCP



Mis colegas y yo tomamos el curso OSCP y aprobamos el examen. En este artículo describiré en detalle cómo se aprueba el examen, cuáles son las dificultades y si el juego vale la pena.

Cómo todo empezó


Mi colega c4nHace dos años dijo que deberíamos aprobar el OSCP y acepté, pero como suele ser el caso con buenas ideas, anotamos postergar esta buena idea.

Un año después, nuestra empresa tuvo la oportunidad de recibir capacitación gratuita sobre cosas útiles para los empleados (por desgracia, mi comprensión no coincide con la administración y los cursos de sumiller todavía se niegan a pagarme). Por la gloriosa empresa de aprobar OSCP tiradoGolovnyaD, dijo que nuestras excusas sobre el empleo son más o menos y que debemos proceder.

Y empezamos.

¿Qué sabíamos sobre OSCP?


Sabíamos que OSCP consta, de hecho, de 3 partes: material teórico (en adelante lo llamaré pdf), acceso a un laboratorio con máquinas virtuales (en adelante llamaré laboratorio) y un examen.

El comienzo del camino


Al final resultó que, el acceso al laboratorio se puede comprar por 30, 60 o 90 días, cuesta $ 999, $ 1199, $ 1349. Como no queríamos dedicar todo nuestro tiempo libre solo a OSCP, y la diferencia entre 30 días y 90 es solo $ 350), elegimos el acceso por 90 días.

El 9 de octubre de 2019, pagué el curso, esperando divertirme durante 3 meses, qué equivocado estaba, me divertí durante 5 meses. Y he aquí por qué: la

primera configuración: no puedes comenzar a entrenar mañana. En mi caso, la fecha de inicio más cercana fue el 20 de octubre (como dicen en los foros, el tiempo promedio para comenzar después del pago es de 2 semanas).

Luego, el 9 de octubre, enviaron un paquete de prueba (Paquete de conectividad) para conectarse a una VPN. A juzgar por sus pruebas, no tuve problemas con la conexión VPN (resultó que tenían una llamada prueba, te lo diré más adelante). Luego enviaron un enlace a su asamblea Kali (en apariencia no es diferente de lo habitual), que está especialmente preparado para el pasaje.

Inicio del curso


Formalmente, el curso comenzó a las 3:00 a.m. del 20 de octubre, pero una carta con los materiales del curso llegó a las 03:09 (noté esta discrepancia solo ahora cuando estaba escribiendo el artículo). La carta con los materiales del curso contiene enlaces a:

  • 380 páginas pdfku
  • video de este pdfk
  • Paquete de conectividad VPN

Y aquí nos enfrentamos a una segunda configuración: los enlaces de descarga son válidos por 72 horas y si no tuvieron tiempo de descargar, pedirán $ 100 adicionales, después de lo cual dicen cuidadosamente hacer una copia de seguridad e insertar una broma: " Recuerde el sabio dicho:" Hay dos tipos de personas. Aquellos que respaldan y aquellos que aún tienen que perder todo por un bloqueo del sistema. »
Además, en todos los foros se recomienda comenzar el curso con las tareas de pdfk. Todos hicimos eso.

Tareas desde PDF


Deben realizarse tareas de pdfk para aprender nuevas herramientas y técnicas, recordar cómo usar las herramientas y, posiblemente, obtener 5 puntos adicionales en el examen. De lo sorprendente: en pdfk no hay una palabra sobre Burp Suite y PowerShell Empire (debería haberse agregado en la actualización de febrero).

conduce su historia desde lo básico: nos enseñan a google, usar nc.exe (netcat), tcpdump y wireshark y otras herramientas que tienen más probabilidades de estar relacionadas con la ingeniería de sistemas, en lugar de la seguridad. ¡Solo en la página 113 de 380 nos familiarizamos con nmap!

También se nos enseña a usar herramientas como OpenVAS, que no se pueden usar en el examen. Además, los ejemplos a menudo usan meterpreter, que también está prohibido (solo se puede usar en una máquina). En general, todavía no entendía qué causó esta prohibición en meterpreter a medida que avanzaba, está claro que puede prohibir aumentarlo con él, pero sería conveniente mantener la marcha atrás con varias consolas.

Se vuelve interesante desde la página 148 donde comienza el desbordamiento del búfer, y aquí capté el problema con la conexión VPN. Al final resultó que, mi ISP mata el tamaño de los paquetes, y la VPN en el laboratorio se construye utilizando UDP y mis paquetes con desbordamientos de búfer simplemente no se arrastraron y desaparecieron. La solución es simple: arregle la configuración agregando las líneas:

tun-mtu 1492
mssfix 1370

Pero es muy lamentable que los organizadores del OSCP no realicen tales controles, porque en su foro muchos se quejan. Perdí 5 horas y muchos nervios sobre esto (alcancé la solución yo mismo, luego encontré un montón de ramas en el foro sobre esto).

Para escribir desbordamientos de búfer y hacer todo tipo de experimentos con Windows, nos dan una máquina virtual dentro del laboratorio, esto es bastante conveniente. Durante todo el curso, no instalé una sola máquina virtual propia (una vez que intenté instalar Windows XP SP2, pero no encontré un torrente que funcionara).

En general, las tareas para desbordamientos de búfer están muy bien escritas (tanto para Windows como para Linux), sería genial hacerlo en pasos, enseñados en universidades. El curso OSCP obviamente dice que eludir DEP y ASLR no está incluido en el curso.

Luego nos dicen cómo preparar exploits, transferir archivos, hablar sobre la escalada de privilegios, pero con eso todavía jugamos lo suficiente en el laboratorio, así que está bien.

Luego viene un bloque dedicado a los ataques a los usuarios (ataques del lado del cliente), donde detecté un problema con una máquina Kali "especialmente preparada", tenía una versión más nueva de Java y mi Java Appet no funcionaba en una máquina de prueba. Otras 5 horas de buscar en Google y resolver el problema por su cuenta y, por supuesto, hay un hilo en el foro sobre esto)

En general, todo se puede encontrar en el foro, este es un lugar muy útil si está atrapado en un callejón sin salida, pero entendí esto solo al final del curso.

Luego vienen los ataques en la web: inyección XSS, LFI, RFI, SQL y más. Está escrito claramente y bien, da ejemplos de hurgar. Hablan sobre sqlmap, que tampoco se puede usar en el examen, pero, por supuesto, es útil saberlo.

Otros ataques a las contraseñas (fuerza bruta y obtención de hashes para Windows y Linux) son muy extensos para mí, dejé algunas de las tareas para más adelante (y las hice ya dentro del laboratorio). Al final hay una historia sobre el metasplit y cómo usarlo, en gran detalle, escribiendo su propio módulo. También proporciona un ejemplo de piratería en una empresa ficticia que utiliza muchas de las técnicas descritas (toma 34 páginas).

En general, de todos los archivos PDF en el caso de 100 páginas (y hay una gran cantidad de capturas de pantalla). Me llevó 2 semanas leerlo y completar las tareas (pero no tenía prisa).

- , , , .


Al resolver el laboratorio, se decidió no utilizar Metasploit y Meterpreter, porque no se pueden usar (solo es posible una vez) en el examen.

Laba consta de aproximadamente 60 máquinas virtuales, todas las máquinas se dividen en 4 subredes (red pública, red de desarrolladores, red de departamentos de TI, red de administradores). Inicialmente, el acceso es solo en la red pública (de hecho, el acceso está en todas las redes, simplemente no podemos revertir las máquinas desde una red no pública). En el laboratorio (escribo sobre eventos antes de la actualización de febrero), todas las máquinas son bastante antiguas, la más reciente de Windows es Windows Server 2012R2 (bastante Windows XP), las máquinas Linux son Ubuntu 14 (Ubuntu 8 también estaban en el laboratorio), Centos 7 (Centos 5 también se reunió )

En teoría, todo el laboratorio debería resolverse utilizando vulnerabilidades publicadas antes de 2016, pero no me impuse tales restricciones.

Laba (el acceso no privilegiado estaba activado)


En general, el pozo de laboratorio corresponde a lo indicado en pdfk. En términos de obtener acceso sin privilegios, debe utilizar varias técnicas (incluidos los ataques a los clientes), recopilar contraseñas de máquinas dañadas y reutilizarlas, lanzar brutos, etc. Probablemente el peor tema es la inyección SQL y la inyección ciega, nunca antes se habían visto.

El algoritmo para la inicialización del acceso fue a todas partes como en la vida:

  1. Enumeración de puertos y servicios.
  2. directorios brutos para la web
  3. definiendo productos y versiones
  4. explotar búsqueda y modificación

Un par de máquinas requieren escribir sus propios exploits con una caja negra, pero nada complicado: LFI / RFI. Sobre todo, me complació que casi no hay autos de la categoría CTF, donde hay una imagen dentro de la cual todavía hay una imagen, dentro de la cual se oculta un archivo zip, etc.

Laba (escalada de privilegios)


Para mí fue la parte más interesante y me llevó la mayor parte del tiempo (al principio).

Ventanas


Para las máquinas con Windows, utilicé estos conjuntos de divisiones,

pero en algunas máquinas con Windows todas las vulnerabilidades del "núcleo" fueron parcheadas especialmente y tuve que descubrir cómo levantarme. Hay autos para todos los gustos, servicios, startups, tareas programadas, software instalado. El software instalado es, por supuesto, un gran fracaso, porque es obvio que los autos están preparados y si solo hay una aplicación instalada en el sistema, entonces puedes escalarlo.

Linux


Para Linux, por supuesto, siempre puedes usar vulnerabilidades del kernel, la querida y sucia vaca de todos trabaja en la mitad de las máquinas, utilicé esta versión , aunque se cuelga en casi todas las máquinas en el laboratorio, crea con éxito un usuario con acceso ssh.

Pero en casi cualquier lugar donde pueda superar las vulnerabilidades en la configuración, LinEnum lo ayuda aquí , y para la enumeración perezosa de linux-smart

En general, no vale la pena abusar de las vulnerabilidades del kernel en el laboratorio, si desea prepararse para el examen, es mejor usar vulnerabilidades de configuración, porque Todas las máquinas en el examen serán con núcleos nuevos y actualizaciones instaladas (al menos las obtuve).

Postexplotación en el laboratorio


Dejé parte de la explotación posterior para más adelante, pero después de recopilar todas las contraseñas y ver todas las bases de datos, archivos de configuración y registros, puede acceder fácilmente a muchas máquinas (especialmente en una red no pública).

Muchas máquinas rompen la cadena, es importante entender esto, especialmente para los ataques a los clientes, si el automóvil se llama correo, entonces tal vez alguien se aferrará a él como un cliente de correo electrónico), y si HELPDESK, entonces abre los boletos.

Los cuatro grandes


Hay 4 autos en el laboratorio que se consideran los más complejos y algunos recomiendan dejarlos al final, estos son: Pain, Sufferance, Gh0st y Humble. Sabía de su presencia desde el principio, pero no me escapé específicamente de ellos ni los busqué. Para cuando decidí volver con ellos, dos de los cuatro que ya había roto.

Mi impresión de ellos:

  • El dolor es un auto genial, complicado tanto para obtener la cáscara de inicialización como para elevar.
  • Sufrimiento: una caminata de inicialización compleja, en varias etapas, obtuve algo similar en el examen. Impulso simple
  • Gh0st: el comienzo y la inicialización fueron como máquinas CTF, pero una de las mejoras más bellas de todo el laboratorio.
  • Humilde: posiblemente la caminata de inicialización más compleja en el laboratorio, pero un impulso simple.

En general, estos son autos geniales, y estoy casi seguro de que si los rompió en su laboratorio, pasará el examen sin ningún problema, rompí el Humble uno más de lo que hice el examen.

Mi top incluiría:

  • Sherlock: la prueba resulta en un par de minutos, y puede sentarse durante mucho tiempo para obtener un reverso.
  • beta es una máquina muy vital, tanto para obtener acceso primario como para actualizaciones (bash limitado).

Resultados de laboratorio


En general, el laboratorio causó una buena impresión, rompí todos los autos que llevé (unos 45 autos).

En general, recordé muchas cosas que no se usan con frecuencia.

Preparación para el examen


Unos días antes del final del acceso al laboratorio, decidí que era hora de inscribirse en el examen. Aquí me equivoqué, es mejor hacer esto por adelantado. La fecha más cercana en el día libre fue solo un mes después, el 23 de febrero (y luego a las 9 a.m.).

La conclusión y la configuración son tres: si desea realizar el examen en un momento conveniente e inscribirse con anticipación para el fin de semana.

También comencé a escribir un informe en el laboratorio (necesito describir 10 autos, si quieres obtener 5 puntos extra), el ejemplo estándar del informe es demasiado inteligente, así que comencé a usar este. Para una descripción detallada, elegí autos interesantes o casos en los que obtienes la raíz de inmediato.

Necesitaba tomar 10-15 capturas de pantalla adicionales, por lo que recomiendo tener acceso al laboratorio mientras escribo este informe.

Preparación para el examen. Formación. Binarismo


En el examen, uno de los componentes es escribir un exploit para desbordar el búfer, da 25 puntos y, al no saber cómo hacerlo rápido y bien, ir al examen no tiene mucho sentido, vale la pena echarle una mano.

Las buenas personas ya han creado un conjunto de software para practicar.

Decidí alrededor de 7 piezas, y si pasé 2 horas en la primera, entonces decidí la séptima en 20 minutos, de hecho, con la velocidad de escribir código e ingresar comandos. Un algoritmo que no me falló:

  1. estamos escalonando la caída con las letras A (en el examen, este paso ya estará hecho para nosotros)
  2. buscando desplazamiento, estándar a través de pattern_create.rb y pattern_offset.rb
  3. verifique la longitud, cambie de forma estándar A a B en el lugar correcto, y después de B inserte una gran cantidad de C para ver el tamaño posible de la carga útil sin saltar a nuestro búfer
  4. ( \x00, 99% )
  5. “jmp esp” ( , )
  6. ,
  7. ( 20 — \x90)

. .


En uno de los vraytaps del procedimiento de exámenes , encontré esta imagen:



esta imagen muestra qué autos en hackthebox.eu se ven como autos del examen (el auto de mierda no se parece en absoluto, recomiendo no entrenarlo). Para activar las carretillas, se requiere una suscripción paga (10 dólares por mes, no olvide cancelarla de inmediato ).

Pasé 8 horas y me decidí por 10 máquinas, alternando entre Windows y Linux. Y decidió que es suficiente para mí, pero, probablemente, aquí, como con el desbordamiento del búfer, es necesario llevar al automatismo. Estos autos son más simples que los autos en el examen, al menos en términos de escalada de privilegios (algunas copias de autos del laboratorio, no sé a quién me prestaron).

Preparación para el examen. Formación. Escalada de privilegios


Puede entrenar en las mismas máquinas con hackthebox.eu, pero en general será suficiente leer vraytapy para comprender qué técnicas hay, hay ejemplos de todas las técnicas que pueden resultarle útiles en el examen.

Preparación para el examen. Parte organizacional


Para aprobar el examen necesitarás:

  1. pasaporte extranjero (su nombre y apellido deben estar escritos en inglés)
  2. Cámara web
  3. internet estable

Es bueno tener extra:

  1. Internet de respaldo (utilicé el móvil)
  2. una computadora de repuesto (tenía una computadora portátil de repuesto a mi lado que estaba completamente configurada para tomar un examen)
  3. Instantánea de VM con Kali
  4. copia de VM con Kali (puse una copia en el disco duro, la segunda en el disco duro externo)

¡Examen!


El examen se considera a tiempo completo (examen supervisado), por lo que comienza 15 minutos antes de la hora seleccionada. Te conectas a una plataforma web especial, revisas tus pantallas, en un chat de texto comienzan a hacerte tareas y preguntas:

  1. mostrar pasaporte por webcam
  2. muestra que no hay nadie en la habitación
  3. dar resultados de script de prueba para la conexión

Luego tuve un archivo y cuando intenté copiar un nuevo paquete de usuario final a una máquina virtual con Kali, se cayó. Estaba listo para esto, hice retroceder la máquina virtual, copié el paquete, lo lancé y comencé a esperar a las 9 de la mañana.

Tengo acceso a las 9:01.

Tenía un plan de acción simple:

  1. iniciar numeración de servicios
  2. hacer un auto para el desbordamiento del buffer en 1 hora
  3. hacer un auto por 10 puntos en 1 hora
  4. hacer el primer auto por 20 puntos en 2 horas
  5. hacer un segundo auto por 20 puntos en 2 horas
  6. hacer un auto por 25 puntos en 3 horas

Como puede ver en mi plan, me tomó 9 horas aprobar el examen, pero no fue según el plan desde el principio :) Olvidé tener en cuenta un factor inhibitorio importante: anotar en pasos todo lo que se hizo con todas las capturas de pantalla para el informe.

El resultado final que obtuve es el siguiente:

  1. desbordamiento del búfer - 2.5 horas. Perdí una hora porque no noté un par de caracteres malos, otros 30 minutos para informes
  2. coche en 10-30 minutos: pirateo de 10 minutos, capturas de pantalla de 20 minutos
  3. primer auto en 20 - 2.5 horas: 1.5 horas de pirateo, 40 minutos de capturas de pantalla e informes, 20 minutos de descanso
  4. segundo auto en 20 - 2 horas: 1.5 horas de pirateo, 30 minutos de capturas de pantalla e informes.
  5. coche durante 25 - 3.5 horas: 3 horas de pirateo (con dos descansos), capturas de pantalla de 30 minutos e informe

En general, el examen es mucho más interesante que los laboratorios, las vulnerabilidades son bastante recientes: 2018-2019. Las mejoras no están en todas partes a través de las vulnerabilidades del kernel.

Estuve sentado por mucho tiempo, esperando la escalada de privilegios, todos los proyectiles no privilegiados fueron recibidos en 10-30 minutos.

El examen ha hecho muchos caminos falsos que no conducirán al éxito. Si todo se descarta fácilmente para el shell de inicialización (por ejemplo, un exploit para el desbordamiento del búfer en Windows XP SP2, aunque el servicio en sí se ejecuta en Windows 10), en la actualización me quedé atrapado en estas rutas falsas un par de veces. Lo principal aquí es decirse a tiempo que vale la pena cambiar este vector y elegir uno nuevo.

Después de 11 horas, terminé el examen, rompiendo todo y fui a tomar un par de pintas de cerveza (solo un par, ya que al día siguiente todavía tenemos que escribir un hermoso informe formal).

Escribir y enviar un informe.


Tomé la plantilla del mismo repositorio donde estaba la plantilla para los laboratorios y la llené en 4 horas.

Luego comenzó la diversión con dónde enviarla y cómo. Primero debe cifrarlo usando 7z con una contraseña, la contraseña no es aleatoria y su ID está en el sistema (5 dígitos, vuela en 0.3 segundos en la CPU). Luego busqué información durante mucho tiempo donde colocar el informe en el laboratorio en el mismo archivo o en otro (Respuesta: debe ponerlo en el mismo archivo). Luego me encontré con el hecho de que el formato para establecer la contraseña en el archivo 7z, la bandera -p, después de lo cual la contraseña debe escribirse juntos, es decir algo como -pPassword. De hecho, todos los pasos se describen en la guía , solo necesita poder buscarlos.

El archivo resultante debe cargarse en el sitio, obtener un enlace y enviar este enlace a un correo especial. Por qué tales dificultades en 2020 es un misterio para mí.

Después de un par de horas, recibirá una carta de respuesta que: “Recibimos su enlace, pero no verificamos que tenga un archivo normal, que esté descifrado y que contenga los datos necesarios. Y que informaremos los resultados del examen dentro de los 10 días hábiles ".

Total


Exactamente una semana después del examen, el domingo 1 de marzo, recibí una carta alegre que había compilado el archivo correctamente:



después de eso llené los datos para enviarme un certificado físico y una tarjeta de certificación OSCP.

¿Quién necesita esta certificación?


Obtuve la siguiente lista (ordenada por el significado del recibo y los requisitos de este certificado):

  1. Estudiantes de 4-5 años. Para ellos, esta es una práctica muy buena.
  2. aquellos que decidieron pasar a la seguridad de las industrias relacionadas. Todo se describe a un buen nivel, muchos ejemplos, hay algo que aprender.
  3. empleador. El certificado muestra que una persona sabe algo y sabe cómo hacer algo con sus manos (en nuestras vacantes indicamos esto como un plus).
  4. personas en la industria que desean actualizar / probar sus conocimientos
  5. Pentestros experimentados. Quizás una hermosa corteza les permita volverse más interesantes para los empleadores.

Planes adicionales para pasar OSWE (experto en la web de seguridad ofensiva). En cuanto a mí, él es más interesante que el OSCE (experto certificado en seguridad ofensiva). Y para aquellos que estén interesados ​​en leer sobre los diversos tipos de certificación en el campo de la seguridad de la información, escribimos un artículo separado .

All Articles