Escaneo de Puertos a un Servidor Web

Body

Es escaneo de puertos es simplemente el proceso de identificar cuales puertos están abiertos sobre la computadora objetivo. Además, encontrar cuales servicios están ejecutándose en estos puertos. Los puertos en una computadora son como cualquier abertura la cual permite entrar dentro de una casa, puede ser la puerta principal, la puerta secundaria, o la puerta del estacionamiento. Continuando con la analogía de la casa, los servicios son el tráfico utilizado por un punto de entrada dentro de una casa. Por ejemplo, un vendedor utilizará la puerta principal, los propietarios utilizarán la puerta del estacionamiento, y los amigos utilizarán la puerta secundaria. Así como un vendedor utiliza la puerta principal, también los servicios utilizan ciertos puertos en una computadora. Es un estándar el tráfico HTTP utilice el puerto TCP 80, y el tráfico HTTPS utilice el puerto TCP 443. Entonces si se encuentran los puertos TCP 80 y TCP 443 abiertos, se puede estar casi seguro de los servicios HTTP y HTTPS están ejecutándose en la máquina, y esta máquina es probablemente un servidor web. El objetivo al escanear puertos es responder a las siguiente tres preguntas relacionadas con el servidor web.

  • ¿Cuales son los puertos abiertos?
  • ¿Cuales servicios están ejecutándose en estos puertos?
  • ¿Cuales versiones de estos servicios están ejecutando?

Si se pueden obtener respuestas precisas a estas pregunta, se tendrá un sólido fundamento para el ataque.

Existen muchos tipos de escaneo a ser realizados con Nmap, y adicionalmente existen diversas opciones y configuraciones. Conociendo la dirección IP del servidor web, se puede realizar un escaneo para recolectar información sobre los puertos, servicios, versiones y tipo de sistema operativo del servidor.

Para los dos escaneos realizados se utilizan las siguientes opciones de Nmap. “-n” para no realizar una resolución al servidor de nombres por la dirección IP. “-p-” para escanear los 65,535 puertos TCP. “-sV” para realizar un escaneo de versiones, y conocer las versiones específicas de los servicios descubiertos en ejecución. Y “-O” realiza un escaneo para conocer cual sistema operativo, incluyendo tipo y versión ejecuta el servidor.

# nmap -n -p- -sV -O 192.168. 0.66

Una de las funcionalidades útiles de Nmap es el tratar de obtener la huella del sistema operativo. Nmap envía una serie de paquetes hacia el host remoto, y lo compara las respuestas con una base de datos propia de huellas.

Los resultados del primer escaneo indican lo siguiente:

