• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Inicio
  • Auditoría
  • Eventos
  • Formación
  • General
  • Malware
  • Vulnerabilidades
  • Un blog de

Una al Día

Boletín de noticias de Seguridad Informática ofrecido por Hispasec

You are here: Home / General / Análisis del proceso de ejecución de código remoto en Windows mediante archivos .LNK

Análisis del proceso de ejecución de código remoto en Windows mediante archivos .LNK

28 marzo, 2020 Por Raquel Gálvez Leave a Comment

Durante el mes de febrero Microsoft lanzó parches para nada más y nada menos que 99 CVEs. Entre estas vulnerabilidades una de ellas destacó particularmente: la identificada con CVE-2020-0729, basada en la ejecución de código remoto.

Uno de los aspectos que convierte a esta vulnerabilidad en algo tan llamativo es que, históricamente, los exploits para vulnerabilidades encontradas en archivos .LNK han sido usados para distribuir malware (como, por ejemplo, Stuxnet) y en la mayoría de los casos, el mero hecho de abrir una carpeta que contenga un archivo .LNK malicioso es suficiente para explotar la vulnerabilidad.

Inicio del análisis

Al iniciar el análisis los investigadores de TrendMicro se dieron cuenta de que al lanzar los parches, Microsoft no había incluido ninguna de las actualizaciones que le correspondían a las DLL normalmente asociadas al procesamiento de archivos LNK, como por ejemplo shell32.dll y windows.storage.dll. No obstante, sí que se podía encontrar la DLL StructureQuery.dll, en base a la que se han nombrado explícitamente vulnerabilidades como la que lleva el identificador CVE-2018-0825. Los investigadores descubrieron que los archivos LNK y esta DLL están relacionados en cuanto a que esta última es usada por Windows Search, que es precisamente donde los archivos LNK y la DLL StructureQuery vienen a encontrarse.

Características de los archivos .LNK

Los archivos .LNK se conocen principalmente por contener estructuras binarias que crean un atajo a un archivo o una carpeta, pero una funcionalidad menos conocida es que pueden contener una búsqueda almacenada. Normalmente, cuando un usuario busca un archivo en Windows 10, se muestra la opción «Buscar herramienta» para permitir al usuario afinar la búsqueda y seleccionar opciones avanzadas para la misma. Esta opción también permite a los usuarios guardar la búsqueda existente para reutilizarla en un futuro, lo cual genera un archivo XML con la extensión «.search-ms» al guardarlo, un formato de archivo que no se encuentra totalmente documentado.

Fuente de la imagen: Zero Day Initiative

Sin embargo, esta no es la única forma de guardar una búsqueda. Si se hace clic y se arrastra a otra carpeta el icono de resultados de búsqueda de la barra de direcciones (resaltado en la siguiente imagen), se crea un archivo .LNK que contiene una versión serializada de los datos que, de otra manera, almacenaríamos en un archivo XML, específicamente del tipo antes mencionado: «search-ms«.

Fuente de la imagen: Zero Day Initiative

Considerando estos aspectos, los investigadores realizaron un análisis del parche para StructureQuery usando BinDiff.

Fuente de la imagen: Zero Day Initiative

Tan solo una de las funciones cambia: StructuredQuery1::ReadPROPVARIANT(), y parece hacerlo de manera considerable, según se puede observar en las gráficas de flujo de la siguiente imagen:

Fuente de la imagen: Zero Day Initiative

Para saber lo que hace esta función en un archivo .LNK es necesario analizar las estructuras que podemos encontrar en un archivo .LNK de una búsqueda almacenada.

Los archivos link de Windows shell tienen múltiples componentes esenciales y opcionales. Cada archivo link de la shell debe tener, al menos, una cabecera de shell link (Shell Link Header), la cual tiene el siguiente formato:

Fuente de la imagen: Zero Day Initiative

El campo LinkFlags clarifica la ausencia de estructuras opcionales así como varias opciones como, por ejemplo, si las cadenas del archivo link shell están codificadas en Unicode o no. Lo que aparece a continuación es un ejemplo del campo LinkFlags:

Fuente de la imagen: Zero Day Initiative

La flag HasLInkTargetIDList, configurada en la mayoría de las ocasiones, se representa con la posición «A», el bit menos significativo del primer byte del campo LinkFlags. Si se configura, la estructura de LinkTargetIDList debe seguir a la cabecera de shell link. La estructura LinkTargetIDList especifica el objetivo del link y tiene la siguiente forma:

