¿Qué es exactamente CTF y cómo puedo como programador prepararme para un CTF con personas amigables con los principiantes?

76

Me acerqué a un viejo amigo mío que era un excelente programador en mis días escolares y me invitó a asistir a uno de los eventos de CTF con su grupo universitario.

Este grupo parece ser muy amigable para los principiantes y abierto a todos, pero aún temo que no tengo suficiente conocimiento en el campo de la seguridad para poder participar. Así que me gustaría prepararme un poco para eso, averiguar exactamente qué es esto y qué puedo hacer para mejorar a un nivel básico. La investigación en Internet me dio una idea muy vaga de lo que es un CTF.

Lo que ya tengo es conocimiento básico e intermedio en algunos lenguajes de programación, incluyendo C #, PHP / Javascript / etc (básico), C (muy básico), Java. No sé si esto es de alguna utilidad, pero pensé que no puede doler.

¿Qué es exactamente un CTF y cómo puedo, como principiante total, prepararme para un evento CTF por mi cuenta?

    
pregunta MansNotHot 04.09.2018 - 09:10
fuente

4 respuestas

82

Los CTF (Capture The Flag) son como cursos dentro de juegos. Algunos sitios web facilitan el aprendizaje de cuerdas, con desafíos simples de dificultad creciente. Por ejemplo, enlace le enseñará cómo usar las herramientas (volcado Hex, vi, incluso el propio terminal) con cada desafío.

El objetivo principal generalmente es encontrar algún código, ya sea incrustado en un archivo (stegano), oculto en un archivo dentro de un servidor donde deberá abusar de una vulnerabilidad conocida (CTF normales), o incluso explotar el código fuente de un programa para encontrar una contraseña secreta (inversión).

Al igual que cualquier desafío de programación, tómese su tiempo, aprenda las herramientas y no tenga miedo de buscar ayuda o redacciones (obviamente no en el CTF que está tratando de lograr), pero pueden proporcionarle información sobre las herramientas. para usar, dependiendo del tipo de desafío.

Algunos enlaces:

enlace : varias categorías de CTF como se explicó anteriormente, que van desde lo fácil hasta lo difícil, muchas reseñas escritas

enlace : CTF en su mayoría regulares con un archivo oculto en un servidor y reglas específicas para encontrarlo / descifrarlo. Bueno para principiantes, te enseñará las herramientas básicas

    
respondido por el Elcan 04.09.2018 - 09:37
fuente
22

Decir "CTF" es un poco como decir "videojuego". ¿Cómo te preparas para un videojuego? Bueno, depende de lo que sea el juego! Tetris es muy diferente de Skyrim, que es diferente de Mario Kart.

Es muy poco lo que puede hacer para prepararse sin conocer MUCHO más información. En un CTF necesitaba comprender las redes, TCP / IP, diseño de aplicaciones web, cifrado y memoria forense. No hay manera de prepararse para todo eso sin saber que es necesario.

Lo único que es común a todos los CTF es que generalmente hay muchos rompecabezas lógicos.

La mejor manera de prepararse para un CTF es hacer CTF. La mayor parte de la diversión de un CTF es no saber lo que necesita saber y aprender rápidamente lo que necesita para resolverlo.

    
respondido por el schroeder 04.09.2018 - 09:29
fuente
16

¿Qué es un CTF? Es un tipo de competencia de seguridad informática, llamada CTF porque captura una "bandera", una cadena única, y la envía a la infraestructura de puntuación para obtener puntos. Los CTF son casi siempre limitados en el tiempo, a menudo de 24 a 48 horas (generalmente continuos durante un fin de semana, lo que le da a los competidores de todo el mundo una oportunidad justa, independientemente de la zona horaria). Hay dos tipos principales de CTF: riesgo y ataque / defensa. Los CTF estilo Jeopardy son más fáciles de organizar y también más fáciles de jugar / menos castigadores para los nuevos jugadores. En un CTF de estilo de riesgo, los organizadores escriben un conjunto de desafíos (servicios binarios o web vulnerables que se ejecutan en la nube, desafíos de inversión de tipo crackme, cosas ocultas en imágenes de disco o captura de paquetes o mensajes cifrados), asignan valores de puntos a cada uno desafío, y ponerlos a disposición de los competidores (a menudo en un tablero como el que está en peligro, con los desafíos organizados por dificultad y categoría (explotación típica, ingeniería inversa, explotación web, criptografía y análisis forense como categorías típicas)). Cuando comienza la competencia, los concursantes obtienen acceso a la grilla de desafíos, los resuelves y envías banderas para obtener puntos, y al final, quien tenga más puntos gana (los empates generalmente se rompen por tiempo para alcanzar el total de puntos ganadores: más rápido es mejor) .