Existe un servidor Apache httpd 2.2.14 ((Ubuntu) ejecutándose en el puerto TCP 80
Existe un servidor Apache httpd 2.2.14 ((Ubuntu) ejecutándose en el puerto TCP 443
Existe un servidor Apache Tomcat/Coyote JSP engine 1.1 ejecutándose en el puerto TCP 8080
Existe un servidor Jetty 6.1.25 ejecutándose en el puerto TCP 8081

Se procede a realizar un segundo escaneo:

# nmap -n -p- -sV -O 192.168. 0.70

Los resultados del segundo escaneo indican lo siguiente:

Existe un servidor Microsoft IIS httpd 7.5 ejecutándose en el puerto TCP 80
Existe un servidor de base de datos MySQL 5.5.20-log ejecutándose en el puerto TCP 3306
Existe un servidor Oracle Glassfish Application Server ejecutándose en el puerto 4848
Existe un servidor Apache Tomcat/Coyote JSP engine 1.1 ejecutándose en el puerto TCP 8022
Existe un servidor de base de datos PostgreSQL DB ejecutándose en el puerto 8028
Existe un servidor Apache Tomcat/Coyote JSP engine 1.1 ejecutándose en el puerto 8282
Existe un servidor Jetty winstone-2.8 ejecutándose en el puerto 8484
Existe un servidor Apache httpd 2.2.21 ejecutándose en el puerto 8585
Existe un servidor Elasticsearch REST API 1.1.1 ejecutándose en el puerto 9200

El conocer los servicios y versiones exactas son una pieza de información excelente para las siguientes fases de escaneo de vulnerabilidades y explotación.

También existen anotaciones adicionales sobre la tipo y versión del sistema operativo, para el primer escaneo, el sistema operativo del servidor es un Linux 2.6.X. Para el segundo escaneo, el sistema operativo del servidor es Microsoft Windows. Adicionalmente es factible obtener, la versión del kernel, detalles sobre la construcción del sistema operativo y número de saltos.

Fuentes:

https://nmap.org/

La Controversia con las Herramientas de “Hacking”

Body

En muchas instancias, el conjunto de herramientas utilizadas por los atacantes maliciosos es el mismo al conjunto de herramientas utilizadas por los profesionales en seguridad. Muchas personas no entienden esto. De hecho, los libros, clases, artículos, sitios webs, y seminarios sobre hacking, podrían ser legítimamente renombrados a “conjunto de herramientas para la educación de profesionales en seguridad”. El problema surge cuando a las personas de marketing les gusta utilizar la palabra “hacking” porque atrae mas la atención y paga a los clientes.

Los hackers éticos pasan a través del mismo proceso y procedimientos de los hackers no éticos, así únicamente tiene sentido utilizar el mismo conjunto de herramientas básico. Podría no ser útil probar los atacantes no pudieron atravesar las barreras con una herramienta A, si los atacantes no utilizan la herramienta A. El hacker ético debe conocer aquello lo cual están utilizando los chicos malos, conocer los nuevos exploits del submundo, y continuar actualizando sus conocimientos y habilidades. ¿Porqué?. Debido a las probabilidades están contra la compañía y el profesional en seguridad. El profesional en seguridad debe identificar y abarcar todas las vulnerabilidades en un entorno. El atacante maliciosos únicamente debe ser realmente bueno en uno o dos exploits, o realmente con suerte. Una comparación se puede hacer con las responsabilidades de una organización del gobierno, la cual es responsable de proteger la nación de 10 millones de cosas pensadas y realizadas por los terroristas. El terrorista únicamente debe tener éxito en una de estas 10 millones de cosas.

Fuentes:

https://github.com/enaqx/awesome-pentest
https://tools.kali.org/tools-listing
http://www.toolswatch.org/

Acciones Diferentes Realizadas por un Hacker No Ético

Body

Cómo los atacantes maliciosos utilizan el sistema comprometido depende de sus objetivos globales, los cuales pueden incluir desde robar información sensible, redireccionar transacciones financieras, añadir los sistemas a su red de bots, extorsionar a la compañía, entre otras acciones. Lo relevante es los hackers éticos y no éticos realizan básicamente las mismas actividades, pero con diferentes intenciones. Si un hacer ético no identifica primero un agujero en las defensas de la compañía, un hacer no ético seguramente lo encontrará e irrumpirá, para consecuentemente sentirse con en su casa. A continuación se detallan algunas acciones realizadas de manera diferente por un atacante malicioso o hacker no ético.

Selección del objetivo

  • Motivado por rencor, por diversión o beneficio
  • No hay reglas básicas, ni objetivos "manos libres", y el equipo de seguridad definitivamente no percibe el próximo ataque.

Intermediarios

  • El atacante lanza su ataque desde un sistema diferente (intermediario) del cual se apropió, o un serie de otros sistemas para hacer más difícil su rastreo, en caso el ataque sea detectado.
  • Los intermediarios frecuentemente son victimas también de los atacantes.

Etapas de una prueba de penetración

  • Escaneo
  • Obtener huellas
  • Seleccionar el sistema objetivo
  • Explotar las vulnerabilidades descubiertas
  • Escalar privilegios

Preservar el acceso

  • Esto implica subir o instalar un rootkit, puerta trasera, aplicaciones con troyanos, o bots, para asegurar el atacante puede ganas nuevamente acceso posteriormente.

Cubrir pistas

  • Manipular eventos y logs para auditorías.
  • Ocultar archivos subidos
  • Ocultar procesos activos, los cuales permitan al atacante ganar acceso nuevamente
  • Deshabilitar mensajes del software de seguridad, y logs del sistema, para ocultar procesos o acciones maliciosas

Fortalecer el Sistema

  • Después de tomar posesión de un sistema, un atacante puede corregir las vulnerabilidades abiertas, de tal manera otro atacante no pueda utilizar el sistema para otros propósitos.

Fuentes:

https://www.computerhope.com/jargon/u/unethical-hack.htm
http://www.reydes.com/d/?q=El_Proceso_para_Pruebas_de_Penetracion

El Proceso para Pruebas de Penetración

Body

Cuando los administradores de red, ingenieros, y profesionales en seguridad entienden como los atacantes trabajan, pueden emular sus actividades realizando una útil prueba de penetración. ¿Pero quién querría emular un ataque?. Debido a ser la única manera de verdaderamente probar el nivel de seguridad del entorno, se debe conocer como reaccionar cuando se suscite un ataque real. Se deben entender las diferentes etapas, y comprender la cantidad de ataques factibles de ser realizadas. Esto ayudará a desarrollar metodologías para emular actividades similares, y consecuentemente probar la postura de seguridad de la compañía.

De hecho estas actividades pueden ser utilizadas de manera maliciosa; por lo tanto también se deben conocer las diversas leyes tanto nacionales como mundiales sobre el tema. El sistema judicial actual toma en consideración un amplio rango de crímenes de computadoras, y los atacantes reciben fuertes multas o penas de cárcel por estas actividades. Por lo tanto se sugiere no realizar actividades ilegales, pues existe mucha estimulación intelectual trabajando para los chicos buenos, sin el riesgo de ir a la cárcel.

La motivación del profesional en pruebas de penetración es conducida por el cliente. Ya sea para acceder hacia información sensible, proporcionar justificación adicional para proyectos por venir, o únicamente evaluar la seguridad de la organización, siendo importante entender aquello lo cual el cliente está buscando antes de iniciar las pruebas. Una vez se entiendan cuales son los objetivos, dirigir el resto de las etapas de las pruebas serán más fácil. A continuación se detallan las etapas de una típica prueba de penetración.

Reglas Fundamentales Establecer las reglas fundamentales

  • Definir expectativas e información de contacto entre el equipo de pruebas y clientes.
  • Identificar a las partes involucradas y quien es consciente de las pruebas.
  • Definir las fechas de inicio y periodos no laborales.
  • Obtener una aprobación formal y acuerdo escrito, incluyendo alcance, firmas, y requerimientos legales, frecuentemente denominado “Statement of Work” (SoW).

Escaneo Pasivo Obtener tanta información como sea posible, mientras se mantiene un contacto cero entre el equipo de pruebas y el objetivo. El escaneo pasivo, otras veces conocido como OSINT (Open Source Intelligence), puede incluir.

  • Sitios de redes sociales.
  • Bases de datos en línea.
  • Google, Bing, etc.
  • Buscar en la basura.

Escaneo Activo y Enumeración Probar la exposición pública del objetivo con herramientas para el escaneo, lo cual puede incluir.

  • Herramientas comerciales de escaneo
  • Mapeo de la red
  • Captura del banner
  • Marcadores
  • Transferencias de zona DNS
  • Husmear tráfico de red
  • Escaneo inalámbrico

Obtener Huellas Realizar una profunda prueba de los sistemas objetivos para identificarlos

  • Tipo y nivel de parche del sistema operativo
  • Aplicaciones y nivel de parche
  • Puertos abiertos
  • Servicios en ejecución
  • Cuentas de usuario

Seleccionar el Sistema Objetivo Identificar los objetivos más útiles.

Explotar Vulnerabilidades Descubiertas Ejecutar las herramientas de ataque apropiadas contra los exposiciones sospechosas.

  • Algunas pueden funcionar.
  • Algunas podrían matar servicios o incluso matar el servidor.
  • Algunas podrían ser muy útiles

Escalar Privilegios Escalar el contexto de seguridad, de tal manera el hacker ético tiene mayor control.

  • Ganar “root” o derechos administrativos
  • Utilizar las contraseñas rotas para acceso no autorizado
  • Realizar desbordamiento de buffer para ganar control local versus control remoto.

Documentar y Reportar Documentar todo lo encontrado, como fue encontrado, las herramientas utilizadas, las vulnerabilidades explotadas, la cronología de actividades y nivel de éxito, etc.

Fuentes:

http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines
http://www.vulnerabilityassessment.co.uk/Penetration%20Test.html

El Proceso de Hacking Ético

Body

Para protegerse a si mismas, las organizaciones deben entender el impacto y capacidad de un atacante. En este caso pueden emplear un hacker ético, también conocido como profesional en pruebas de penetración, para simular un ataque contra el entorno. Las técnicas utilizadas por los profesionales, están diseñadas para emular estos ataques reales pero sin causar daño; lo cual permite a las organizaciones protegerse mejor contra los ataques. Pero los clientes y los hackers necesitan entender como este proceso funciona. Definir las actividades, etapas, y fases de una prueba de penetración, permite establecer las expectativas entre el cliente y el equipo de pruebas. Los clientes pueden no ser externos hacia una organización; podrían ser internos también. Independientemente de ello, a quien se esté evaluando y porque, se debe establecer el alcance y un lenguaje común el cual ayude a los afectados a entender aquello a realizar y el porque. Esto suaviza el proceso y reduce los malentendidos.

Antes de describir el proceso de pruebas de penetración, se necesita discutir las diferencias entre una prueba de penetración y una evaluación de vulnerabilidades. Estas actividades tienen diferentes objetivos, pero frecuentemente se los confunde. Durante una evaluación de vulnerabilidades, algunos tipos de productos automáticos para el escaneo son utilizados para probar los puertos y servicios en un rango de direcciones IP. Muchos de estos productos pueden también evaluar por tipo de sistema operativo y aplicaciones de software ejecutándose, sus versiones, nivel de parche, cuentas de usuario, y servicios también en ejecución. Estos hallazgos se comparan con una base de datos del producto sobre vulnerabilidades. El resultado final es una gran pila de datos, lo cual básicamente sentencia; “Aquí hay una lista de vulnerabilidades, y aquí hay una lista de cosas necesarias a arreglar”.

El problema con la mayoría de escaneos de vulnerabilidades es; aunque indican la severidad de las vulnerabilidades, raramente indican su impacto. Es aquí donde entre la prueba de penetración. Un escaneo de vulnerabilidades permite identificar una pieza de software siendo vulnerable a una explotación; una prueba de penetración toma esto más profundamente explotando esta vulnerabilidad, y por ejemplo, accediendo hacia información sensible. Muchos escaners de vulnerabilidades indican la posibilidad de ser vulnerable en base a la versión y algunas verificaciones más invasivas, pero una prueba de penetración indica si el hallazgo del escaner de vulnerabilidades es real o un falso positivo.

Cuando un profesional en pruebas de penetración ataca, su objetivo final es usualmente irrumpir en el sistema, y saltar de sistema en sistema hasta apropiarse del dominio o el entorno. A diferencia de una evaluación de vulnerabilidades, una prueba de penetración no se detiene en la identificación de posibles vulnerabilidades. Los profesionales en pruebas de penetración se aprovechan de las vulnerabilidades identificadas hasta apropiarse de todo el dominio o el entorno de evaluación. El “apropiarse” significa tener ya sea los permisos de root en un sistema Linux, o una cuenta de administrador de dominio en sistemas Windows, lo cual permite acceder y controlar todos los recursos de la red. Los profesionales hacen esto para mostrar a la empresa cliente, aquello lo cual un atacante real pueden hacer bajo las circunstancias y postura de seguridad actual de la red.

Muchas veces, mientras un profesional en pruebas de penetración realiza su procedimiento para ganar control total de la red, se recogerán trofeos significativos en el camino. Estos trofeos pueden incluir contraseñas del CEO, documentación secreta de la empresa, contraseñas administrativas de todos los encaminadores, documentos marcados como confidenciales, las cuales están guardados en las computadoras personales o laptops del CFO o CIO, o la combinación de la caja fuerte de la compañía. Estos trofeos son recolectados en el camino, para los responsables de la toma de decisiones puedan comprender las ramificaciones de estas vulnerabilidades. Un profesional en seguridad puede hablar por horas con el CEO, CIO o COO sobre servicios, puertos abiertos, malas configuraciones, y vulnerabilidades potenciales sin relevancia en la audiencia lo comprenda o importe. Pero mostrarle al CFO los proyectos del próximo año, mostrarle al CIO todos los planos de la linea de producción para el próximo año, o decirle al CEO su contraseña es “YoUsoPanties10”, probablemente los inspire a aprender más sobre los cortafuegos y otros mecanismos a implementar en el lugar.

Importante: Ningún profesional en seguridad debería tratar de avergonzar a los clientes o hacerlos sentir incómodos por su falta de seguridad. Esta es la razón por la cual un profesional en seguridad ha sido invitado dentro del entorno. Es un invitado y está allí para resolver un problema, no para señalar con el dedo. También en muchos casos, cualquier dato sensible no deberá ser leído por el equipo de pruebas de penetración, porque existen posibilidades futuras de demandas relacionadas a la utilización de información confidencial.

Fuentes:

https://www.sans.org/reading-room/whitepapers/auditing/red-teaming-art-…
https://www.sans.org/reading-room/whitepapers/hackers/shades-ethical-ha…

Depurar un Programa en Lenguaje C con GDB

Body

Cuando se trabaja con programas escritos en el lenguaje C en sistemas Linux, el depurador a elegir es “gdb”. GDB Proporciona una robusta interfaz en línea de comando, permitiendo ejecutar un programa mientras se mantiene un completo control. Por ejemplo, se pueden ajustar puntos de interrupción en la ejecución de un programa, y vigilar los contenidos en memoria o los registros en cualquier punto requerido. Por esta razón, depuradores como GDB son valiosos para los programadores y “Hackers”.

En programa a utilizar como ejemplo, está escrito en lenguaje C, y su propósito es solicitar un nombre, para luego imprimir un saludo utilizando el nombre escrito por el usuario. Se procede a compilar y ejecutar el programa para verificar su correcto funcionamiento.

# cat hola.c
# gcc -o hola hola.c
# ./hola

Lo Básico de GDB

A continuación se presenta un listado de los comandos más utilizados en GDB.

  • b (función) Define una interrupción en “función”
  • b *mm Define una interrupción como una localización absoluta de memoria
  • info b Muestra información sobre puntos de interrupción
  • delete b Elimina un punto de interrupción
  • run (args) Inicia la depuración de un programa desde dentro de GDB con argumentos definidos
  • info reg Muestra información sobre el estado actual de los registros
  • stepi o si Ejecuta una instrucción máquina
  • next o n Ejecuta una función
  • bt Comando de traza hacia atrás, el cual muestra los nombres de la estructura de pila
  • up/down Mueve hacia arriba o abajo en la estructura de pila
  • print var / print/x $(reg) Imprime el valor de la variable; imprime el valor de un registro
  • x /NT A Examina la memoria, donde N = número de unidades a mostrar, T = tipo de dato a mostrar (x:hex, d:dec, c:char, s:string, i:instruction); A = dirección absoluta o nombre simbólico como “main”.
  • quit Sale de GDB

Para iniciar la depuración, se ejecuta GDB con el nombre del programa.

# gdb hola
(gdb) run

Se inicia nuevamente GDB con el nombre del programa, pero esta vez se define una interrupción en la función de nombre “main”, para interactuar con esta.

(gdb) b main
(gdb) n
(gdb) n

Se utiliza el comando "info" para mostrar el estado actual de los registros.

(gdb) info b
(gdb) quit

Desensamblar con GDB

Para desensamblar con GDB se necesitan utilizar dos comandos. El comando “set disassembly-flavor” conmuta entre el formato Intel (NASM) y AT&T. Por defecto GDB utiliza el formato At&T. El segundo comando “disassemble (nombre función)” desensambla la función definida. Por ejemplo para desensamblar

# gdb hola
(gdb) disassemble main


(gdb) set disassembly-flavor intel
(gdb) disassemble main
(gdb) quit

Fuentes:

https://www.gnu.org/software/gdb/
https://www.csee.umbc.edu/portal/help/nasm/nasm.shtml

Reportar los Resultados de una Prueba de Penetración

Body

¿De qué sirve una prueba de penetración si el cliente no puede descifrar los resultados?. Aunque la fase del reporte alguna veces se ve como una ocurrencia tardía, es importante enfocarse en este fase para producir un producto de calidad para el cliente.

Formato del Reporte

El formato de un reporte puede variar, pero los siguiente puntos deben estar presentes:

  • Tabla de contenidos
  • Resumen ejecutivo
  • Metodología utilizada
  • Hallazgos priorizados por unidad de la empresa, grupo o departamento
    • Hallazgos
    • Impacto
    • Recomendación
  • Registro detallado capturas de pantallas en el apéndice

La presentación de los hallazgos de una manera priorizada es recomendada. Es cierto no todas las vulnerabilidades se crean igual. Algunas necesitan ser solucionadas inmediatamente, mientras otras pueden esperar. Una buena perspectiva para priorizar es utilizar la probabilidad de compromiso administrativo remoto. Los hallazgos críticos pueden conducir hacia un compromiso remoto administrativo (actualmente), y deben ser solucionados inmediatamente. Los hallazgos altos son importantes, pero tienen un factor de mitigación involucrado para minimizar el riesgo hacia un compromiso directo. Por ejemplo, tal vez un sistema esté detrás de un firewall interno únicamente accedible desde un segmento de red particular. Los hallazgos críticos necesitan ser arreglados en séis meses. Los hallazgos medios son menos importantes y deben ser arreglados en un año. Los hallazgos bajos son informativos, y pueden no ser arreglados del todo. Las cronologías recomendadas pueden variar de profesional en profesional, pero las prioridades deben ser presentadas, de otra manera, el cliente puede verse abrumado con el trabajo realizado, y no hacer nada.

Presentar los hallazgos agrupados por unidad de la empresa, grupo o división, son también recomendados. Esto permite el reporte sea dividido y manejado en grupos relevantes, manteniendo la información sensible dentro del grupo.

Exposición del Reporte

La exposición del reporte es una reunión formal para presentar un resumen de los hallazgos, tendencias y recomendaciones para la mejora. Es útil descubrir como el cliente está organizado. Entonces, la exposición puede ser personalizada por unidad de la empresa, grupo o departamento. Esto puede ser útil para entregar los hallazgos para cada grupo separadamente. Esto reduce la tendencia natural de la defensividad cuando se discuten los problemas entre grupos de compañeros. Si existe más de una semana entre el comienzo de la prueba de penetración y la exposición actual, un rápido resumen de los hallazgos críticos, tendencias y recomendaciones deben ser proporcionadas al final de la evaluación. Esto permitirá al cliente empiece a corregir problemas antes de la exposición formal.

Fuentes:

https://github.com/juliocesarfort/public-pentesting-reports
https://www.offensive-security.com/reports/sample-penetration-testing-r…

Compartir Información de una Prueba de Penetración utilizando Dradis

Body

El compartir información es la clave del éxito durante una prueba de penetración. Esto es especialmente cierto cuando se trabaja con equipos los cuales está geográficamente dispersos. El framework Dradis es la mejor manera de recolectar y proporcionar información durante una prueba de penetración. De hecho fue diseñado con este propósito.

Dradis

La edición comunidad de Dradis es un framework open source para reportes, ampliable y multiplataforma, el cual permite generar reportes en un clic, lo cual ahorra horas en cada proyecto. Es particularmente cómodo para gestionar un equipo para pruebas de penetración. Se pueden mantener al equipo de pruebas informado y sincronizado utilizando Dradis para todos los planes, hallazgos, anotaciones, y adjuntos. Dradis tiene la capacidad de importar desde otras herramientas como Nmap, Nessus, Nikto, Burp Suite, etc.

El procedimiento para instalar Dradis en Kali Linux puede ser encontrado en la parte final del presente escrito.

Se ejecuta el servidor Redis. Redis es un almacenamiento estructurado para datos en memoria open source (Licenciado BSD), utilizado como base de datos, cache y agente de mensajes.

# redis-server

Ahora en otra terminal se procede a ejecutar Dradis Framework.

# dradis

Utilizando un navegador web como firefox, se ingresa hacia la interfaz de Dradis. Aquí se solicita crear una contraseña compartida, la cual será utilizada por cualquiera quien acceda hacia el servidor.

Realizado todo correctamente. Se solicita ingresar un nombre de usuario y la contraseña.

La interfaz gráfica de Dradis es bastante intuitiva, pues en unos cuantos minutos se aprenderá a utilizarla. Aunque siempre se sugiere leer la documentación para aprovechar todas sus capacidades.

Una de las más importantes capacidades de Dradis, es la de permitir exportar e importar. Se pueden importar formatos desde las herramientas más populares como Acunetix, Burp Suite, Metasploit, Nessus, Nexpose, Nikto, Nmap, OpenVas, Qualys, entre otras.

Así mismo se pueden exportar los reportes generados de utilizar Dradis en formatos para Word, HTML, CSV o Excel.

La verdadera magia de Dradis ocurre cuando varios usuarios ingresan datos al mismo tiempo. Los datos son sincronizados en el servidor, y los usuarios son consultados para refrescar sus pantallas y obtener los últimos datos. El acceso debe ser otorgado hacia el cliente, permitiéndole mantenerse al tanto del estado actual en todo momento. Luego cuando la evaluación se haya realizado, una copia de toda la base del framework puede ser dejada hacia el cliente como parte del informe.

Fuentes:

https://redis.io/
https://dradisframework.com/ce/
https://dradisframework.com/ce/documentation/install_kali.html

Ejecutar una Prueba de Penetración

Body

Cuando ya se ha realizado toda la planificación y papeleo relacionada a la Prueba de Penetración, es momento de comenzar a lanzar paquetes; bueno casi. Pues primero se necesitan aclarar algunos temas con el cliente.

Reunión Inicial

A menos se requiere una Prueba de Penetración de tipo caja negra, es importante agendar y asistir a una reunión inicial, antes del contrato con el cliente. Esta es una oportunidad no solo para confirmar las necesidades y requisitos del cliente, sino también empezar con el pie de derecho con él.

El útil recordar al cliente el propósito de la prueba de penetración; encontrar tantos problemas en el tiempo asignado como sea posible, y hacer las recomendaciones para arreglarlas, antes de los chicos malos los encuentren. Este punto no debe ser exagerado. Debe ser seguido con una explicación de; esto no es un juego del gato y el ratón con los administradores del sistema, y el equipo de operaciones en seguridad. La peor cosa la cual puede ocurrir es; los administradores del sistema noten algo extraño en la mitad de la noche, y empiecen a tomar acciones para cerrar el equipo. Aunque los administradores del sistema deben ser elogiados por sus observaciones y deseos de proteger los sistemas, esto es de hecho contraproducente para la prueba de penetración, por la cual se está pagando un buen dinero.

El punto es; debido a las limitaciones de tiempo y dinero para las evaluaciones, el equipo de pruebas podría frecuentemente tomar riesgos y moverse más rápido a comparación de un adversario real. Nuevamente, el propósito es encontrar tantos problemas como sea posible. Si existiesen 100 problemas factibles de ser encontrados, el cliente podría desear se encuentren todos. Esto no sucederá si el equipo se atasca, ocultándose de los empleados de la compañía.

Acceso durante una Prueba de Penetración

Durante la fase de planificación, se debe desarrollar una lista de recursos requeridos desde el cliente. Tan pronto como sea posible después de la reunión inicial, se deben recibir estos recursos desde el cliente. Por ejemplo, se puede requerir un cuarto de reuniones adecuado para todo el equipo de pruebas, y este recinto debería estar cerrado en las noches con el equipo dentro. También se podría requerir acceso hacia la red. Se podría requerir conectores de red, uno hacia la red interna y otro para el acceso e investigación hacia Internet. Se podría necesitar obtener credenciales de identificación para acceder a ciertas facilidades. El líder del equipo de pruebas debe trabajar con el punto de contacto del cliente, para ganar el acceso como sea requerido.

Manejar Expectativas

A lo largo de una Prueba de Penetración, existirá una montaña rusa de emociones (tanto para el equipo de pruebas y el cliente). Si las luces parpadean o se produce un coste en el centro de datos, el equipo de pruebas de penetración será culpado. Es imperativo el líder del equipo permanezca en comunicación constante con el punto de contacto del cliente y gestione las expectativas. Se debe tener en consideración el axioma: las primeras impresiones son frecuentemente incorrectas. Conforme el equipo de pruebas descubre potenciales vulnerabilidades, se debe ser cuidadoso sobre como se revelan al cliente, porque puede ser incorrecto.

Manejar Problemas

De vez en cuando, surgirán problemas durante las pruebas. El equipo podría accidentalmente causar un problema, o algunas veces algo lo cual esté fuera de control del equipo, puede interferir con la evaluación. En esos momentos, el líder el equipo debe tomar control de la situación y trabajar con el punto de contacto del cliente para resolver el inconveniente. Hay otro principio a tener en consideración, las malas noticias no mejoran con el tiempo. Si el equipo de pruebas rompe algo, es mejor divulgarlo rápidamente y trabajar para no vuelva a suceder.

Estable es Rápido

Existe un viejo dicho “Estable es Rápido”. Esto ciertamente es verdadero en pruebas de penetración. Cuando se realizan muchas tareas simultáneamente, a veces parecerá se está atrapado en arenas movedizas. En esos momentoa, mantenerse ocupado, avanzando constantemente hasta completarlo. Intentar evitar apresurarse para ponerse al día, pues se podrían cometer errores, y volver a hacer las cosas.

Coordinación Externa e Interna

Se debe estar seguro de obtener los puntos de contacto del cliente para preguntas o consultas. Por ejemplo, después de parar un par de días, puede ser útil tener el número del administrador de red o cortafuego. Fuera del horario de atención, si el punto de contacto del cliente se ha ido a su casa, enviarles un correo electrónico o un mensaje de texto de vez en cuando, hará mucho para mantenerlos informados sobre el avance. De otro lado, la coordinación dentro del equipo es crítico para evitar redundancias, y asegurarse el equipo no se pierda en algo crítico. Los resultados se deben compartir con todo el equipo, en tiempo real.

Fuentes:

https://www.crest-approved.org/wp-content/uploads/CREST-Penetration-Tes…
http://www.pentest-standard.org/index.php/Pre-engagement

Estructurar un Acuerdo para Pruebas de Penetración

Body

Cuando se realizan pruebas de penetración, un acuerdo firmado puede ser el mejor amigo o el peor enemigo. Los siguientes documentos son pertinentes.

Declaración del Trabajo

Muchas organizaciones utilizan una Declaración del Trabajo , SOW por sus siglas en idioma inglés, cuando se contrata. El formato de este documento no es tan importante como su contenido. Normalmente el contratista (en este caso el profesional en pruebas de penetración), prepara el SOW y lo presenta al cliente como parte de la propuesta. Si el cliente lo acepta, el cliente emite una orden de compra, u orden de tarea sobre el contrato existente. Hay algunas cosas a asegurarse a incluir en el SOW.

  • Propósito de la evaluación
  • Tipo de evaluación
  • Alcance del esfuerzo
    • Limitaciones y restricciones
    • Cualquier sistema explícitamente fuera del alcance
  • Limitaciones de tiempo en la evaluación
  • Programación preliminar
  • Estrategia para la comunicación
    • Manejo de incidentes y procedimientos de respuesta
  • Descripción de la tarea a ser realizada
  • Entregables
  • Procedimientos para el manejo de datos sensibles
  • Poder humano requerido
  • Presupuesto
  • Términos del pago
  • Puntos de contacto para emergencias

Carta de “Salga Libre de la Cárcel”

Cuando sea posible, el cliente debe proporcionar una Carta de “Salga Libre de la Cárcel”. La carta debe exponer algo como lo siguiente:

A quien sea de interés,
Aunque esta persona parece no ser buena, en realidad es parte de una evaluación de seguridad, autorizada por el director de seguridad de “Empresa”.
Por favor dirija cualquier pregunta a seguridad @ empresa . pe

Una carta de este tipo es particularmente útil cuando se busca en la basura a la mitad de la noche.

Fuentes:

https://csrc.nist.gov/publications/detail/sp/800-115/final
http://www.isecom.org/research/