Fuente de la imagen: Zero Day Initiative

La estructura IDList contiene el formato de una lista de ID de objetos persistente:

Fuente de la imagen: Zero Day Initiative

El ItemIDList tiene la misma función que la ruta de un archivo, donde cada estructura de ItemID se corresponde con el componente de una ruta en una jerarquía. ItemID puede hacer referencia a sistemas de archivos de carpetas reales, carpetas virtuales como el Panel de Control o Búsquedas almacenadas, u otras formas de datos insertados que sirven como «atajo» para ejecutar funcionalidades específicas. Para la vulnerabilidad de la que hablamos resulta de particular importancia las estructuras ItemIDList e ItemID, presentes en un archivo .LNK que contiene una búsqueda almacenada.

Cuando un usuario crea un atajo que contiene información sobre una búsqueda, el archivo resultante contiene una estructura IDList que comienza con una Carpeta ItemID Delegada, seguida de lo denominado como «User Property View ItemID» para hacer búsquedas. En general, ItemID comienza de la siguiente manera:

Fuente de la imagen: Zero Day Initiative

El valor de los dos bytes al comienzo de 0x0004 es usado en combinación con ItemSize e ItemType para ayudar a determinar ItemID. Por ejemplo, si ItemSize es 0x14 e ItemType es 0x1F, los dos bytes de 0x0004 son comprobados para ver si su valor es mayor que el de ItemSize. De ser así, se asume que lo que queda de ItemID será un Identificador Único global de 16 bytes (GUID, por sus siglas en inglés). Esta es la estructura típica del primer ItemID encontrado en un archivo .LNK que apunta a otro archivo o carpeta. Si ItemSize es mayor que el tamaño requerido para contener una GUID pero menor que los bytes de 0x0004, los datos restantes tras el GUID se consideran ExtraDataBlock, el cual tiene un campo con un tamaño inicial de 2 bytes seguido por dicha cantidad de bytes.

En el caso de una carpeta ItemID delegada, esos 2 mismos bytes se corresponden con otro campo para el resto de la estructura, llevando a lo mostrado en la siguiente imagen:

Fuente de la imagen: Zero Day Initiative

Todos los GUID en los archivos .LINK son almacenados usando la representación RPC IDL para GUID. Dicha representación se traduce en que los tres primeros segmentos del GUID se almacenan como pequeñas representaciones finales del fragmento en su conjunto, mientras que cada byte en los dos últimos segmentos se considera que son individuales. Por ejemplo, el GUID {01234567-1234-ABCD-9876-0123456789AB} se representa de la siguiente manera en formato binario: \x67\x45\x23\x01\x34\x12\xCD\xAB\x98\x76\x01\x23\x45\x67\x89\xAB.

La carpeta ItemID delegada es seguida por User Property View ItemID, que tiene una estructura similar a la de la carpeta ItemID delegada:

Fuente de la imagen: Zero Day Initiative

De particular importancia resulta el campo PropertyStoreList, el cual, si está presente, contiene uno o más objetos serializados PropertyStore, cada uno de los cuales tiene la siguiente estructura:

Fuente de la imagen: Zero Day Initiative

El campo Property Store Data es una secuencia de propiedades. Todas las propiedades de cada uno de los Property Store Data pertenecen a la clase identificada por el GUID Property Format. Cada propiedad específica es identificada con un ID numérico conocido como Property ID o PID, el cual, cuando se combina con el GUID Property Format, es nombrado clave de propiedad o PKEY. La PKEY se determina de una forma ligeramente diferente si el GUID Property Format es igual a {D5CDD505-2E9C-101B-9397-08002B2CF9AE}. Cada propiedad, entonces, se considera que forma parte de una «bolsa de propiedades» y tiene la siguiente estructura:

Fuente de la imagen: Zero Day Initiative

Las bolsas de propiedades generalmente contienen elementos con los nombres “Key:FMTID” y “Key:PID”, identificando a la PKEY específica que determina la interpretación del resto de elementos. Las implementaciones de la Bolsa de Propiedades Específicas también requerirá que otros elementos estén presentes en orden para ser válidos.

