Hay una serie de cuestiones que se van aprendiendo cuando se trabaja en auditorías de red, pentesting o en campañas de Red Team con equipos profesionales. Lecciones que a veces se nos pasan o simplemente las desconocemos en ese momento. Este post no pretende “sentar cátedra” ni mucho menos ya que en el mundo de la informática y muy concretamente en la ciberseguridad, son muchos los conocimientos que debes tener para considerarte experto y yo, desde luego, no me considero uno. Son muchas las cosas que desconozco y quiero aprender, pero creo que lo más importante es tener una actitud abierta y flexible. No dejar de investigar y no caer en la falacia de que se “es un crack”, por mucho que otras personas lo repitan todo el tiempo. Dicho esto, las siguientes reflexiones reflejan cómo ha sido mi experiencia profesional hasta este momento. Ya sé que “nadie aprende en cabeza ajena”, pero a lo mejor pueden ser consideraciones útiles para quien las quiera leer.

  1. Que el alcance se encuentre muy bien acotado y con las restricciones por escrito. Desde el minuto 0 es importante estar en un contexto legitimo y que el equipo sepa qué cosas NO se pueden hacer, de esta manera ante cualquier eventualidad o discrepancia con el cliente se puede utilizar ese documento para evitar males mayores.
  2. Se necesita invertir dinero. Es necesario contar con recursos suficientes para adquirir licencias, desplegar software, comprar herramientas o incluso dispositivos para llevar a cabo la campaña. Esto es algo que se debe estimar antes de generar un presupuesto, no vaya a ser que te pilles los dedos.
  3. Fuera egos y/o complejos. Los equipos que mejor funcionan son aquellos que trabajan al unísono y con una impecable coordinación para conseguir un objetivo común. Esto es así en todo y no solamente en proyectos de seguridad informática. Todos los integrantes del equipo deben aportan y cumplir sus funciones. Sin arrogancia ni soberbia, sin complejos o dudas. Sin excusas.
  4. Las campañas de Red Team las emprenden equipos de personas, no “lobos solitarios”. Si bien es cierto que hay personas que a nivel técnico son excepcionales, es posible que una sola persona no pueda cubrir todas las etapas y actividades que se deben llevar a cabo en una campaña de Red Team. Esto es especialmente cierto cuando el “target” es una empresa u organización con una infraestructura robusta y bien definida.
  5. Las campañas de Red Team requieren coordinación. Requieren compromiso por parte de todos los integrantes y seguir las directrices que se han establecido para alcanzar el objetivo fijado. Por supuesto, la persona que se encarga de planificar debe tener dotes de líder y no de “jefe que delega” o “maestro del látigo”. Los mejores lideres, los que mejor aceptación pueden llegar a tener en un equipo son aquellos con un perfil técnico y que apoyan a los integrantes con su trabajo, no esos que en lugar de aportar soluciones aportan más problemas.
  6. Planificar en cada etapa. Muy especialmente en las campañas de Red Team en las que no sabes qué te vas a encontrar en cada paso. Hay que definir una serie de pautas de actuación y sobre todo, adaptarse a las situaciones. El plan puede cambiar en el transcurso del engagement en función de lo que se vaya viendo en cada fase del proceso.
  7. Nunca se debe subestimar la información obtenida en la etapa de reconocimiento. Esto es interesante en campañas de Red Team en donde se busca comprometer el objetivo probando diferentes vías de acceso. En este sentido, la aplicación correcta de técnicas de ingeniería social como la elicitación y los pretextos suponen una buena alternativa para conseguir esa primera shell.
  8. Conocer los deseos y miedos del objetivo. Relacionado con el punto anterior, en un equipo de Red Team se necesitan expertos en ingeniería social (dependiendo del alcance y restricciones de la campaña, por supuesto) y estas personas utilizarán la información recolectada para descubrir qué es lo que desea y teme el objetivo. De esta manera será mucho más fácil elaborar pretextos que producirán los resultados esperados.
  9. Un equipo de Red Team suele estar conformado por especialistas. En este tipo de actividades se requiere perfiles muy específicos. Algo similar a lo que se puede ver en equipos de desarrollo en donde hay personas que están involucradas en el diseño y arquitectura de soluciones, implementación del backend o del frontend entre otras cosas. En un equipo de Red Team puede ser común encontrar integrantes que se especializan en temas como el reversing o el desarrollo de malware, en despliegues de infraestructuras para la campaña, en recolección de información y definición de los escenarios para ingeniería social, pueden haber expertos en hacking web, redes inalámbricas o hacking en dispositivos móviles. Como se ha mencionado antes, las campañas de Red Team de cierto tamaño requieren equipos, no hombres orquesta.
  10. Canales de comunicación seguros y anónimos. Esta puede ser una de las prioridades en una campaña dependiendo de sus características. Para ello es importante montar una infraestructura que mantengan el anonimato de cada uno de los integrantes del equipo. En este sentido una buena opción consiste en montar servidores VPN propios así como enrutar el tráfico por medio de TOR. Esto, de hecho, hace parte de las labores de “pre-engagement”.
  11. Se cuenta con un solo disparo: Hay que apuntar bien. Un ataque informático es como disparar un arma de fuego, es una acción que puede generar mucho ruido y poner en alerta al objetivo, por lo tanto antes de “disparar” es importante asegurarse de que el impacto será certero y se conseguirá la meta de comprometer el sistema sin afectarlo o inquietar al usuario. Por ejemplo, si en la campaña se contempla la aplicación de técnicas de ingeniería social y se pretende aplicar un ataque del tipo “client-side”, es vital conocer versiones de software y el sistema operativo de la víctima para reproducir fielmente dicho entorno y realizar pruebas. Cuanta más información se tenga sobre el objetivo mejor, eso significa “apuntar bien”.
  12. Movimientos rápidos y precisos. Una vez se consigue acceso hay que tener un plan preparado. Hay que tener “una guía de actuación” con aquellas actividades que se deben realizar, hacerlas rápidamente y bien. El motivo de esto es que normalmente no se sabe cuánto tiempo pasará hasta que se detecte la intrusión, si hay alguien vigilando o si por cualquier otro motivo se perderá el acceso. En dicha guía se definen las directrices que debe seguir el equipo y sus prioridades. Por ejemplo, es posible que lo más importante sea pivotar a una red local cuanto antes para extender el engagement por toda la red de la víctima o a lo mejor el foco debe centrarse en explotar todas las posibles vulnerabilidades en el sistema comprometido. En cualquier caso, no se puede decir “vale, he comprometido el objetivo, y ahora qué hago?”. Esa pregunta ya debería de estar contestada desde mucho antes de comprometer el sistema.
  13. Hay que conocer el noble arte de programar. Y hacerlo muy bien. Esto es algo que he debatido con muchas personas y sigo sosteniendo que no puedes considerarte un hacker si no sabes programar. No puedes decir que eres un hacker si no tienes la capacidad de crear, si no sabes construir o si son otros los que lo hacen por ti ya que tu no cuentas con las aptitudes y/o conocimientos para hacerlo. No son pocas las veces en las que hay que desarrollar rutinas, herramientas o exploits que permitan aprovecharse de una vulnerabilidad o extraer información, si no cuentas con esas habilidades siempre te quedarás a medio camino o dependerás de un tercero que sí pueda hacerlo. Saber programar en Pentesting o Red Teaming es tan importante como saber moverse por un sistema Linux.
  14. A veces es preferible exfiltrar primero y elevar después. Dependiendo de los objetivos de la campaña es posible que resulte conveniente exfiltrar la mayor cantidad de información a la que se pueda acceder, esto también hace referencia al punto anterior. Hay que tener un plan bien definido, eso es precisamente lo que hace un equipo rojo. Una buena estrategia y plan de acción es fundamental.
  15. Si un C2 has de instalar… Es posible que instalar una herramienta de este tipo en el objetivo no sea la mejor opción especialmente en entornos maduros, pero si es lo que se debe hacer, mejor que sea uno muy liviano aunque no sea tan potente en funcionalidades como Meterpreter, Pupy o cualquier otro y en la medida de lo posible anónimo o sin exponer de ninguna manera información real de cualquiera de los integrantes de la campaña. Posiblemente una buena alternativa puede ser Torat o el Offensive Tor Tookit del que ya se ha hablado anteriormente en este blog, en cualquier caso si un C2 has de instalar, que no sea uno fácil de detectar o que active alarmas en el objetivo. Es posible que haya que crear uno especifico para el objetivo en cuestión, aprende el noble arte de programar.
  16. Los mecanismos de persistencia instalados deben ser sutiles. Y además, se deben desplegar casi al final de la campaña y eso suponiendo que sea uno de los objetivos de la misma. Aunque es posible aplicar algunas técnicas de persistencia sin contar con privilegios elevados, es posible que sean fácilmente detectadas por los mecanismos de seguridad perimetral instalados en el objetivo. Es mejor tener la posibilidad de controlar completamente dicho sistema para aplicar las excepciones de seguridad adecuadas, las cuales permitirán desplegar rutinas o backdoors sin que generen alarmas.
  17. Una correcta limpieza del entorno. Y esto no siempre es lo típico de “limpia logs, elimina herramientas o ficheros subidos, deja los servicios funcionando correctamente, etc”. Dependiendo de la guía de actuación definida, es posible que se busque desviar la atención. Hay sistemas en los que es muy difícil eliminar todas las trazas que se van dejando, por lo tanto se pueden dejar señuelos o pistas falsas. Esto a efectos prácticos puede significar envenenar los logs con eventos que no han ocurrido, subir ficheros o exploits escritos en un lenguaje concreto y preferiblemente escritos por una persona nativa, dejar conexiones establecidas con dominios o hosts que nada tienen que ver con la campaña e incluso, dejar indicios de que se trata un ataque realizado desde el interior de la organización.
  18. Hay que demostrar “la valía”. Dependiendo del tipo de trabajos que se están realizando debe de haber un informe en donde se demuestre qué cosas se han hecho y cuáles han sido los descubrimientos. Esta es la forma clásica en la que se justifica al cliente los trabajos realizados y en cierta forma, por lo que paga. No obstante, hay campañas en las que los talentos del equipo se demuestran de otras formas, por ejemplo por medio de la información que se consigue exfiltrar, el acceso a secciones restringidas o el control de sistemas que se ejecutan en el entorno del objetivo. En cualquier caso el trabajo hecho siempre se debe evidenciar, no solamente basta con decir que “el equipo es muy bueno y está conformado por los mejores”.
  19. Compañeros discretos y leales. Dado que las tareas a ejecutar en ocasiones son delicadas se exige profesionalidad y responsabilidad por parte de todos los integrantes. Esto significa que las personas que conforman el equipo no solo deben ser muy buenas técnicamente, sino que además deben ser personas en las que se pueda confiar.
  20. Mejor creer en lo que se hace. Cada integrante del equipo busca obtener un beneficio económico, esto en un hecho evidente. Sin embargo, es mejor buscar un impulso extra que esté relacionado con otros estímulos igual de importantes. Por ejemplo, el deseo por aprender algo o mejorar habilidades, participar en un proyecto interesante, hacer crecer un negocio que servirá de sustento a varias familias, colaborar con otras personas que buscan la misma meta, promover o afianzar una idea con la que los integrantes se sienten identificados, etc. Pueden ser motivaciones muy fuertes que para algunas personas llegan a ser más importantes que el dinero. Cada proyecto tiene una finalidad, se hace por un motivo y esto en las campañas de Red Team también aplica por eso es mejor creer en ese propósito. Es mejor creer que todo lo que se hace tiene un sentido, que no es algo inútil.

Un saludo y Happy Hack!
Adastra.