Revista Tecnología

Actividades básicas a desempeñar en un proceso de explotación y post-explotación.

Publicado el 08 septiembre 2018 por Debadastra @jdaanial

Cuando se realiza una auditoría de seguridad contra un sistema, normalmente no se sabe exactamente qué nos encontraremos. Es posible que el sistema en cuestión tenga varias vulnerabilidades que son explotables remotamente, pero debido a una falta de rigor en el proceso de recolección de información, dichos fallos pasen desapercibidos. Es por este motivo que resulta tan importante centrar la mayor parte del tiempo en obtener tanta información como sea posible del objetivo y de esta manera, tener un entendimiento o una imagen global sobre cómo funciona dicho sistema y las cuestiones más relevantes de su configuración, detalles sobre su construcción y relaciones que pueda tener con otros sistemas del entorno. Evidentemente cada auditoría es distinta y depende del alcance acordado con el cliente, en algunos casos se trata simplemente de verificar la seguridad de una aplicación concreta, mientras que en otros casos es necesario realizar pruebas de penetración contra un segmento de red completo. Aunque se trata de escenarios distintos, la metodología que se debe seguir sigue siendo la misma, comenzando por proceso detallado de recolección de información y pruebas sobre los posibles puntos de entrada.

En esta entrada simplemente se procederá a mencionar algunas de las pruebas básicas que un pentester suele desempeñar en una auditoría de seguridad en las etapas de explotación y post-explotación. Sin ser una lista demasiado completa, da una visión general a modo de “checklist” de las cosas que normalmente se suelen analizar en este tipo de trabajos.

Recolección de información.

  • Búsqueda en fuentes de información públicas sobre el objetivo a auditar:AS
  • Aplicación de técnicas de ingeniería social.

Enumeración.

  • Uso de los resultados obtenidos en las fases anteriores para detectar posibles puntos de entrada y componer vectores de ataque.
  • Enfocar esfuerzos en los servicios que se encuentran funcionando en el objetivo.
  • Ganar acceso y aplicar las medidas necesarias para garantizar accesos futuros.
  • No limitarse a una única vía de acceso. Encontrar todas las vulnerabilidades y brechas.
  • Uso de herramientas:
    • Metasploit Framework
    • Nmap, Hping3, Queso, etc.
    • Netcat/Socat
    • Traceroute/wireshark/tcpdump
  • Fingerprinting a servicios comunes:
    • DNS: nslookup, dig, axfr, fierce2, Metasploit Framework.
    • FTP: Metasploit Framework, Nmap, Cliente de FTP, Wireshark, tcpdump.
    • HTTP: Burp, ZAP Proxy, httprint, PostMan, WGET/cURL, DirBuster, etc.
    • IMAP, POP, SMTP: Metasploit Framework, scripts especificos para cada producto.
    • SNMP: onesixtyone, braa, snmpenum, etc.
  • Otros servicios.
    • Bases de datos: PostgreSQL, MySQL, SQL Server, Oracle.
    • Servicios para compartir recursos en red: SMB/Samba
    • Telnet/SSH
    • RDP (Remote Desktop Protocol), VNC.
    • Kerberos.
    • LDAP.

Detección y explotación de vulnerabilidades.

  • Password Guessing – Ataques con diccionario.
    • Servicios de acceso remoto como FTP, Telnet, SMTP, SSH o incluso HTTP, implementan mecanismos de autenticación basados en usuarios y contraseñas.
    • En algunas ocasiones, dichos servicios pueden tener cuentas con credenciales por defecto.
    • El servicio puede ser resistente a un ataque directo, pero si los usuarios no utilizan contraseñas fuertes, es un servicio potencialmente explotable.
    • THC Hydra, Cain & Abel, Crowbar, lsadump2, crunch
  • Password Guessing y Vulnerabilidades en FTP.
    • Múltiples implementaciones vulnerables.
    • Verificar la versión del servicio FTP en ejecución en el objetivo y verificar si existen vulnerabilidades sobre dicha implementación.
    • Verificar si se permite la autenticación anónima y en tal caso, verificar los permisos asignados y los ficheros/directorios a los que se puede acceder.
    • Una búsqueda rápida en shodan.io puede arrojar algunos objetivos potenciales.
  • Vulnerabilidades en SMB/SAMBA.
    • Las principales implementaciones de este protocolo han reportado serias vulnerabilidades a lo largo de su historia, tanto en Windows como en Linux.
    • Las principales implementaciones de este protocolo han reportado serias vulnerabilidades a lo largo de su historia, tanto en Windows como en Linux.
    • Buscar usuarios en el sistema: RPCClient. Suponiendo que el servicio admita sesiones SMB Nulas.
      • rpcclient -U “” SMBSERVER
    • Múltiples módulos en Metasploit Framework:
      • auxiliary/scanner/smb/smb_enumusers_domain
      • auxiliary/scanner/smb/smb_enumshares
      • auxiliary/scanner/smb/smb_login
      • exploit/multi/samba/usermap_script
  • Password Guessing – Vulnerabilidades en HTTP
    • Servidores web mal configurados o con versiones vulnerables.
    • Amplios vectores de ataque posibles, no solamente sobre la infraestructura del servidor web, sino también sobre las aplicaciones web instaladas.
    • Uno de los servicios más explotados por los atacantes en Internet.
    • Múltiples herramientas. Burp Proxy, Metasploit Framework, Nikto, W3AF, Wapiti, sqlmap, etc.
  • Vulnerabilidades en SSH/SFTP/NSF
    • Password guessing + SSH Root Access = Ataque completo aunque poco probable.
    • Servicios “r” mal configurados podrían suministrar una vía de acceso (rlogin, rexec, rshell). Se encuentran disponibles por defecto en los puertos 512, 513 y 514.
    • Comandos útiles para verificar sistema de archivos compartido con NFS:
      • rlogin -l root <target>
      • rpcinfo -p <target>
      • showmount -e <target>
    • Generar clave SSH desde el equipo del atacante e intentar importar dicha clave en la víctima. (necesario instalar nfs-common).
      • mount -t nfs <target>:/ /dir/attacker
      • cat /dir/attacker/.ssh/authorized_keys
      • umount /dir/attacker.
      • grep -lr <key>
      • ssh -i <key> user@target
    • Uso de versiones vulnerables.
      • Debian OpenSSL Predictable PRNG. Verificar (también poco probable, pero…):