Si el GUID Property Format no es igual al valor previamente mencionado para la bolsa de propiedades, cada propiedad será identificada con un valor íntegro del PID y tendrá la siguiente estructura:

Fuente de la imagen: Zero Day Initiative

El campo TypedPropertyValue corresponde al valor introducido de una propiedad en un conjunto de propiedades. Asimismo, en las cabeceras proporcionadas con el Windows SDK se definen múltiples PKEY. Sin embargo, muchas de ellas no tienen documentación y solo se pueden identificar examinando referencias en los símbolos de debugging para las librerías asociadas. En el caso de los archivos .LNK que contienen búsquedas almacenadas, el primer PropertyStore en User Property View ItemID tiene un GUID Property Format cuyo valor es {1E3EE840-BC2B-476C-8237-2ACD1A839B22} y que contiene una propiedad con ID 2, que se corresponde con PKEY_FilterInfo.

El campo TypedPropertyValue de PKEY_FilterInfo consiste en una propiedad VT_STREAM. Normalmente, dicha propiedad está formada por un tipo 0x0042, 2 bytes de relleno, y un IndirectPropertyName que especifica el nombre de un stream alterno que, o bien contiene un paquete PropertySetStream para el almacenamiento simple de propiedades, o el elemento stream «CONTENTS» para un almacenamiento complejo de propiedades. Este nombre se especifica con la cadena de caracteres «prop» seguido de una cadena decimal que es corresponde con un identificador de propiedad en un paquete PropertySet. Sin embargo, debido a que los archivos .LNK utilizan propiedades almacenadas serializadas que se encuentran en las propiedades de VT_STREAM, IndirectPropertyName solo se comprueba para ver si comienza con la cadena «prop«. El valor en sí es ignorado. Esto genera la siguiente estructura de TypedPropertyValue:

Fuente de la imagen: Zero Day Initiative

El contenido del campo Stream Data depende de la PKEY específica a la que pertenece la propiedad stream. En el caso de PKEY_FilterInfo, Stream Data básicamente contiene una estructura PropertyStoreList con más estructuras serializadas PropertyStore y tiene la siguiente apariencia:

Fuente de la imagen: Zero Day Initiative

El conjunto de PropertyStoreList en el stream PKEY_FilterInfo es una versión serializada de la etiqueta «condiciones» en un archivo .search-ms. Lo siguiente es un ejemplo de la etiqueta de condiciones:

Fuente de la imagen: Zero Day Initiative

La funcionalidad precisa del elemento atributo no está documentada públicamente. Sin embargo, un elemento de este tipo contiene un GUID que corresponde a CONDITION_HISTORY, y un CLSID que corresponde a la clase CConditionHistory en StructuredQuery, lo que significaría que el conjunto de condiciones y atributos representa el historial de peticiones de búsqueda antes de ser almacenado. Cuando esta estructura es serializada y pasa a ser una propiedad almacenada, se coloca en la estructura PKEY_FilterInfo PropertyStoreList, que toma la forma de una bolsa de propiedades con el GUID Property Format anteriormente mencionado. De manera más específica, la estructura Condiciones serializada se encuentra en en VT_STREAM Property, la cual se identifica con el nombre «Condición». Esto resulta en un objeto PropertyStore que tiene la siguiente estructura:

Fuente de la imagen: Zero Day Initiative

El objeto Condición es generalmente un objeto de «Condición simple» (Leaf Condition) o «Condición Compuesta» (Compound Condition) que contiene una serie de objetos que normalmente incluyen uno o más objetos de Condición Simple y posiblemente objetos adicionales de Condición Compuestas. Ambos objetos condicionales comienzan con la siguiente estructura:

Fuente de la imagen: Zero Day Initiative

El GUID de Condición será {52F15C89-5A17-48E1-BBCD-46A3F89C7CC2} para las Condiciones Simples y {116F8D13-101E-4FA5-84D4-FF8279381935} para las Condiciones Compuestas. El campo Atributos consiste en estructuras de atributos, donde el número de estructuras de atributos se define con el campo «Número de Atributos». Cada estructura de atributo corresponde al elemento de un atributo del archivo .search-ms y comienza de la siguiente manera:

Fuente de la imagen: Zero Day Initiative

