Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]

155 views

Published on

Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]

Published in: Technology
  • Be the first to comment

Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]

  1. 1. Elías Grande - @3grander Jorge Nuñez - @jnunezho El nacimiento de los ICS Elías Grande Jorge Nuñez @3grander @jnunezho
  2. 2. Elías Grande - @3grander Jorge Nuñez - @jnunezho Whoami2 ● Arquitecto de Seguridad en BBVA ● Profesor en los Másteres de Ciberseguridad de la URJC y de la UCLM ● Doctorando en Seguridad de las TIC por la URJC ● Coautor del libro “Docker: SecDevOps” 2 ● Arquitecto de Seguridad en BBVA Next Technologies especializado en la definición y estudio de arquitecturas basadas en la protección de la información ● Máster en Seguridad en las TIC por la UEM Elías Grande Jorge Nuñez
  3. 3. Elías Grande - @3grander Jorge Nuñez - @jnunezho Agenda ● Introducción ● Estado del arte ● Medusa ● Conclusiones 3
  4. 4. Elías Grande - @3grander Jorge Nuñez - @jnunezho Estado real de la seguridad (I) 4
  5. 5. Elías Grande - @3grander Jorge Nuñez - @jnunezho Estado real de la seguridad (II) 5
  6. 6. Elías Grande - @3grander Jorge Nuñez - @jnunezho https://www.sans.org/cyber-security-summit/archives/file/summit-archive-1493413730.pdf 6
  7. 7. Elías Grande - @3grander Jorge Nuñez - @jnunezho Concepto de “Hack-back” Acciones que una víctima realiza en contra de su atacante con vistas a: ● Identificarlo ● Detener o interrumpir su actividad ● Monitorizar su comportamiento Problemática ● Aspectos legales (respuesta proporcionada, daños colaterales, …) ● Hack-back (-back) 7
  8. 8. Elías Grande - @3grander Jorge Nuñez - @jnunezho 8
  9. 9. Elías Grande - @3grander Jorge Nuñez - @jnunezho Microsoft vs.Vitalwerks (2014) 9 https://blogs.microsoft.com/blog/2014/06/30/microsoft-takes-on-global-cybercrime-epidemic-in-tenth-malware-disruption/
  10. 10. Elías Grande - @3grander Jorge Nuñez - @jnunezho Microsoft vs.Vitalwerks (2014) 10 https://blogs.microsoft.com/blog/2014/06/30/microsoft-takes-on-global-cybercrime-epidemic-in-tenth-malware-disruption/
  11. 11. Elías Grande - @3grander Jorge Nuñez - @jnunezho Defensas pasivas: → IDS/IPS vs. WAF (I) ● IDS (Intrusion Detection System) / IPS (Intrusion Prevention System): Monitoriza el tráfico de red buscando paquetes cuya firma coincide con las almacenadas en su BD a nivel de capa 4-7 (DNS, SMTP, SSH, Telnet, FTP, RDP). 11
  12. 12. Elías Grande - @3grander Jorge Nuñez - @jnunezho ● WAF (Web Application Firewall): Monitoriza (y protege) el tráfico a nivel de capa 7 contra amenazas como SQLi, session hijacking, XSS, parameter tampering, etc. 12 Defensas pasivas: → IDS/IPS vs. WAF (II)
  13. 13. Elías Grande - @3grander Jorge Nuñez - @jnunezho 13 Modo de facturación (I)
  14. 14. Elías Grande - @3grander Jorge Nuñez - @jnunezho 14
  15. 15. Elías Grande - @3grander Jorge Nuñez - @jnunezho El bueno, el malo y el … script kiddie 15
  16. 16. Elías Grande - @3grander Jorge Nuñez - @jnunezho El bueno, el malo y el … script kiddie 16
  17. 17. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas ● Java ○ OWASP ZAP ○ Burp Suite ● Python ○ W3af ○ Wapiti ● .NET ○ Foca 17 ● Ruby ○ Metasploit ○ Arachni ● Perl ○ Nikto ● …
  18. 18. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas ● Java ○ OWASP ZAP ○ Burp Suite ● Python ○ W3af ○ Wapiti ● .NET ○ Foca 18 ● Ruby ○ Metasploit ○ Arachni ● Perl ○ Nikto ● …
  19. 19. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas - OWASP ZAP ● User-agent (tanto en linux como windows) → Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0 ● Ejemplo de firmas: query=query%27%29+UNION+ALL+select+NULL+--+ query=query%22%3Bsleep+15%3B%22 query=query%26cat+%2Fetc%2Fpasswd%26 query=HtTp%3A%2F%2F4704562938676883801.owasp.org query=any%3F%0ASet-cookie%3A+Tamper%3D<uuid> … 19
  20. 20. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas - Burp Suite Pro ● User-agent (https://github.com/codewatchorg/Burp-UserAgent) ● ● Ejemplo firmas (https://github.com/1N3/IntruderPayloads): ' and 1='1 ' and 'one'='one ' group by password having 1=1-- like '%' … 20
  21. 21. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas - W3af ● User-agent → w3af.org ● Ejemplo de firmas (Comienzan con el patrón → <p> = [a-zA-Z0-9]{7}): <p>=SELECT%20TOP%201%20name%20FROM%20sysusers <p>=..%2F..%2FWINNT%2Fsystem32%2Fcmd.exe%3Fdir%2Bc%3A%5C <p>=ps%20-aux%3B <p>=exec%20xp_cmdshell%20dir … 21
  22. 22. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas - Wapiti ● User-agent → python-requests/2.6.0 CPython/2.7.5 Linux/4.15.0-46-generic ● Ejemplo de firmas: %3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22ISO-8859- 1%22%3F%3E%3C%21DOCTYPE%20foo%5B%3C%21ELEMENT%20foo%20ANY %3E%3C%21ENTITY%20xxe%20SYSTEM%20%22file%3A%2F%2Fc%3A%2Fboo t.ini%3E%5D%3E%3Cfoo%3E%26xxe%3B%3C%2Ffoo%3E %22%29%20and%20%28SELECT%20%2A%20FROM%20%5BODBC%3BDRIVER %3DSQL%20SERVER%3BServer%3D1.1.1.1%3BDATABASE%3Dw%5D.a.p%29 %00 … 22
  23. 23. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas - Arachni ● User-agent → Arachni/v1.5.1 ● Ejemplo de firmas (Contienen patrón md5 → <md5> = [a-f0-9]{32}): %3E%22%27%3E%3Cmy_tag_<md5>%2F%3E= />"'><my_tag_<md5>/>? =%3Cmy_tag_<md5>%2F%3E … 23
  24. 24. Elías Grande - @3grander Jorge Nuñez - @jnunezho Herramientas - Nikto ● User-agent → Mozilla/5.00 (Nikto/2.1.6) (Evasions:None) (Test:map_codes) Mozilla/5.00 (Nikto/2.1.6) (Evasions:None) (Test:cgi dir check) Mozilla/5.00 (Nikto/2.1.6) (Evasions:None) (Test:Directory traversal check) () { :; }; echo 93e4r0-CVE-2014-6271: true;echo;echo; … ● Ejemplo de firmas (Contienen la IP, hostname, el patrón [a-zA-Z0-9]{8} u otros): ONLY=%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd%00 ONLY=%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/boot.ini%00 … 24
  25. 25. Elías Grande - @3grander Jorge Nuñez - @jnunezho El saber es poder ● Herramienta automática → patrón/firma detectable ● Vulnerabilidad contra el runtime más fácil que contra la herramienta concreta ● Base de conocimiento compartida (CVE, Exploits, …) 25
  26. 26. Elías Grande - @3grander Jorge Nuñez - @jnunezho Introducción a ● Servicio de Hack-Back SÓLO sobre ataques online → ICS (Intrusion Counterattack System) ● Base de conocimiento basado en los exploit existentes de DoS (Denial of Service) ● Activación basada en el patrón “Circuit Breaker” ● Calibración y aprendizaje automático en base a la experimentación y observación 26
  27. 27. Elías Grande - @3grander Jorge Nuñez - @jnunezho Patrón “Circuit Breaker” (I) 27
  28. 28. Elías Grande - @3grander Jorge Nuñez - @jnunezho Patrón “Circuit Breaker” (II) 28
  29. 29. Elías Grande - @3grander Jorge Nuñez - @jnunezho Patrón “Circuit Breaker” (III) 29
  30. 30. Elías Grande - @3grander Jorge Nuñez - @jnunezho Patrón “Circuit Breaker” (IV) 30
  31. 31. Elías Grande - @3grander Jorge Nuñez - @jnunezho Activación de 31
  32. 32. Elías Grande - @3grander Jorge Nuñez - @jnunezho Arquitectura de 32 EaaS Medusa Engine Input Analyzer DoS Exploit Generator Facade Medusa AI
  33. 33. Elías Grande - @3grander Jorge Nuñez - @jnunezho Funcionamiento del Engine 33 Medusa Engine Review previous hypothesis Calibration Hypothesis generation Empirical observation Chain of Responsibility
  34. 34. Elías Grande - @3grander Jorge Nuñez - @jnunezho 1. Análisis de la request (URL, payload, user-agent, etc.) 2. Generación de la hipótesis (plataforma + tool) Engine - Fase I 34 Medusa Engine Review previous hypothesis Calibration Hypothesis generation Empirical observation Chain of Responsibility
  35. 35. Elías Grande - @3grander Jorge Nuñez - @jnunezho Engine - Fase I 35 Hypothesis generation GET /?query%22%3Bsleep+15%3B%22 HTTP/1.1 Host: www.example.org User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0 Accept: */* { “tool”: “burp”, “platform”: “java” }
  36. 36. Elías Grande - @3grander Jorge Nuñez - @jnunezho 1. Revisión de hipótesis en base al histórico de la IP 2. Ajuste de la hipótesis planteada Engine - Fase II 36 Medusa Engine Review previous hypothesis Calibration Hypothesis generation Empirical observation Chain of Responsibility
  37. 37. Elías Grande - @3grander Jorge Nuñez - @jnunezho Engine - Fase II 37 Review previous hypothesis { “tool”: “zap”, “platform”: “java” } { “tool”: “burp”, “platform”: “java” }
  38. 38. Elías Grande - @3grander Jorge Nuñez - @jnunezho 1. Consulta de exploits disponibles por plataforma 2. Calibración del exploit basada en el histórico de la IP Engine - Fase III 38 Medusa Engine Review previous hypothesis Calibration Hypothesis generation Empirical observation Chain of Responsibility
  39. 39. Elías Grande - @3grander Jorge Nuñez - @jnunezho Engine - Fase III 39 Calibration { “cve”: “CVE-XXXX-XXXX” } { “tool”: “zap”, “platform”: “java” }
  40. 40. Elías Grande - @3grander Jorge Nuñez - @jnunezho 1. Obtención del exploit → EaaS o MongoDB (GridFS) 2. Retorno del exploit concreto al atacante Engine - Fase IV 40 Medusa Engine Review previous hypothesis Calibration Hypothesis generation Empirical observation Chain of Responsibility
  41. 41. Elías Grande - @3grander Jorge Nuñez - @jnunezho Engine - Fase IV 41 Empirical observation { “base64_exploit”: “RXJlcyB1biBmcmlraSBzaSBoYXMgb GxlZ2FkbyBoYXN0YSBhcXXDrSEge EQ=” } { “cve”: “CVE-XXXX-XXXX” }
  42. 42. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS 42 DoS Exploit as a Service
  43. 43. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS 43 Websocket API (Websocketd) DoS Exploit as a Service
  44. 44. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS 44 Websocket API (Websocketd) DoS Exploit as a Service
  45. 45. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS 45 Websocket API (Websocketd) App + pymetasploit DoS Exploit as a Service
  46. 46. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS 46 C++ mock app Websocket API (Websocketd) App + pymetasploit C++ mock app Go mock app /dev/nullDoS Exploit as a Service
  47. 47. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS (I) 47 C++ mock app CVE Websocket API (Websocketd) App + pymetasploit C++ mock app Go mock app /dev/nullDoS Exploit as a Service
  48. 48. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS (II) 48 C++ mock app Websocket API (Websocketd) App + pymetasploit C++ mock app Go mock app /dev/null run run DoS Exploit as a Service
  49. 49. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS (III) 49 C++ mock app Websocket API (Websocketd) App + pymetasploit C++ mock app Go mock app /dev/null exploit over HTTP e1.pcap e1.pcap e1.pcap listen packet dump DoS Exploit as a Service
  50. 50. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS (IV) 50 C++ mock app Websocket API (Websocketd) App + pymetasploit C++ mock app Go mock app /dev/null e1.pcap e1.pcap e1.pcap read raw exploit DoS Exploit as a Service
  51. 51. Elías Grande - @3grander Jorge Nuñez - @jnunezho Componente EaaS (V) 51 C++ mock app Websocket API (Websocketd) App + pymetasploitBase64 exploit C++ mock app Go mock app /dev/null e1.pcap e1.pcap e1.pcap DoS Exploit as a Service
  52. 52. Elías Grande - @3grander Jorge Nuñez - @jnunezho 52
  53. 53. Elías Grande - @3grander Jorge Nuñez - @jnunezho Conclusiones ● La aplicación del concepto Hack-Back mediante una respuesta proporcionada y con daños colaterales mínimos es viable. ● Las herramientas de botón gordo son fácilmente identificables en base a su comportamiento. ● La base de conocimiento DoS podría ser ampliada añadiendo los exploits RCE adaptados. ● En el hack-back online aún existen vías de mejora e innovación. 53
  54. 54. Elías Grande - @3grander Jorge Nuñez - @jnunezho Referencias [1] Snort: IDS & IPS → https://www.snort.org/ [2] Snort Redirector → https://github.com/cssaheel/snort- redirector [3] ModSecurity: Open Source WAF → https://modsecurity.org/ [4] Hystrix → https://github.com/Netflix/Hystrix [5] Websocketd → https://github.com/joewalnes/websocketd [6] PyMetasploit → https://github.com/allfro/pymetasploit [7] Metasploit → https://github.com/rapid7/metasploit-framework 54
  55. 55. Elías Grande - @3grander Jorge Nuñez - @jnunezho 55

×