http://itsecurity.net/

https://github.com/galkan/crowbar

https://www.exploit-db.com/exploits/5720/

https://web.archive.org/web/20110723091928/

http://digitaloffense.net/tools/debian-openssl/

Detección y explotación de vulnerabilidades.

  • Una vez se gana acceso al sistema, el principal objetivo del atacante será obtener información sobre la víctima y obtener un control total sobre el sistema comprometido.
  • Es necesario ejecutar una búsqueda completa en el sistema para encontrar cualquier tipo de información que pueda resultar útil para el atacante.
  • Normalmente, el sistema comprometido tendrá fuertes limitaciones en términos de herramientas y utilidades para realizar el proceso de post- explotación.
  • Objetivos:
    • Elevación de privilegios y control total del sistema.
    • Evasión de mecanismos de seguridad (firewalls, AVS, IDS, IPS, etc.)
    • Filtración de información.
    • Establecimiento de puertas traseras.
    • Uso del sistema comprometido como pivote para atacar otros sistemas del segmento de red interno.
    • Espionaje y vigilancia de los usuarios del sistema (keyloggers, scrapers, capturas de pantalla, etc.)
  • Recolección de información en Post-Explotación:
    • Listado de los usuarios disponibles en el sistema.
    • Listado de interfaces de red.
    • Listado de procesos en ejecución.
    • Listado de grupos, roles y permisos.
    • Listado de tareas programadas.
    • Listado de dispositivos conectados en el sistema.
    • Listado de herramientas disponibles. (lenguajes de programación, librerías, interpretes, etc).
    • Búsqueda de ficheros con SUID habilitado (Linux).
    • Listado de bases de datos y aplicaciones con configuraciones por defecto.
  • Módulos para recolección de información con Metasploit Framework: Partiendo de una sesión Meterpreter es posible ejecutar múltiples scripts que permiten llevar a cabo muy fácilmente procesos de postexplotación sobre sistemas GNU/Linux, por ejemplo.
    • post/linux/gather/checkvm
    • post/linux/gather/enum_configs
    • post/linux/gather/enum_network
    • post/linux/gather/enum_protections
    • post/linux/gather/enum_system
    • post/linux/gather/enum_users_history
    • post/linux/gather/enum_system
  • Extracción de información y establecimiento de puertas traseras con Metasploit Framework: Partiendo de una sesión Meterpreter también es posible ejecutar comandos que permitan la extracción de información.
    • Sysinfo
    • netstat
    • load sniffer ; sniffer_*
    • get_local_subnets
    • webcam_*
    • keyscan_*
    • hashdump

Como he mencionado al comienzo de este artículo, se trata simplemente de una lista básica que puede ser útil para tener en cuenta las pruebas que se pueden/deben realizar en una auditoría de seguridad contra un sistema dado. No es una lista extensa ni mucho menos, pero es un buen punto de partida, especialmente para aquellos auditores menos experimentados que comienzan a realizar pruebas de seguridad.

Finalmente comentaros que las cosas que se mencionan en este artículo de una forma un tanto superficial, serán vistas en detalle (entre muchas otras cuestiones interesantes) en las próximas formaciones que se llevarán a cabo en Securízame sobre Hacking ético. Concretamente, tenemos una cita el fin de semana del 28 de septiembre con la primera formación del semestre sobre Hacking web y Hacking en sistemas nivel básico/intermedio: https://cursos.securizame.com/courses/curso-presencial-de-pentesting-1-hacking-web-hacking-sistemas-basico/

Luego, el fin de semana del 26 de noviembre tendremos la continuación con el curso avanzado y finalmente, el fin de semana del 23 de noviembre tendremos el entrenamiento práctico con un buen conjunto de máquinas vulnerables que podréis romper.

Lo dicho, espero que esta pequeña lista os sirva en vuestro trabajo y además, espero veros en Securízame en las próximas formaciones que llevaremos a cabo.

Un saludo y Happy Hack!
Adastra.


Volver a la Portada de Logo Paperblog