La estructura restante de un atributo depende del AttributeID y del CLSID. Para el atributo anteriormente mencionado CONDITION_HISTORY el valor será {9554087B-CEB6-45AB-99FF-50E8428E860D} y tiene un CLSID de {C64B9B66-E53D-4C56-B9AE-FEDE4EE95DB1}. Lo que queda de la estructura será un objeto del tipo ConditionHistory que tendrá la siguiente forma (los campos son nombrados igual que los atributos que coinciden con el elemento del atributo XML):

Fuente de la imagen: Zero Day Initiative

Si el valor de has_nested_conditions es mayor que cero, el atributo CONDITION_HISTORY tendrá un objeto condicional anidado, el cual podría tener a su vez más atributos anidados con condiciones anidadas, y así sucesivamente.

Una vez que el atributo de mayor importancia es leído, así como todas sus estructuras asociadas, las estructuras de Condición Compuesta y Condición Simple son las siguientes, con inicios relacionados con el final del campo Attributes:

Fuente de la imagen: Zero Day Initiative

El campo numfixedObjects determina cuántas condiciones adicionales (normalmente Condiciones Simples) seguirán de manera inmediata.

La estructura restante de una Condición Simple es como se muestra en la siguiente imagen, con inicios relacionados con el final del campo Attributes:

Fuente de la imagen: Zero Day Initiative

La presencia del estructuras TokenInformationComplete depende de si la flag que le precede está configurada. Si no lo está, la estructura no está presente, y por tanto le seguirá la siguiente flag. Si, por el contrario, está configurada, encontraremos la estructura que se observa en la imagen:

Fuente de la imagen: Zero Day Initiative

El siguiente conjunto muestra la estructura más simple posible de un archivo .LNK con una búsqueda almacenada, habiendo sido eliminadas las estructuras más irrelevantes para reducir su complejidad:

Fuente de la imagen: Zero Day Initiative

Debemos tener en mente, según los investigadores, que una búsqueda con una Condición Simple resulta en la estructura más simple posible, mientras que, frecuentemente, un archivo .LNK con una búsqueda almacenada comenzará con una Condición Compuesta y muchas estructuras relacionadas, incluyendo muchas Condiciones Simples.

La vulnerabilidad

La vulnerabilidad se basa en cómo se trata el campo PropertyVariant. El campo PropertyVariant de una Condición Simple difícilmente corresponde a una estructura PROPVARIANT. Es importante mencionar que StructuredQuery parece tener una implementación ligeramente personalizada de la estructura PROPVARIANT ya que los bytes de relleno especificados en la documentación de Microsoft generalmente no aparecen.

También es importante tener en cuenta que el valor de 0x1000 (o VT_VECTOR) combinado con otro tipo significa que habrá varios valores del tipo especificado.

A la hora de parsear el campo PropertyVariant, es la función vulnerable StructuredQuery1::ReadPROPVARIANT() la que se encarga del proceso:

Fuente de la imagen: Zero Day Initiative

La función comprueba si se trata de VT_UI4 (0x0013), y en caso de que no, entra en una declaración switch.

La vulnerabilidad en sí consiste en cómo se trata a una PropertyVariant que tiene VT_VARIANT (0x000C). VT_VARIANT se usa normalmente en combinación con VT_VECTOR, el cual resulta en una serie de estructuras PropertyVariant. En otras palabras, es como tener un array donde los miembros del mismo pueden ser cualquier tipo de dato.

Cuando el tipo de PropertyVariant se configura como VT_VARIANT (0x000C), el campo completo se comprueba para ver si se ha configurado VT_VECTOR:

Fuente de la imagen: Zero Day Initiative

Si no se ha configurado, un buffer de 24 bytes será localizado por medio de una llamada a CoTaskMemAlloc() y el buffer pasa a una llamada recursiva a ReadPROPVARIANT() con la intención de que dicho buffer se complete con la propiedad que siga inmediatamente al campo VT_VARIANT. Sin embargo, el buffer no se inicia (se completa con bytes nulos) antes de ser transferido a ReadPROPVARIANT().

Si la propiedad anidada tiene el tipo VT_CF (0x0047), una propiedad cuya funcionalidad pretendida es contener un redirector al portapapeles, ReadPROPVARIANT(), ejecuta la misma verificación de VT_VECTOR y si no está configurado, intenta escribir los próximos 4 bytes del stream en una localización a la que se apunta mediante un valor de 8 bytes en el buffer de 24 bytes previamente localizado.