En un CTF de ataque / defensa, los organizadores aún construyen un conjunto de servicios vulnerables, pero cada equipo debe ejecutar una copia de estos servicios, que deben defender. Piratea a otros equipos para robar sus banderas e intenta parchear sus propios servicios para evitar que otros equipos hagan lo mismo con usted. Los CTF de A / D implican una gran cantidad de trabajo adicional de logística e infraestructura para los organizadores (VPN, hosts de destino por equipo, & c). También pueden ser muy desmoralizantes para los nuevos jugadores si te están pisoteando (o si alguien tiene persistencia en tu infraestructura) y no hay nada que puedas hacer al respecto. Sin embargo, también pueden ser muy divertidos, y trabajan algunas habilidades inusuales como la aplicación de parches binarios y la reflexión de exploits.

En términos de preparación: estudio, práctica y herramientas. Las sugerencias de Florent Uguet para los juegos de guerra son buenas para la práctica. Algunos otros recursos que podrían ser útiles incluyen:

  • Trail of Bits ' Guía de campo de CTF tiene algunas conferencias, listas de herramientas y tutoriales de antiguos problemas de CTF.
  • picoCTF es un CTF dirigido a estudiantes de secundaria con muy pocos antecedentes. La competencia terminó, pero los organizadores han dejado los problemas para que la gente aprenda. Es un buen lugar para comenzar, y si tiene experiencia en programación, está muy adelantado a la curva y debería poder repasar las primeras cosas con bastante rapidez. También creo que habrá un nuevo picoCTF en octubre.
  • pwnable.kr tiene una variedad de buenos desafíos de explotación binaria para practicar.
  • A menudo puede encontrar resúmenes de los desafíos de los CTF anteriores en línea, lo que es una buena manera de familiarizarse con los idiomas especialmente específicos o con el tipo de problemas que pueden surgir en un Ctf en particular. ctftime.org agrega reseñas, además de albergar un calendario de los próximos ctfs.

En términos de herramientas, un consejo que ofrecería es ser fuerte en un lenguaje de scripting. CTF generalmente está bajo presión de tiempo, y la velocidad es más importante que la corrección perfecta. Python parece ser el idioma de elección más común, y hay muchas herramientas buenas para los desafíos de tipo ctf en python ( pwntools , por ejemplo). Recogiendo un poco de familiaridad también podría ser bueno.

    
respondido por el lorimer 04.09.2018 - 17:41
fuente
11

CTF es básicamente lo que se conoce en los juegos. Es capturar la bandera, pero en lugar de una bandera para robar, debes lograr múltiples objetivos que actúen como banderas.

Por ejemplo, una bandera en la competencia podría ser la ingeniería inversa de una validación clave para desarrollar un generador de claves.

Ya que conoce algunos lenguajes de programación y los principios básicos de estos, sería útil si intensificas tus habilidades de comprensión e investigación de la lógica. Mira los viejos CTF's y solo haz algunos. Si se topa con problemas, investigue los temas y comprenda los mecanismos.

Como Schroeder ya lo dijo. Es muy difícil de preparar, ya que lo más probable es que no sepa cuáles serán las tareas.

Como consejo personal: Relajarse. Usted está allí con ellos para aprender y simplemente divertirse explorando fallas del sistema. Trate de pasar un buen rato.

    
respondido por el Nico 04.09.2018 - 09:33
fuente

Lea otras preguntas en las etiquetas