Continuando con la temática mi post anterior, me gustaría hablaros de esos temas que ayudan a mejorar la calidad de un pentest, pero que no se suelen encontrar en los manuales. Con la experiencia, acabas adquiriendo conocimientos que no te ha proporcionado un libro o un paper, esos hábitos que coges a lo largo de sucesivos proyectos, que has adoptado porque lo probaste una vez y te funcionó.
A continuación voy a enumerar unos cuantos hábitos que a mí personalmente me han funcionado de maravilla.
- Conviértete en maestro shaolin de las herramientas que uses de forma cotidiana. ¿Sabías que en Burp Suite, con CTRL+SHIFT+U hace URL decode al texto seleccionado? Hay muchos atajos de teclado de acciones repetitivas que te harán trabajar más rápido. En la última Hack In Paris 2013 hubo una ponencia muy interesante sobre tips & tricks de Burp Suite, que recomiendo su lectura. Tómate tu tiempo en aprovechar todas las características de herramientas como vim, metasploit, gimp, o muy importante, el procesador de textos, para hacer el informe.
- Aprende scripting a fondo. Perl, Python, Ruby, bash scripting, cualquiera. Un “pythonito” de 4 líneas que automatice una tarea nos puede evitar días de trabajo. Mi recomendación personal es aprender python a fondo con el curso de SecurityTube de Vivek Ramachandran, y/o el libro Violent Python que ya comentó nuestro compañero Joel.
- Los pentest tienen fases. Síguelas y evita saltarlas. Si estás haciendo un reconocimiento de la aplicación, y encuentras un parámetro que tiene pinta de ser vulnerable a inyección SQL, anótalo como posible vector de ataque y sigue con el reconocimiento. Sé que es muy difícil resistirse a la tentación de comenzar a zurrarle a ese parámetro con todo tu arsenal, pasa siempre ¿verdad? Pero es muy fácil que hayan pasado tres horas y sigas ofuscado en ese parámetro que sabes que va a explotar pero no explota. En lugar de eso, si sigues con la fase de recogida de información y reconocimiento, probablemente hayas descubierto otra información que pueda servir para explotar el fallo anterior en tres minutos, en lugar de tres horas. No confundamos el hecho de comenzar otras fases sin haber terminado las anteriores, con volver hacia atrás y hacer tareas adicionales, o comenzar un nuevo ciclo una vez se encuentra una vulnerabilidad, por ejemplo, cuando se obtiene el control de una máquina que permite el acceso a una red que anteriormente no era visible.
- Anótalo todo. Pero todo, ¡TODO! Centraliza la información en un único lugar que sea fácil de consultar. Información facilitada por el cliente, logs con los resultados que devuelven tools, posibles vectores de ataque, cualquier pensamiento que se te ocurra a raíz de un cacho de código fuente que acabas de mirar. No seas tacaño con las capturas de pantalla, resaltando con colores lo que se quiere transmitir. Viene muy bien para añadirlas al informe final, y como recordatorio de tus descubrimientos. También es muy útil anotar al final del día por qué punto exacto del pentest te has quedado, para retomar la faena al día siguiente de forma ágil. Para mis anotaciones, personalmente utilizo Keepnote, aplicación muy sencilla que me permite guardar notas, y ordenarlo por carpetas, aunque sería ideal que hubiera algo similar a Evernote, pero con servidor propio. Si alguno conoce alternativa, estaría muy agradecido que lo comentara ;D
Recomendaciones generales, aplicables a cualquier tipo de tarea:
- 0 distracciones: móvil en silencio, usa auriculares si te lo permiten, fuera notificaciones de escritorio, cierra aplicaciones que no estés usando, o muévelas a otro escritorio.
- Evitar multitarea: centrarse en una única tarea. Cambiar mucho entre una y otra impide concentrarse.
- Planificación diaria y semanal: sabes lo que tienes que hacer en tu cabeza (un pentest, por ejemplo) y sabes que tienes que tener el informe listo para el día 30. Despieza el proyecto en tareas, y ordénalas en tu calendario. Sabrás en todo momento lo que tienes que hacer y será más fácil centrarte.
- Un montón más de ideas sobre productividad para gente que trabaja con las TIC se pueden sacar del blog de Berto Pena ThinkWasabi.
¿Hay algún consejo más que eches en falta? ¿Algún hábito que te funcione en tu día a día como ethical hacker? ¡Compártelo con nosotros!
Genial el post Jose Luís. Aporto mi granito de arena con dos herramientas que ayudan al reporting.
-Dradis (http://dradisframework.org/) Herramienta para ayudar en la gestión de información en pentest, ctf’s… Permite importar resultados de nmap, nessus y demás herramientas de seguridad.
-Si usas linux, el comando “script” te pude salvar la vida si te olvidas de guardar algo. Este almacena en un fichero de texto, todas las órdenes que has ejecutado en consola y sus resultados.
Un saludo.
Muy buen post, cualquier pentester en fase de iniciación te agradecerá tales consejos. En especial evitar distracciones, ya que no es un trabajo baladí.
Saludos