Fuente de la imagen: Zero Day Initiative

Debido al hecho de que el buffer no se inicia, la información será escrita en una posición no definida de la memoria, lo que puede llevar a la ejecución de código aleatorio. El intento de escritura de datos se puede ver en la siguiente imagen:

Fuente de la imagen: Zero Day Initiative

Esencialmente, si un atacante puede manipular la memoria de la manera correcta para que el buffer no iniciado contenga un valor controlado por el usuario malicioso, esta persona podría escribir cualquier dato de 4 en 4 bytes en la dirección de memoria que hayan considerado oportuna.

Conclusión

Para solventar esta vulnerabilidad se procedió a completar el buffer de 24 bytes con bytes nulos, asegurando así que el atacante no pueda utilizar información del resto del buffer procedente de usos anteriores de la memoria. El parche se lanzó en febrero (aunque el día 10 de marzo de este año publicaron otra vulnerabilidad relacionada con archivos .LNK, aunque no está relacionada con la que se explica en este post).

Más información

CVE-2020-0729: Remote code execution through .LNK files

CVE-2018-0825 – StructuredQuery Remote Code Execution Vulnerability

CVE-2020-0729 – LNK Remote Code Execution Vulnerability

CVE-2020-0684 – LNK Remote Code Execution Vulnerability

Compártelo:

  • Twitter
  • Facebook
  • LinkedIn
  • Reddit
  • Telegram
  • WhatsApp

Publicaciones relacionadas

Filed Under: General, Vulnerabilidades Tagged With: cve, Windows 10

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Primary Sidebar

Buscador

Email Newsletter

Suscríbase y reciba Una al Día en su correo.

UADCAST

Populares de UAD

  • Ejecución Remota de Código en los servidores de Microsoft Office 365 sin resolver
  • Bitdefender publica un descifrador gratuito para el ransomware Darkside
  • Detectado un nuevo troyano bancario para Android
  • Actualización de Nvidia corrige vulnerabilidad crítica
  • Fallos críticos en la pila TCP/IP afectan a millones de dispositivos IoT

Entradas recientes

  • El Banco de la Reserva de Nueva Zelanda sufre una filtración de datos críticos
  • Ejecución Remota de Código en los servidores de Microsoft Office 365 sin resolver
  • Actualización de Nvidia corrige vulnerabilidad crítica
  • Bitdefender publica un descifrador gratuito para el ransomware Darkside
  • Detectado un nuevo troyano bancario para Android
  • El FBI, CISA, NSA acusan a Rusia del ciberataque a SolarWinds
  • Fallos críticos en la pila TCP/IP afectan a millones de dispositivos IoT
  • Correo electrónico
  • Facebook
  • LinkedIn
  • RSS
  • Twitter

Footer

Una al Día

Una-al-día nació a raíz de un inocente comentario en un canal IRC hace casi 19 años. A través de los archivos, un lector curioso puede ver cómo ha cambiado (o no) la seguridad de la información desde entonces.

Entradas recientes

  • El Banco de la Reserva de Nueva Zelanda sufre una filtración de datos críticos
  • Ejecución Remota de Código en los servidores de Microsoft Office 365 sin resolver
  • Actualización de Nvidia corrige vulnerabilidad crítica
  • Bitdefender publica un descifrador gratuito para el ransomware Darkside
  • Detectado un nuevo troyano bancario para Android

Etiquetas

