Hoy vamos a hablar de la vulnerabilidad de DLL Hijacking que se empezó a dilucir en el año 2000 por Georgi Guninski y que ha saltado recientemente a la palestra debido a la publicación de los artículos de Moore (el creador de Metasploit): Exploiting DLL Hijacking Flaws y su kit para encontrar aplicaciones vulnerables Better, Faster, Stronger: DLLHijaAuditKit v2.
Esta vulnerabilidad afecta a numerosas o quizás a la mayoría de las aplicaciones de Windows debido a que utilizan métodos inseguros para cargar DLLs (Dynamically Linked Libraries).
Cuando una aplicación mediante LoadLibrary() o LoadLibraryEx() intenta cargar funciones adicionales enlazando en tiempo real con una librería dinámica y no se especifica su ruta completa, Windows define como primer orden de búsqueda de la DLL el directorio actual del proceso: http://msdn.microsoft.com/en-us/library/ms682586%28v=VS.85%29.aspx.
Si un usuario abre un fichero legítimo mediante una aplicación afectada y en el mismo directorio se encuentra una DLL maliciosa (renombrada como la original), un atacante podría conseguir la ejecución de código arbitrario a través de la carga de esa librería modificada.
Veamos un ejemplo. Imaginemos que un atacante comparte un recurso en red en el que sitúa un video multimedia y una DLL maliciosa simulando tratarse de un códec. Cuando la víctima intenta reproducir el archivo, su media player no reconoce el formato del fichero e intenta cargar un códec desde el mismo directorio. En ese intento de reproducir el archivo, el reproductor cargará la DLL maliciosa y ejecutará el código del atacante.
Ahora buscar en Exploit Database y encontraréis "exploits dllhijacking" para aplicaciones como Power Point, Firefox, Visio, Adobe, Winamp, Google Earth, Photoshop, uTorrent, Wireshark, Acunetix, etc, etc, etc. Con esto podemos hacernos una idea de la facilidad de explotación de esta vulnerabilidad actualmente, así como los vectores de ataque existentes: SMB, ZIPs, WebDAV, pendrives...
¿Y qué podemos hacer para defendernos contra el DLL Hijacking? Pues nosotros recomendamos sobretodo modificar el comportamiento el algoritmo de ruta de búsqueda del archivo DLL que utilizan LoadLibrary y LoadLibraryEx mediante la clave de registro CWDIllegalInDllSearch (http://support.microsoft.com/kb/2264107).
Mientras esperaremos que los distintos fabricantes vayan parcheando sus aplicaciones ;-) (Microsoft ha publicado las guías para desarrolladores Dynamic-Link Library Security y Another technique for Fixing DLL Preloading attacks).
En resumen y para concluir, hablamos de una vulnerabilidad crítica debido a que:
Esta vulnerabilidad afecta a numerosas o quizás a la mayoría de las aplicaciones de Windows debido a que utilizan métodos inseguros para cargar DLLs (Dynamically Linked Libraries).
Cuando una aplicación mediante LoadLibrary() o LoadLibraryEx() intenta cargar funciones adicionales enlazando en tiempo real con una librería dinámica y no se especifica su ruta completa, Windows define como primer orden de búsqueda de la DLL el directorio actual del proceso: http://msdn.microsoft.com/en-us/library/ms682586%28v=VS.85%29.aspx.
Si un usuario abre un fichero legítimo mediante una aplicación afectada y en el mismo directorio se encuentra una DLL maliciosa (renombrada como la original), un atacante podría conseguir la ejecución de código arbitrario a través de la carga de esa librería modificada.
Veamos un ejemplo. Imaginemos que un atacante comparte un recurso en red en el que sitúa un video multimedia y una DLL maliciosa simulando tratarse de un códec. Cuando la víctima intenta reproducir el archivo, su media player no reconoce el formato del fichero e intenta cargar un códec desde el mismo directorio. En ese intento de reproducir el archivo, el reproductor cargará la DLL maliciosa y ejecutará el código del atacante.
Ahora buscar en Exploit Database y encontraréis "exploits dllhijacking" para aplicaciones como Power Point, Firefox, Visio, Adobe, Winamp, Google Earth, Photoshop, uTorrent, Wireshark, Acunetix, etc, etc, etc. Con esto podemos hacernos una idea de la facilidad de explotación de esta vulnerabilidad actualmente, así como los vectores de ataque existentes: SMB, ZIPs, WebDAV, pendrives...
¿Y qué podemos hacer para defendernos contra el DLL Hijacking? Pues nosotros recomendamos sobretodo modificar el comportamiento el algoritmo de ruta de búsqueda del archivo DLL que utilizan LoadLibrary y LoadLibraryEx mediante la clave de registro CWDIllegalInDllSearch (http://support.microsoft.com/kb/2264107).
Mientras esperaremos que los distintos fabricantes vayan parcheando sus aplicaciones ;-) (Microsoft ha publicado las guías para desarrolladores Dynamic-Link Library Security y Another technique for Fixing DLL Preloading attacks).
En resumen y para concluir, hablamos de una vulnerabilidad crítica debido a que:
- afecta a un gran y todavía desconocido número de aplicaciones
- su explotación es relativamente fácil o muy fácil y podría comprometer el sistema afectado (más aún si la aplicación vulnerable se ejecuta con un usuario con permisos administrativos)
- cada aplicación debe ser parcheada individualmente por cada fabricante
- http://seclists.org/bugtraq/2010/Aug/210
- http://www.acrossecurity.com/aspr/ASPR-2010-08-18-1-PUB.txt
- http://support.apple.com/kb/HT4105
- http://www.apple.com/itunes/
- http://www.apple.com/itunes/download
- http://secunia.com/advisories/39135
- http://www.microsoft.com/technet/security/advisory/2269637.mspx
- http://securitytracker.com/id?1024355
- http://www.exploit-db.com/exploits/14721
- http://www.exploit-db.com/exploits/14723
- http://www.exploit-db.com/exploits/14726
- http://xforce.iss.net/xforce/xfdb/61321
- http://osvdb.org/67329
- http://xforce.iss.net/xforce/xfdb/61223
- http://www.securityfocus.com/bid/42541
- http://www.theregister.co.uk/2010/08/20/windows_code_execution_vuln/
- http://www.exploit-db.com/exploits/14731
- http://www.exploit-db.com/exploits/14730
- http://www.exploit-db.com/exploits/14728
- http://secunia.com/advisories/41098
- http://www.vupen.com/english/advisories/2010/2173
- http://www.exploit-db.com/exploits/14755
- http://www.corelan.be:8800/index.php/2010/08/25/dll-hijacking-kb-22696...
- http://secunia.com/advisories/41124
- http://www.exploit-db.com/exploits/14764
- http://secunia.com/advisories/41094
- http://secunia.com/advisories/41119
- http://www.exploit-db.com/exploits/14753
- http://www.exploit-db.com/exploits/14752
- http://www.exploit-db.com/exploits/14749
- http://www.exploit-db.com/exploits/14740
- http://www.exploit-db.com/exploits/14735
- http://secunia.com/advisories/41110
- http://www.vupen.com/english/advisories/2010/2171
- http://blog.zoller.lu/2010/08/cve-2010-xn-loadlibrarygetprocaddress.ht...
- http://secunia.com/advisories/41060
- http://www.vupen.com/english/advisories/2010/2170
- http://www.exploit-db.com/exploits/14741
- http://www.exploit-db.com/exploits/14743
- http://secunia.com/advisories/41109
- http://www.vupen.com/english/advisories/2010/2175
- http://www.exploit-db.com/exploits/14739
- http://secunia.com/advisories/41107
- http://www.exploit-db.com/exploits/14750
- http://www.vupen.com/english/advisories/2010/2172
- http://secunia.com/advisories/41112
- http://www.exploit-db.com/exploits/14734
- http://www.vupen.com/english/advisories/2010/2174
- http://www.exploit-db.com/exploits/14747
- http://www.exploit-db.com/exploits/14756
- http://secunia.com/advisories/41083
- http://www.exploit-db.com/exploits/14732
- http://www.vupen.com/english/advisories/2010/2167
- http://secunia.com/advisories/41064
- http://www.vupen.com/english/advisories/2010/2165
- http://www.exploit-db.com/exploits/14748
- http://secunia.com/advisories/41051
- http://www.vupen.com/english/advisories/2010/2164
- http://www.exploit-db.com/exploits/14744
- http://www.exploit-db.com/exploits/14746
- http://secunia.com/advisories/41104
- http://www.kb.cert.org/vuls/id/707943
- http://packetstormsecurity.org/1008-exploits/bloodshed-hijack.txt
- http://packetstormsecurity.org/1008-exploits/wscript-dllhijack.txt
- http://www.exploit-db.com/exploits/14794
- http://packetstormsecurity.org/1008-exploits/putty-dllhijack.txt
- http://www.exploit-db.com/exploits/14796
- http://packetstormsecurity.org/1008-exploits/teammate-dllhijack.tgz
- http://secunia.com/advisories/41103
- http://packetstormsecurity.org/1008-exploits/safari501-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/opera_dll_hijacking.c
- http://packetstormsecurity.org/1008-exploits/skype.c
- http://www.exploit-db.com/exploits/14766
- http://www.vupen.com/english/advisories/2010/2197
- http://packetstormsecurity.org/1008-exploits/ettercap-dllhijack.txt
- http://www.exploit-db.com/exploits/14762
- http://www.vupen.com/english/advisories/2010/2189
- http://packetstormsecurity.org/1008-exploits/snagit-dllhijack.tgz
- http://secunia.com/advisories/41168
- http://secunia.com/advisories/41151
- http://www.exploit-db.com/exploits/14783
- http://www.vupen.com/english/advisories/2010/2201
- http://packetstormsecurity.org/1008-exploits/thunderbird-dllhijack.txt
- http://secunia.com/advisories/41131
- http://packetstormsecurity.org/1008-exploits/adobe_indesign_cs4.c
- http://www.exploit-db.com/exploits/14775
- http://secunia.com/advisories/41126
- http://packetstormsecurity.org/1008-exploits/adobe_illustrator_cs4.c
- http://www.exploit-db.com/exploits/14773
- http://secunia.com/advisories/41134
- http://www.vupen.com/english/advisories/2010/2198
- http://packetstormsecurity.org/1008-exploits/adobe_on_location.c
- http://www.exploit-db.com/exploits/14772
- http://packetstormsecurity.org/1008-exploits/adobe_premier_pro_cs4.c
- http://www.exploit-db.com/exploits/14771
- http://secunia.com/advisories/41118
- http://www.vupen.com/english/advisories/2010/2196
- http://packetstormsecurity.org/1008-exploits/adobe_device_central_cs5....
- http://packetstormsecurity.org/1008-exploits/adobedc_dll.txt
- http://www.exploit-db.com/exploits/14784
- http://packetstormsecurity.org/1008-exploits/adobeem_dll.txt
- http://www.exploit-db.com/exploits/14785
- http://packetstormsecurity.org/1008-exploits/adobeest_dll.txt
- http://packetstormsecurity.org/1008-exploits/Adobe-rdr9-dll-hijack.cpp
- http://secunia.com/advisories/41114
- http://www.zeroscience.mk/en/vulnerabilities/ZSL-2010-4956.php
- http://secunia.com/advisories/41136
- http://www.vupen.com/english/advisories/2010/2200
- http://packetstormsecurity.org/1008-exploits/msgc-dllhijack.tgz
- http://www.exploit-db.com/exploits/14758
- http://www.exploit-db.com/exploits/14770
- http://packetstormsecurity.org/1008-exploits/mswpg-dllhijack.txt
- http://secunia.com/advisories/41122
- http://packetstormsecurity.org/1008-exploits/windowsics-dllhijack.txt
- http://www.exploit-db.com/exploits/14778
- http://packetstormsecurity.org/1008-exploits/mswc-dllhijack.txt
- http://www.vupen.com/english/advisories/2010/2188
- http://packetstormsecurity.org/1008-exploits/msog-dllhijack.tgz
- http://www.exploit-db.com/exploits/14782
- http://packetstormsecurity.org/1008-exploits/msopp-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/mspowerp_dll.txt
- http://packetstormsecurity.org/1008-exploits/msvisio-dllhijack.tgz
- http://www.vupen.com/english/advisories/2010/2192
- http://packetstormsecurity.org/1008-exploits/bitlocker-dllhijack.tgz
- http://packetstormsecurity.org/1008-exploits/msab-dllhijack.tgz
- http://www.exploit-db.com/exploits/14768
- http://secunia.com/advisories/41137
- http://packetstormsecurity.org/1008-exploits/roxiomydvd-dllhijack.txt
- http://www.exploit-db.com/exploits/14781
- http://packetstormsecurity.org/1008-exploits/roxiops-dllhijack.tgz
- http://www.vupen.com/english/advisories/2010/2193
- http://packetstormsecurity.org/1008-exploits/roxiocreator-dllhijack.tx...
- http://packetstormsecurity.org/1008-exploits/coreldrw_dll.txt
- http://www.exploit-db.com/exploits/14786
- http://packetstormsecurity.org/1008-exploits/corelpp_dll.txt
- http://www.exploit-db.com/exploits/14787
- http://www.vupen.com/english/advisories/2010/2194
- http://secunia.com/advisories/41092
- http://www.cs.ucdavis.edu/research/tech-reports/2010/CSE-2010-2.pdf
- http://www.vupen.com/english/advisories/2010/2199
- http://www.vupen.com/english/advisories/2010/2190
- http://packetstormsecurity.org/1008-exploits/mediaplayerclassic-dllhij...
- http://packetstormsecurity.org/1008-exploits/mplayerc_dll.txt
- http://packetstormsecurity.org/1008-exploits/nvidia-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/demontoollite-dllhijack.t...
- http://packetstormsecurity.org/1008-exploits/googlee_dll.txt
- http://www.exploit-db.com/exploits/14765
- http://www.exploit-db.com/exploits/14788
- http://www.exploit-db.com/exploits/14769
- http://www.exploit-db.com/exploits/14791
- http://www.exploit-db.com/exploits/14790
- http://secunia.com/advisories/41093
- http://www.vupen.com/english/advisories/2010/2195
- http://packetstormsecurity.org/1008-exploits/winamp_dll.txt
- http://www.exploit-db.com/exploits/14789
- http://osvdb.org/67530
- http://osvdb.org/67531
- http://osvdb.org/67532
- http://osvdb.org/67533
- http://osvdb.org/67534
- http://osvdb.org/67535
- http://www.vupen.com/english/advisories/2010/2213
- http://www.vupen.com/english/advisories/2010/2212
- http://www.vupen.com/english/advisories/2010/2211
- http://www.vupen.com/english/advisories/2010/2210
- http://www.vupen.com/english/advisories/2010/2209
- http://www.vupen.com/english/advisories/2010/2208
- http://osvdb.org/67494
- http://osvdb.org/67499
- http://osvdb.org/67482
- http://osvdb.org/67492
- http://osvdb.org/67481
- http://osvdb.org/67497
- http://osvdb.org/67496
- http://osvdb.org/67484
- http://osvdb.org/67480
- http://osvdb.org/67479
- http://osvdb.org/67478
- http://packetstormsecurity.org/1008-exploits/intervideo-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/vlcmp-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/acunetix-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/utorrent-dllhijack.tgz
- http://packetstormsecurity.org/1008-exploits/utorrent-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/wireshark-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/mspp-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/windowsliveemail-dllhijac...
- http://packetstormsecurity.org/1008-exploits/firefox368-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/mswinmm-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/msicsw-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/opera-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/ms7wab-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/teamviewer-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/adobedwcs4-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/adobedwcs5-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/adobepscs2-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/bsplayer-dllhijack.txt
- http://packetstormsecurity.org/1008-exploits/avastlf-dllhijack.txt
- http://secunia.com/advisories/41174
- http://secunia.com/advisories/41142
- http://secunia.com/advisories/41156
- http://secunia.com/advisories/41146
- http://osvdb.org/67501
- http://extraexploit.blogspot.com/2010/08/dll-hijacking-my-test-cases-o...
- http://osvdb.org/67502
- http://osvdb.org/67500
- http://osvdb.org/67498
- http://osvdb.org/67495
- http://osvdb.org/67493
- http://osvdb.org/67503
- http://packetstormsecurity.org/1008-exploits/powerpoint2007-DLL.c
- http://packetstormsecurity.org/1008-exploits/msvisio_dll.txt
- http://osvdb.org/67504
- http://www.exploit-db.com/exploits/14816
- http://packetstormsecurity.org/1008-exploits/quicktime_pictureviwer_dl...
- http://packetstormsecurity.org/1008-exploits/Nero_dllhijack_exploit.ra...
- http://packetstormsecurity.org/1008-exploits/Microstation_dllhijact_ex...
- http://packetstormsecurity.org/1008-exploits/wlm-dll-hijack.cpp
- http://packetstormsecurity.org/1008-exploits/wlmmsgsres-dll-hijack.cpp
Comentarios
Publicar un comentario