#bugbounty #ddos #sphinx 0-day 0-zay 0day 0v1ru$ 2FA 4g 5g 10kblaze 888 RAT account hijack ace acrobat acrobat reader actualizacion Actualización actualizar adb address bar AdMaxim Adobe Adobe Bridge Adware Afeter Effects Agencia Tributaria agoda Alemania Alexa Alien Aliznet alphabet Amadeus Amazingco Amazon amd among us Anatova Andr/Xgen2-CY Android Android lowcost androMut AngryPolarBearBug2 anonymous antivirus any.run apache api apk app Apple apps APT apt-c-23 apt39 APT41 apt framework Aptoide apuestas archive_tar arp asp asus ata ataque Atlantis ATP attack Audio Australia autenticación Authentication bypass autodesk avaddon avira azure backdoor Baltimore ban bancario bancos bandook bank banker barra navegacion base de datos BBC BGP BIG-IP bill gates binary defense binaryedge bing biometrica biometría bios bird bitbucket bitcoin bitdefender blackhat bladabindi BLE bleedingtooth BLESA blink blockchain bluekeep blueleaks Bluetooth Bluetooth Low Energy bluez boca bof boletín booking bootstrap-sass borrado bot botnet bots breach brecha Brikerbot british airways bruteforce BSD bsides buffer overflow Bug Bug bounty bugbounty Bulgaria bypass C&C C2C camaras seguridad cambridge camera Campaign canada cannabis canon capcom car carbanak carding ccleaner cctv CDN CDRThief cem censura centurylink cerberus Certifados certificacion Certificates challenge Checkers checkpoint Check Point China chingari Chrome chromium CI Ciberataque Cibercrimen ciber delincuentes ciberdelincuentes ciberespionaje ciberguerra ciberseguridad cifrado Cisco Citrix clave privada cloud CloudCMS cloudfare cmd cms cng.sys code execution CoderWare coinhive ColdFusion comrat conferencia confidencial congreso congresos conti contraseñas Cookies copy-on-write Corea del Norte coronavirus covid Covid19 cow cpu Crack Credential-Stuffing CriptoCert criptografía criptomoneda Criptomonedas criptored critical Cross-Site Request Forgery CrowdStrike crypt32 cryptojacking Cryptolocker cryptominado cryptomonedas críticas CSP CSRF ctf customer support cve CVE-202-6109 CVE-2015-4670 CVE-2017-0199 CVE-2019-1619 CVE-2019-1620 CVE-2019-2633 CVE-2019-2638 CVE-2019-2725 CVE-2019-3719 CVE-2019-5096 CVE-2019-5544 CVE-2019-7838 CVE-2019-7839 CVE-2019-7840 CVE-2019-7845 CVE-2019-7850 CVE-2019-11043 CVE-2019-11510 CVE-2019-11707 CVE-2019-11932 CVE-2019-12268 CVE-2019-12592 cve-2019-12815 CVE-2019-12922 CVE-2019-14287 CVE-2019-14899 CVE-2019-15126 CVE-2019-15295 CVE-2019-15316 CVE-2019-16928 cve-2019-19519 cve-2019-19520 cve-2019-19521 CVE-2019-19522 CVE-2019-19639 CVE-2019-19743 CVE-2019-19781 CVE-2019–11396 CVE-2020-0601 CVE-2020-0796 CVE-2020-0915 CVE-2020-0916 CVE-2020-0986 cve-2020-13-50 CVE-2020-724 CVE-2020-1206 cve-2020-1530 cve-2020-1537 CVE-2020-2765 CVE-2020-3142 CVE-2020-3566 CVE-2020-3764 CVE-2020-3952 CVE-2020-3953 CVE-2020-3954 CVE-2020-3956 CVE-2020-6008 CVE-2020-6009 CVE-2020-6010 CVE-2020-6110 CVE-2020-7473 CVE-2020-8419 CVE-2020-8420\ CVE-2020-8421 cve-2020-8982 CVE-2020-8983 CVE-2020-10148 CVE-2020-11511 CVE-2020-11651 CVE-2020-12351 CVE-2020-12352 CVE-2020-14750 CVE-2020-15466 CVE-2020-25212 CVE-2020-25645 cve-2020-29491 cve-2020-29492 CVE-2021-1051 cvss CyberArk cyberataque cyberattack cylance CyrusOne código arbitrario D-Link DarkHotel darkirc dark markets darknet darkside dark web darkweb darpa DART Database data breach Data Center Network Manager data leak dataspii DB DCNM ddos ddosecrets Debian decrypter deepfake deep web defacement defcon defender defiant Dell Dell System Detect dell wyse demanda denegacion de servicio Denegación de servicio Denial of Service dereferencing devfest DHS digilocker digitalocean DigitalRevolution directory traversal disclosure discord Dispositivos IoT django Django Rest Framework DJI DNS DNS over HTTPS docker dockerhub dogecoin DoH doki dolphin dolphinattack donald trump Doogee BL7000 doorbell dos DoubleGun downgrade DrayTek drivers droga dropper drupal duplicado SIM duplicator DVMRP E-Business e-learning EA echobot ecommerce ecsc EDA Edge EEUU ejecución de código ejecución de código arbitrario ekans ElasticSearch elecciones electronica elevacion de privilegios Elevación de privilegios elon musk emotet empire enisa ergegor eris loris error escalada escalada de privilegios ESET ESNI españa estados unidos Estafa esteganografia eternalblue Europa europol eventbot evento eventos Evernote Evernote Web Clipper evilcorp evilgnome Evilnum EvilQuest excel exim Experience Manager exploit extension extorsión exxpedia F5 faceapp Facebook Facebook Messenger FakeSpy fallos fallout fancy bear Fast Flux fbi fifa20 Filtración fingerprint finspy Firebase FireEye firefox Firefox Private Network Firefox Test Pilot Flash Player FlawedAmmy flipboard foreshadow formacion Forminator foros FOSSA fotos foxit pdf fpga Framemaker framework fraud Fraude FSB ftc FTP fuerza bruta Fuga de información Fusion gadget GandCrab garmin gdg gdpr gehealtcare gem GHIDRA gif git github gmail go GoAhead godaddy golang goldbrute goldenspy Google Google Analytics google app engine google chrome Google Docs Google Hangouts google nest googleplay google play Google Titan gosms gosmspro goznym gpu Grandoreiro grandstream graph great firewall gsm guacamole guildma hack hackeo hacker hacking hacktivist hardware hash Heartbleed HEVC hiberus Hijacking hisilicon hispasec historia honda hospital hostinger hotelbeds hoteles hotels http httpd HTTPS huawei Hyper-V hyperv iBaby iBaby Monitor M6S IBM ICAR iCloud ico ie IGMP ilegal iLnkP2P iMessage impresoras india infection infinite loop Infiniti NCAR infosec injection innerSloth insider instagram intel intelligence Internet Explorer intezer labs in the wild Investigación Inyeción SQL IOC iomega iOS IOS XR iot iPad ipados iPhone iPod ipp iran isp Italia iterm2 ITG18 jabber jailbreak java javascript Jenkis JMT Trader joker joomla joomla! jquery js kaiji Karkoff karpersky kaspersky kde kde plasma Keecoo P11 keepass kernel Kernel Linux keyless keylogger kill-switch Koodous Kr00k krebsonsecurity kubeflow kubernete kubernetes la 9 las vegas latinoamerica Lazarus leak LearnDash LearnPress lenovo Let'sEncrypt ley lfi LG libreoffice libssh licencias LifterLMS Line LinkedIn Linknat linux linux kernel liquid LMS loader lockbit logitech longwatch lte luisiana Lukas Stefanko lxc M-Horse Pure 1 Maas mac machete mac os MacOS macros magecart magento Mail malaga malspam malvertising malware malware macos apple Manipulación de ficheros market martes martes de parches marzo masmovil MATA matrix maze mdm mds Media Encoder Media File Jacking MediaTek medicina meldown meltdown MEMS menor mensajería instantánea meow MessageTap messenger metasploit Mi Browser Microsoft Microsoft Edge microsoft excel Microsoft Teams Microsoft Word mijia mikrotik minero mining Mint Browser mirai mit mitre mitron mobileiron modsecurity mod_copy monero MongoDB monitor Moodle MosaicRegressos Motorola mousejack Mozart Mozilla MQTT MSTIC ms word mukashi mySQL móvil NAC Nagios NanocoreRAT nas Navegador Tor nbip nca Nessus netcat Netgear Netlab360 netwalker NetWeaver NeverQuest nginx Nintendo nissan Nissan ASIST NjRAT Nnissan connect things nordvpn NOTROBIN npm nsa NSACrypt NVIDIA ObjectInjection Obsolescencia programada oceanlotus OFAC Office office 365 oilrig okcupid omnibees omnirat OneDrive onion ONO ONTSI OpenBSD OpenOffice opensouthcode OpenSSH OpenSSL openSuSE openwrt Opera Oracle origin orion oscomerce osi OS X OTRS outlok Outlook overflow owasp p30 package manager Paloalto parche parches password password checkup Passwords paswords Patch Tuesday path transversal Path Traversal patrón Payday paypal pear pegasus pewdiepie PhantomNet Pharming Phishing phising Photoshop PHP php-fpm phpmyadmin Picreel piercer pila bluetooth PirateMatryoshka Pixel Play Store plugin Plugins plutotv Poc pod policia policykit policía polkit porn portabilidad PoS PostgreSQL powershell ppp Predator the Thief prensa Privacidad privacy privadas privesc privilege escalation privilegios ProCC ProffPoint proftpd Project Zero Promethium prosegur proxy prueba de concepto psg PsiXBot ptp puerto rico Pulse Secure pulsesecure putty pwn Pwn2Own PyRAT python python3 python 3.8.0 PyVil Qakbot Qbot QNAP QSnatch qualcomm QuickTime quora raas ragnar ragnar locker Ramsay Healt Care RAM scraping ramsonware rana rankmatch ransom ransomware rapid7 RAT RATs ratsnif razer rce rconfig rdp RDS recaptcha reconocimiento facial red.es redes Red Hat red team relay Release relleno de contraseñas remote remote code execution Reporte retpoline retrohuinting revelación de información sensible RevengeHotels RevengeRAT reversing reversinglabs REvil Revocation ReVoLTE Rich Mirch rick-rolling rick astley ridl ring riot robo datos robo de cuenta robo de información root Rooted router routeros ruby RubyGems rumania Rusia rutas ryuk sack panic safari safe mode safety detective salto de restricciones saltstack SAML samsung sandbox SandboxEscaper Sangfor sap scam Secuestro SIM security security bypass Security Discovery Security Patch security update segmentation fault seguridad seguridad física selinux server servidor web sextorción sextorsion sha-1 ShadowPad SHAREit SHAttered Shell ShinyHunters shodan side-channel sigred Silence Silex Silkkitie sim simswapping SIM Swapping siri sistema interno Site Isolation skills skimming skype slack Smanager Smartbuilding Smartphone smartwa Smartwatch smb SMBGhost SMBleed smbv3 smishing sms SMTPD snake snapd Snatch SNI sodin Sodinokibi software libre Solarwinds Solorigate sop sophos source code SourceFourge spam Spearphone spectre speculative spoofing spotify Spy spyware SQL SQL injection Squid ssh ssid ssl ssltrip ssrf stack overflow Stanislav steal stealer steam stop ransomware strandhogg strongpity studio code sudo suecia Sumbrust supercomputador SupportAssist surfingattack symantec symbotic SymCrypt sysinternals SysTech ta505 takeover talleres tarjetas Tarjetas de crédito tchap TCP/IP tcp sack teclado tecnología Telecom Telegram teletrabajo tenyearchallenge tesla tesoro The Community ThemeGrill The North Face thin client ThinOS Thoth thunderbird Thunderbolt ThunderSpy Tianfu Cup ticketmaster tiktok timbre timing attack Titan M Titan Security Key tls TMUI tmux Tokopedia tomcat tonedeaf tool TOR Tor Browser torbrowser Torisma torpedo TP-Link TraceTogether Trassion Treck Triada trickbot trojan TroubleGrabber troyano TrueBot trusteer rapport turlaapt tvOS twiiter Twitter typosquatting uad uad360 uad360 congreso malaga uam uber ubuntu UEFI ultrasonido uma unaalmes unauthorized access UNC Under the Breach unifying universidad unix Update updates url ursniff use-after-free user-after-free v8 valorant valuevault valve vault 7 vbulletin VictoryGate videocamaras videoportero videos vietnam vim virus virustotal visa vishing Visual Studio VKworld Mix Plus vlc vmware VMware Cloud Foundation VMware ESXi vnc voice assistants voip VOS2009 VOS3000 voto vpn vt vulnera vulnerabilidad vulnerabilidades vulnerability Wacom waf wallet Wall Street Market wastedlocker watchOS wav web WebArx WebEx Weblogic Webmin webrtc web share api wechat welcart WhatsApp Wifi Win32k Windows Windows 10 windows phone Winnti winrar Wireshark wordfence WordPress WordpressTerror Workstation wpa2 wpa3 wroba wyze X.509 XCode xenmobile Xhelper xiaomi XML xmpp xmr XMRig xnu xor ddos XORpass xploit XSS xssi Yellow Pencil Yves Rocher zdnet zendesk Zero-Day zero click zero day zerodium zeus zombieload ZoneAlarm zoom zyxel

Copyright © 2021 · Hispasec

Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestra web. Si sigues utilizando este sitio asumiremos que estás de acuerdo.Vale